Heading Structure Checker

Paste a page and see its heading outline, with skipped levels, multiple H1s and empty headings flagged.

View source on the page and paste it here. Only headings are read.
0
Headings
—

Nothing you type here is uploaded, stored or sent anywhere. It all runs in your browser.

What a good outline looks like

  • Exactly one H1, matching what the page is about. HTML5 technically permits more; in practice one is clearer for both readers and crawlers.
  • No skipped levels. H2 to H4 with no H3 between them breaks the document outline screen readers rely on.
  • Headings are structure, not styling. If you picked H4 because it looked right, use CSS instead.
  • Read the outline alone. If it does not summarise the page, the page is not well organised.

Questions people ask

Does Google actually penalise a page with two H1s?

No, and it has said so plainly more than once. Heading levels are a weak signal at best. The reason to fix a broken outline is that a screen reader navigates by it, and that a page whose outline does not make sense on its own is usually a page that does not make sense either. Treat it as an editing check that happens to help accessibility, not as a ranking fix.

My theme makes the site logo the H1 on every page. Is that a problem?

It is the most common heading bug there is. It spends the single most descriptive element on the page on a word every page already shares, and it leaves the actual topic sitting in an H2. Most themes expose a setting for this; if not, it is a one-line template change.

Should the H1 be identical to the title tag?

Close, not identical. The title is written for a search result and carries the brand and the query wording. The H1 is read by someone who has already arrived and does not need either. Keeping them different also stops you discovering, six months in, that Google has been rewriting the title into your H1 anyway.

What about headings inside a sidebar or a related-posts block?

They are real headings and they land in the outline in source order, which is why a page can appear to start at H3 or have an H2 above its H1. It is not fatal. It does mean the outline you read here is the outline a crawler reads, sidebar and all — which is the useful thing to know.

Where do I get the HTML to paste in?

For a static page, view source and copy the lot. For anything built with JavaScript, view source shows you a shell — open devtools, right-click the <html> element and copy the outer HTML instead, so you are checking the DOM a crawler renders rather than the file the server sent.

Structure sorted, rankings stuck?

Clean markup is table stakes. Authority is the differentiator.

See link building packages Talk to Hayk