What we look for
The first H1 heading (the main heading at the top of a page) on these pages matches the first H1 of another crawled page. Pages kept out of search, or that name another page as the one to show, are left out.
Why it matters
The main heading tells visitors and search engines what a page is about, so pages with the same one look as if they cover the same thing.
How to fix
Rewrite each page's main heading in the CMS or page template so it names that page's own topic.
Seen in a real crawl
From a crawl of Kestrel Bay Digital (the canonical-variants fixture), a test site from Raptor’s fixture suite.
Low
2 pages share their main heading with another page
/services/ x/ Duplicate H1: Two packages for your site and your search growth/services/ y/ Duplicate H1: Two packages for your site and your search growth
http://127.0.0.1:8003raptor 0.3.0, 17 Oct 2026Where you’ll see it
The id is stable, and every surface uses it, so it’s the thing to search for or hand to an agent.
- Terminal
- When it is one of the five findings under Fix first,
raptor crawlprints the id under it.Check: headings.
h1_ duplicate - crawl.json and the CSV
- The crawl JSON names the finding by this id, and so do the CSV and
raptor_query."check_
id": "headings. h1_ duplicate" - The HTML report
- This link opens the finding in the report, and each finding shows its id.
crawl.
html# finding= headings. h1_ duplicate - MCP
raptor_findingswith thischeck_idreturns the finding in full, with a fix brief ready to paste into a task. If it didn’t fire, it says why.raptor_
findings { "job_ id": ". . . ", "check_ id": "headings. h1_ duplicate" }