Logical heading structure is an important check in the Accessibility (WCAG) category, and a high-priority one. Headings are not decoration — they are the outline a screen reader navigates by and one of the ways a search engine understands the shape of your page. When the heading order is scrambled, both a blind user and a crawler lose the thread.
What This Check Is Really About
This check verifies that your headings form a clean, nested hierarchy: one <h1> per page describing the whole thing, <h2> for major sections, <h3> for subsections beneath them, and so on — with no skipped levels. Jumping from an <h2> straight to an <h4>, or scattering multiple <h1> tags because a heading “looked the right size”, breaks the document outline that assistive technology relies on.
The single most common cause I see is headings chosen for their appearance rather than their meaning — someone picks <h3> because they liked the font size, not because the content sits a level below the <h2> above it. Under WCAG this maps to Success Criterion 1.3.1 (Info and Relationships): the visual structure must be expressed in the markup, not just the styling.
Why It Matters
- Screen reader users navigate by heading level; a broken outline makes a page genuinely hard to use
- Accessibility is both a legal exposure and, increasingly, a quality signal search engines reward
- A clean heading tree helps crawlers understand topical structure and section relationships
- The same discipline improves featured-snippet eligibility, which pulls directly from well-structured sections
Structure Was the Job Long Before HTML
I spent my early career setting type in Aldus FreeHand and QuarkXPress, and the discipline there was identical to this one, just with different names. A headline, a subhead, a cross-head, body — each had a defined level in the hierarchy, and you did not promote a subhead to a headline because it happened to look bigger on the spread. Sizing was a consequence of level, never the definition of it. The apprentices who styled by eye produced pages that looked fine and read as chaos the moment you tried to follow the argument. Heading tags are that same contract: <h2> versus <h3> is a statement about where the content sits in the outline, and the visual size is just CSS doing what the level tells it to. Choose the level for meaning, then style it however you like.
How to Check It
- Install a heading-outline browser extension, or use the accessibility tree in browser DevTools, to see the heading structure as a nested list.
- Confirm there is exactly one
<h1>and that no level is skipped as you read down. - Run a page through an accessibility auditor such as the Lighthouse accessibility check or a WCAG tool for the 1.3.1 warnings.
- Run the SEO Roadmap audit to find every template and page with a broken outline.
How to Fix This in WordPress
Difficulty Level: EASY – This fix is straightforward and can typically be completed by anyone with basic WordPress knowledge.
Estimated Time: varies
Step 1: Fix the template-level headings
Many outline problems are baked into the theme, not the content: a site title rendered as <h1> on every page so the post title becomes a second <h1>, or a widget wrapping its heading in the wrong level. Check the header, sidebar, and footer templates. On a page, the main content title should be the <h1>; site branding should not compete for it.
Step 2: Fix the content headings
In the block editor, the Heading block lets you set the level (H2, H3, H4) independently of size. Walk the flagged pages and correct any heading whose level does not match its place in the outline — demote that stray <h4> that follows an <h2> to an <h3>, and if you want it smaller, style it, do not skip it. Never use a heading tag purely to make text big; use a paragraph with styling for that.
Step 3: Verify the fix
- Clear your cache and reload the page.
- Re-check the outline with your extension or DevTools — it should read as a clean nested list.
- Re-run the SEO Roadmap audit and a Lighthouse accessibility pass to confirm the warnings are gone.
Recommended Tools & Plugins
These tools can help you fix and prevent this issue:
- Yoast SEO – Comprehensive SEO plugin with built-in checks
- Rank Math – Feature-rich SEO plugin with detailed analysis
- Google Search Console – Free tool to monitor your site’s search presence
- SEO Roadmap – Complete SEO audit and action plan tool
Common Mistakes to Avoid
- Choosing a heading level for its font size instead of its place in the outline
- Shipping two
<h1>tags because the theme marks the site title as one - Skipping from
<h2>to<h4>and leaving a hole in the hierarchy - Using heading tags to style non-heading text that should be a styled paragraph
- Fixing one page by hand when the problem lives in the theme template and repeats site-wide
Need More Help?
If headings still fail after you have corrected the content, the issue is in the theme — a template hard-coding the wrong level. That is a small code fix in a child theme rather than an editor task. Run a full SEO Roadmap audit to see whether the broken outline repeats across page types, which tells you immediately whether you are chasing content or template.
This guide is part of the SEO Roadmap knowledge base – your complete resource for WordPress SEO optimization.
Last modified: August 2, 2026
United States / English
Slovensko / Slovenčina
Canada / Français
Türkiye / Türkçe