Building a static site has never been easier. Astro, Jekyll, Hugo, or an AI tool that generates a whole site from a prompt can get you something that looks finished in an afternoon. Optimizing it is a different story.

A CMS like WordPress quietly handles a lot of SEO chores for you. A static site hands every one of them back.

TL;DR: Static sites are fast, but they don't come with the SEO automation a CMS provides. Canonicals, sitemaps, redirects, and 404 pages become your job, and a vibe-coded site won't handle them on its own.

🧩 A Static Site Hands the SEO Chores Back to You

With WordPress or another CMS, a lot of technical SEO happens in the background. Plugins and built-in features take care of canonicals, sitemaps, redirects, metadata, schema, and 404 pages. Most people never think about them.

A static site has no plugin layer doing that work. Every one of those jobs now belongs to whoever builds and maintains the site. That doesn't make static sites bad for SEO. It just changes who is responsible.

❝

...doesn't remove SEO work; it moves it.

Suganthan Mohanadasan, quoted by Ahrefs

AI-built sites add a wrinkle. A vibe-coded page can look great in a preview while carrying oversized images or a broken template. The tool built what you asked for, but it doesn't automatically know the SEO rules you want applied across the whole site.

Picking a framework won't solve this either. Astro, Next.js, Gatsby, Hugo, and Jekyll can all support strong SEO when they're set up well. Configuration matters more than the name on the box.

🔧 Three Checks Worth Running Before You Launch

Pick One URL Format and Make Everything Match

Static sites often end up with the same page at two addresses, like /page and /page/. This usually happens because the framework and the hosting platform have different defaults for trailing slashes. Canonical tags, internal links, and redirects can then all point at different versions.

Choose one format and set both the framework and the host to follow it. Then confirm your canonicals and internal links point to the version that actually loads. The same goes for www versus non-www, HTTP versus HTTPS, and lowercase URLs.

Ahrefs hit a version of this during their own blog migration. A misconfigured rule added nofollow to every internal link, which told Google to ignore their internal link structure. A shared link component helps prevent this, because links get built one way instead of by hand.

Check What Status Code Your 404 Page Returns

A page can look like a 404 to a visitor and still return a 200 OK to search engines. That's called a soft 404. Developer Josh Deltener found this on a Nuxt static site, where the screen showed a not-found message but the browser's developer tools showed a 200 response.

Google treats that as a real page with almost no content, which wastes crawl budget. The fix is a proper 404 page that returns a 404 status. Test a few URLs that don't exist and check the response headers, not just what you see on screen.

Make Your Sitemap Respect Your Noindex Rules

Static site sitemaps are usually generated by code, and that code may not know which pages you marked noindex. Drafts and thank-you pages can slip into the sitemap that way. No plugin is keeping the two in sync.

Set one clear rule for pages that should stay out, and make sure the sitemap and RSS feed both follow it. Then check that your robots.txt file exists, points to the right sitemap, and isn't blocking pages you want crawled. Keep in mind that robots.txt controls crawling, not indexing, so it can't replace noindex.

Three more worth a quick look:

  • Templates: One bad default, like a brand name that pushes every title too long, repeats across hundreds of pages. Test several pages after any template change, not just one.

  • Images: Framework image tools only help if you use the framework's image component. A raw img tag skips them, so check file sizes and alt text before publishing.

  • Migrations: Moving from a CMS to a static site is an SEO migration. Map every old URL to a new one, add 301 redirects, and test the live site, not just staging.

Hit reply

If you've built or migrated a static site, what SEO problem did you only find after launch? Reply and tell me how you caught it.

One thing I'm thinking about is how easy it has become to build a site that looks finished. A prompt can produce a clean page in minutes, and nothing on the screen tells you whether the technical work underneath is missing.

That has always been true of SEO, since so much of it is invisible. The difference now is that fewer tools are quietly doing it for you.

If you hand a build to a developer or an AI tool, ask what is handling canonicals, redirects, and 404s. The answer will tell you a lot.

Till next time,

John Sukowaty