Duplicate initial HTML: when many pages ship the same shell
If a sample of your URLs all return near-identical HTML — the same hero, same nav, same footer, and only a tiny per-page slot — Google may decide your pages are duplicates of each other. Render meaningful per-page content server-side.
If a sample of your URLs all return near-identical HTML — the same hero, same nav, same footer, and only a tiny per-page slot — Google may decide your pages are duplicates of each other. Render meaningful per-page content server-side. Duplicate initial HTML is when the byte-for-byte first response from your server is nearly the same across many URLs. The pages may differ once JavaScript runs, but the raw HTML index says otherwise.
Last updated·
What it is
Duplicate initial HTML is when the byte-for-byte first response from your server is nearly the same across many URLs. The pages may differ once JavaScript runs, but the raw HTML index says otherwise.
Why it matters
Search engines deduplicate URLs based on the initial HTML. Two URLs returning the same shell can be collapsed into one indexed page — and the one Google picks may not be the one you want ranking. AI engines mostly read the raw HTML, so duplicate shells mean duplicate citations.
How to fix it
- Render the headline and intro server-side. Even with a SPA framework, your H1 and first paragraph should differ per page in the initial response.
- Inline critical content from your CMS. Per-page meta description, OG image, and structured data must vary in the raw HTML.
- Verify with a multi-URL diff. curl 5 different URLs and diff the responses. The diff should be substantial, not just a <title> change.
Authoritative sources
- Google Search Central documentation — Google
- Schema.org vocabulary — schema.org
- SEO Starter Guide — Google Search Central
- MDN — HTML meta and link elements — Mozilla MDN