Heading Structure Checker
See a page's H1–H6 outline and catch skipped levels and missing H1s.
About this tool
Paste a page's HTML (from view-source or your CMS) or a Markdown document. You'll see the heading outline as an indented tree and a list of issues, and you can copy the outline.
Why heading structure matters
Headings give a page its structure. Screen-reader users navigate by them (often jumping straight to H2s), search engines use them to understand topics and sections, and readers skim them before deciding to read. A good outline has one H1 that says what the page is about, H2s for main sections, H3s inside those, and so on, without skipping levels. Jumping from H2 to H4 breaks the hierarchy for assistive technology. The checker shows your outline as a tree and flags missing or multiple H1s, skipped levels, empty headings (often left behind by page builders), visually hidden headings and headings over about 70 characters that read more like paragraphs. It accepts HTML or Markdown, and ignores # lines inside code blocks. Honest limits: multiple H1s are valid HTML, and Google says they don't hurt rankings, but one clear H1 remains best practice for accessibility under WCAG 1.3.1 (Info and Relationships) and 2.4.6 (Headings and Labels). Text that's styled big and bold but not marked up as <h1>–<h6> won't appear, which is a structural problem worth fixing in itself. The SEO meta analyzer, the alt text checker and the Markdown TOC generator are related.
Frequently asked questions
Can a page have more than one H1?
It's valid HTML and Google handles it, but one H1 is clearest for accessibility and readers.
Is it bad to skip heading levels?
Yes, for accessibility. Going from H2 to H4 breaks the outline screen-reader users rely on.
Do headings help SEO?
They help search engines understand a page's topics and structure, alongside the content itself.
Is anything uploaded or fetched?
No. What you paste is processed in your browser, and nothing is fetched, stored or sent.