Why heading structure matters more than people realize
Headings (H1 to H6) form the document outline that screen readers navigate, search engines parse for topical structure, and AI crawlers use to extract sections for citation. A well-structured heading hierarchy tells Google exactly what your page is about and how the topic breaks down. A messy hierarchy hides that structure and forces algorithms to guess.
This analyzer extracts every heading from any URL, counts them by level, detects hierarchy gaps (skipping from H2 to H4, for example), and shows the full outline as the page author intended it. Three seconds of analysis often reveals issues that take CMS users hours to find manually.
The one-H1-per-page rule
Every page should have exactly one H1 stating the primary topic. Two H1s split the topical signal. Zero H1s remove it entirely. HTML5 technically allows multiple H1s within sectioning elements, but Google still recommends one H1 per page for clarity, and the accessibility community is unanimous on the same recommendation.
The H1 should match user intent and contain the primary keyword, though not in a stuffed way. "Robots.txt Tester" is a clean H1. "Robots.txt Tester | Test Your Robots.txt | Robots.txt Validator Tool" is over the line.
Hierarchy: no skipping levels
Heading levels should descend in order: H1, H2, H3, H4, etc. Going from H2 directly to H4 (skipping H3) breaks the document outline. Screen readers struggle to navigate such pages. Search engines downweight the structural clarity. Easy to fix: change the H4 to an H3, or insert an H3 above it.
You can climb back up the hierarchy freely. After an H4, you can return to H2 or H3 for the next section without issue. Going down is the only direction with constraints.
Headings as content scaffolding
Strong heading structure does double duty for SEO. Each H2 is a chance to capture a long-tail keyword variation. AI Overviews and ChatGPT extract individual H2 sections as standalone answers, so a well-named H2 can earn citation independently of the rest of the page. Featured snippets often pull entire H2 sections verbatim.
Write H2s as if they are mini-page-titles for distinct sub-topics. "Common robots.txt mistakes" is OK. "The most common robots.txt mistakes that cost rankings" is better, more keyword-rich, and more likely to win a featured snippet.
How many headings should a page have?
For most content, expect 1 H1, 4 to 8 H2s, and 5 to 15 H3s nested within them. Pages under 800 words rarely need H3 nesting; pages over 2,000 words usually benefit from H3s under most H2s for scannability.
Pages with no headings beyond the H1 read as walls of text and rarely rank well for competitive queries. Pages with 50+ headings usually have over-fragmented content where each section is too thin to be useful. The sweet spot is 5 to 20 total headings for typical long-form content.
Common heading mistakes
Using headings for visual styling rather than structure. Designers sometimes mark up large display text as H2 even when it is a quote or callout, not a section title. Use CSS for visual size, headings for structural meaning.
Stuffing keywords into headings unnaturally. Google detects this. Headings should read like real human writing, not query strings. Variations and synonyms across H2s help; identical phrasing repeated across H2s does not.
Empty headings (an H2 element with no text) are flagged by accessibility audits and Search Console enhancements. Often caused by CMS auto-generated heading containers. The analyzer catches these in the outline view.
Fixing heading issues
Identify all H1 issues first (none, multiple, or wrong content). Then walk the outline checking for hierarchy gaps. For each gap, decide whether to insert a missing intermediate level or downshift the deeper heading to match. After updating, run this analyzer again to confirm the new structure is clean.
For programmatically generated pages with 1,000+ URLs to fix at once, identify the template producing the bad headings rather than editing pages individually. One template fix often corrects thousands of pages.