SEO for Static Website
I would never run a static site without unique meta titles, a sitemap, and canonical tags — the speed is useless if Google cannot figure out what each page is about.
Start here
- Write a unique <title> and meta description for every page — duplicates killed my rankings on my first static site.
- Generate an XML sitemap and reference it in robots.txt, then submit the sitemap to Google Search Console.
- Add a canonical tag to every page, even if you think you have no duplicate content — pagination and URL parameters create duplicates you miss.
- Use JSON-LD structured data (e.g., Article, FAQPage) to help Google understand page content without relying on a database.
Plain-English take
A static site is just a folder of HTML files. No database, no server-side rendering, no WordPress admin panel. Search engines see the same HTML you write. That sounds like an SEO dream — fast load times, clean source, no bloated plugins. And it can be, but only if you give Google the same signals you would on a dynamic site.
I run a documentation hub built with a static generator. The first version had identical title tags on every page because I assumed the URL would be enough. Google indexed the homepage and ignored the rest. That is the core lesson: static does not mean automatic. You still need to spell out what each page is about, how pages relate, and which version is the canonical one.
The advantage is that you can template all of this. One script can generate unique titles, sitemaps, [canonical tags](/canonical-tags/), and structured data for every page. Consistency is easier to enforce than in a CMS where editors override things manually. The risk is that you forget to run that script, or you assume a tool does it for you — static generators do not handle SEO out of the box.
For most static sites, the SEO work is front-loaded. Spend the time configuring your generator to output proper meta, heading hierarchy, and internal links. After that, each new page inherits the structure. That is the real gain: maintainability at scale, provided you invest in the setup first.
When it actually matters
Static site SEO matters when you have more than a handful of pages. I maintain a blog with 150 posts built with Eleventy. Without deliberate on-page work, Google would treat the whole thing as a thin, duplicated mess. Here is where I see the impact most.
Content-heavy documentation hubs and marketing sites. If you rely on search traffic to bring readers, every page needs a unique angle in its title and description. I wrote a guide on pagination and accidentally left the default "Page X" in the title. The click-through rate dropped by half. Now I generate titles that include the root topic and the page number as an afterthought.
Performance is already a win, but only if you host properly. Static sites naturally score high on [Core Web Vitals](/core-web-vitals/), but I have seen sites lose that advantage by serving uncompressed images or using a slow CDN. I switched to Brotli compression and HTTP/2, and my time-to-first-byte dropped from 1.2s to 0.3s. That alone improved crawling frequency.
Competitive keywords force you to care about structure. I target a phrase that has ten strong competitors. They all have unique title tags, schema markup, and clean internal links. My static site had none of those initially. I added [schema markup](/schema-markup/) for articles and FAQ sections, rewrote the heading hierarchy, and saw the page move from position 15 to position 5 over three months. It matters because the search engine does not care how your site is built — it compares signals only.
What I got wrong
I made three assumptions that cost me months of organic traffic. Admitting them here so you avoid the same.
I assumed static sites did not need unique meta titles. Early on I set the same <title> for every blog post: "Blog | MySite". Google ignored all but the homepage for keyword rankings. Title tags are a primary ranking signal — I now generate unique titles from the page heading using a template filter. The effect was immediate: impressions for long-tail queries appeared within two weeks.
I skipped [robots.txt](/robots-txt/) and the sitemap entirely. I thought "Google will find the pages through internal links." It did not, because my navigation was JavaScript-rendered and some deep pages had zero external links. Creating a dynamic sitemap and referencing it in robots.txt solved discovery. I also added the sitemap to Search Console. Crawl coverage went from 12 pages to 97 in one month.
I did not use canonical tags on paginated series. My tutorial series split across 5 pages. Each had different content but the same breadcrumb and same H1. Google indexed one page and treated the others as duplicates. Adding [canonical tags](/canonical-tag/) with self-referencing URLs fixed that. Now each page stands on its own for its specific subtopic.
Bonus mistake: I delayed adding structured data because I thought JSON-LD required a backend. It does not. You embed it directly in the HTML. My FAQ section now uses FAQPage markup, and the rich results appear within days. Do not assume a static site cannot use advanced SEO features.
Next step
Quick answers
Do static sites need a sitemap if I have a robots.txt?
Yes. The robots.txt tells crawlers where not to go; the sitemap tells them where to go. A static generator can create an XML sitemap at build time. Submit it to Google Search Console to speed up discovery of new pages, especially if your site is large.
Can I use JavaScript SEO on a static site?
You can, but I avoid it unless necessary. Static sites are already HTML-based. If you load content or links via JavaScript, Google may not see everything. Prefer server-rendered or pre-built HTML. If you must use JS, test with the URL Inspection tool to confirm indexing.
Does a static site need a redirect strategy?
Yes, because you will change URLs. I use _redirects files (Netlify) or server config for 301 redirects. Without them, old links break and lose link equity. I learned this after renaming a category and losing 80% of traffic overnight.
Sources
Primary documentation is linked directly. Anything commercial is marked nofollow.
- Google Search Central — Primary reference for crawling, indexing, sitemaps, and structured data.
- Google SEO Starter Guide — Backs the advice on title tags, heading hierarchy, and unique meta descriptions.
- Google Sitemaps Documentation — Supports the claim that sitemaps improve discovery on static sites.
- Google Structured Data Introduction — Justifies using JSON-LD for FAQPage and Article markup on static pages.
Notes from Callum Bennett.