Headers are the only element on the page that doubles as a structural signal. Google reads <h1> through <h6> as a tree - they are how the algorithm builds an outline of what your page is about, and they are how Google's snippet generators decide which paragraph to pull when a user searches for "what is X" vs "how to do Y." Get the structure right and you earn featured-snippet eligibility for free; get it wrong and Google reaches for arbitrary body text instead.
This guide skips the basic "what are header tags" framing (the tool below covers that) and goes straight to the structural playbook: the one-H1 rule, when to break it, the skipped-level pattern that confuses crawlers, and the heading-as-snippet workflow that earns featured-snippet traffic.
List every heading on a page in seconds
Paste any URL below. The tool extracts every <h1> through <h6> in document order, with the text content - the fastest way to spot duplicate H1s, skipped levels, and "wall of H2s with no nesting" patterns at a glance.
Why the heading outline is the highest-leverage structural signal
Treat headings as one of three things and you will get the work backwards:
- (Wrong) Headings are typography. Lots of designers reach for
<h2>because it looks the right size. Don't. The size is what CSS does. The TAG is what Google parses. - (Wrong) Headings are keyword slots. Old-school SEO advice was "stuff each heading with a keyword variant." Google has been keyword-stuffing-aware for over a decade; this is now an anti-pattern.
- (Right) Headings are the outline of an answer. Each heading is a question; the body underneath is the answer. The outline is what Google reads to decide what your page is about and which subsection to feature in snippets, FAQ rich results, and "people also ask" boxes.
The practical implication: a clean outline beats a keyword-stuffed one every time. A page with the structure "Heading: How to write meta descriptions / Subheading: The 155-character rule / Subheading: When Google rewrites yours / Subheading: Duplicate descriptions" is far more eligible for featured snippets than a page with the structure "Meta Descriptions / Meta Description Best Practices / Meta Description Tips."
The one-H1 rule (and the only time to break it)
Every page should have exactly one <h1>, and it should describe the page in one line. This is the rule. The reasoning is mechanical:
- Google uses the H1 as the strongest single relevance signal on the page after the title. Two H1s split that signal between two competing claims about what the page is about.
- Screen readers use the H1 as the page's main landmark. Two H1s break the navigation experience for assistive tech.
- Modern HTML5 technically allows multiple H1s when they are inside
<article>or<section>elements - but Google does not respect that scoping in practice. Stick to one H1 per URL.
The legitimate exception: list-of-articles pages (a blog index, a category page) can have one H1 for the page itself ("Latest Articles") and headings within each card that COULD be H2s or H3s. Most CMSes default to using H2 for card titles, which is correct. If your blog index is rendering each card as an H1, that is a bug, not an exception.
The skipped-level mistake
The single most common heading bug: jumping levels. A page that goes <h1> → <h3> → <h2> → <h4> tells Google nothing coherent about the outline. The crawler tries to build a tree from a sequence that doesn't form a tree. The result is the page's outline gets discarded, and Google falls back to surface-level signals (title, body keywords) only.
The rule: heading levels descend monotonically from H1. You can go from H2 back up to a sibling H2; you cannot skip from H2 to H4 without an H3 in between. The audit move:
- Run the page through the embedded checker.
- Scan the level numbers in document order. They should look like a sensible outline: 1, 2, 3, 3, 2, 3, 4, 4, 3, 2.
- Anywhere the level jumps DOWN by more than one (1 to 3, 2 to 4) is a skipped level. The fix is mechanical: change the offending tag to be one level deeper than its parent.
The most common cause is design-driven: a designer wanted a heading that looks "smaller than H2 but bigger than H4," reached for H4 because it was the right visual size, and skipped H3. The fix is in the CSS, not the HTML - keep the H3, restyle it to look the way the design wanted.
The biggest mistake: writing headings as labels instead of questions
The single highest-leverage rewrite you can do for headings is converting label-style headings into question-style headings. Google's featured-snippet algorithm reaches for headings that look like the searcher's query - because if the heading IS the query, the body underneath is by definition the answer.
Consider the same subsection written two ways:
- Label heading: "Meta Descriptions and Click-Through Rate"
- Question heading: "Why don't meta descriptions affect ranking?" or "How long should a meta description be?"
The label heading is technically correct. The question heading is featured-snippet-eligible. The body underneath each is identical; the only difference is whether Google can identify which sentence answers a specific query. The audit move: scan your headings. For each one, ask "what query would a user have typed to want this answer?" If you cannot rephrase the heading to BE that query, you probably have a label heading and should rewrite.
This does not mean every heading should be a question - that pattern gets repetitive and reads weird in a long article. The rule: at least 30-40% of your H2s and H3s should be question-form on any page targeting informational keywords. The rest can be statement-form. Mix them.
What a clean header audit looks like
Run this on your top 50 pages by impressions. The fix is mostly mechanical (changing tags, not rewriting content) and the lift is meaningful (better snippet eligibility, better screen-reader navigation, better outline for ranking).
- Run each page through the header tags checker. Screenshot the output. The list should look like a sensible book outline: H1 then descending H2-H4-ish, no skipped levels, no random H1s in the middle of the body.
- Verify exactly one H1 per URL. Multiple H1s usually mean a template bug (the article H1 is rendered AND the site H1 is rendered). Fix the template.
- Convert 30-40% of H2/H3s to question form. Especially on pages targeting informational queries ("how to," "what is," "why does"). The body content stays; the heading wording changes.
- Eliminate skipped levels. Anywhere the outline jumps from H2 to H4 (or worse, H1 to H3), insert the missing level or change the deeper tag to its proper level.
- Audit for empty/duplicate headings. Many CMSes emit empty H2s as section dividers, or duplicate the post title in both the title and the H1 and an H2. Each one is a structural noise signal. Strip them.
- Spot-check Search Console's featured-snippet impressions. Pages that earn featured-snippet impressions almost always have question-form headings matching the query. Pages that don't, often have label-form headings on the right topic. That's the rewrite priority list.
Grab the one-page audit checklist
A printable version of the heading-structure playbook, the question-form rewrite cheat sheet, the skipped-level decision tree, and the WordPress / Next.js / static-site snippet that adds a build-time check to fail your build if any page ships with two H1s or a skipped level.
Quick quiz: are you ready to audit your own headings?
Five questions, takes two minutes. We'll show you the right answer and a one-line explanation after each one.
Header tag hierarchy - quick check
5 randomized questions drawn from a pool of 12. Different every time you take it. Takes about two minutes.
Next up in On-Page SEO
Headings tell Google how the page is structured; canonicals tell Google which URL to credit when the same content appears on multiple URLs. From here:
- Canonical tags - when to use them, when not to, and what happens when Google overrides yours.
- Open Graph and social previews - the off-Google CTR work most teams ignore.