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. The rule is about descent: each step deeper should be exactly one level, but jumps back up the outline are how you signal that one sub-topic has ended and the next top-level section has begun.
The most common cause of skipped levels is visual design bleeding into markup. A theme styles H3 to look exactly how the designer wants a section title to look, so authors reach for H3 even when no H2 precedes it. The analyzer flags this by walking the levels in document order and reporting the first heading at each jump, so you can see precisely where the outline broke rather than guessing.
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 to read the outline this tool produces
The output is an indented outline, one line per heading, with the level shown and the text reproduced exactly as it appears in the markup. Read it top to bottom the way a screen reader user would tab through landmarks. If the outline reads like a sensible table of contents on its own, your structure is sound. If it reads like a random list of phrases, the page will read that way to crawlers too.
Pay attention to the level counts shown alongside the outline. A page with fourteen H1s and no H2s is using headings as styling, not structure. A page with one H1, zero H2s, and twenty H3s has the opposite problem: every section is nested under nothing. The healthy shape is a pyramid, widest in the middle (several H2s) and narrow at the top (one H1) and bottom (a handful of H3s where depth is genuinely needed).
The gap warnings are the highest-value part of the report. Each flagged gap is a specific, fixable defect: a jump from H2 to H4, an H3 that appears before any H2, or an empty heading element. Treat them as a checklist. Most pages have between zero and three such gaps, and clearing them takes minutes once you know where they are.
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.
Headings and accessibility navigation
For screen reader users, headings are not decoration; they are the primary way to move around a page. Assistive technology lets people pull up a list of all headings and jump straight to the section they want, exactly the way a sighted reader's eye skips down the page. A clean H1-to-H2-to-H3 outline turns that into a usable table of contents. A broken or empty one turns it into a maze.
This is why the same fixes that help SEO also satisfy accessibility audits like WCAG: one descriptive H1, no skipped levels, no empty heading elements, and heading text that actually names its section. The two goals never conflict. When you structure a page so a screen reader user can navigate it by headings alone, you have also given search engines and AI crawlers the clean outline they need, which is the rare case where doing the right thing for people and for machines is the exact same change.
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.
Headings, AI Overviews, and 2026 search
Modern AI search engines do not read a page as one undivided blob. They chunk it, and headings are the most reliable chunk boundaries they have. When Google AI Overviews, ChatGPT, or Perplexity lift a passage to answer a question, that passage almost always maps to a single heading and the paragraphs beneath it. A page with clean, descriptive H2s is effectively pre-cut into citable units; a page with no internal headings forces the model to guess where one idea stops and the next begins, and guesses lose citations.
This is why heading text now does double duty. It is both a human signpost and a retrieval label. Phrasing an H2 as the exact question a user would type ("How long should a meta description be?") makes that section trivially matchable to a query. Vague headings like "Details" or "More info" carry no retrieval value at all. The analyzer cannot judge phrasing for you, but seeing every heading laid out as a flat list makes weak, generic headings obvious at a glance.
Consistency across a site matters too. If your articles all follow a predictable heading pattern (overview, then how-it-works, then common mistakes, then FAQs), both readers and AI models learn where to look. Running this analyzer across your top pages and comparing their outlines side by side is a fast way to spot the one article that breaks the pattern.
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. Check the template in three states: a page with lots of content, a page with almost none, and a page where an optional section is missing. Bad headings often only appear in the edge cases, where an empty section still renders its heading or a conditional block skips a level.
Once the structure is clean, keep it that way by treating headings as part of your editorial checklist rather than an afterthought. Before publishing, skim the outline alone and ask whether someone who read only the headings would understand what the page covers. If the answer is yes, you have a structure that serves readers, search engines, and AI summarizers all at once, and a quick re-run of this analyzer will confirm it.