The fix, in one snippet
<h2>Testing</h2>
<h3 class="heading-sm">Method</h3>
Illustrative values. Change the paths, hostnames and options to match your own site before using it.
The sections below explain what is tested, why it matters and the alternatives.
What we test
We read the headings on each page in document order and look for a jump of more than one level between consecutive headings, reporting the first such jump per page.
Going back up a level is normal and is not reported: an H4 followed by an H2 simply closes one section and opens another.
Why it matters
Headings are the table of contents of a page, and assistive technology uses them as one. A screen reader announcing "heading level 4" after "heading level 2" implies a missing level-3 section, so the listener is left looking for content that does not exist.
Search engines use the same outline to understand which passages belong to which section, which matters for the passage-level ranking that now drives many long-tail results.
The usual cause is styling: an H4 was chosen because it looked the right size. That is what CSS is for, and choosing a heading level for its appearance couples your document structure to your visual design, so any restyle silently changes the outline.
It is also one of the cheapest accessibility problems to fix, and one of the most commonly reported: heading structure is a WCAG 2.1 requirement under success criterion 1.3.1, Info and Relationships.
How to fix it
Choose the level from the structure and the size from the stylesheet:
<!-- wrong: chosen for its size -->
<h2>Testing</h2>
<h4>Method</h4>
<!-- right: level from structure, size from CSS -->
<h2>Testing</h2>
<h3 class="heading-sm">Method</h3>
Reusable components should accept their heading level as a prop so the same card can be an H2 on one page and an H3 on another. A quick audit: read only the headings of a page aloud and see whether the result is a sensible summary.
Where this fits
Heading levels skipped is check 9 of 13 that the seo & site health audit runs under titles, headings and content, ordered the way they are worth fixing. That ordering is the point: Fixing this one while the check above it still fails buys less than it looks like.
Fix this one first
Above it in the same category sits Duplicate meta descriptions (low), where the same description on many pages tells a searcher nothing about which one to open. An attacker who has that does not need this, so it is the better use of the same hour.
What fixing this still leaves open
Heading levels skipped closes one route in. Immediately below it: Meta description length, where descriptions much shorter than 70 characters waste the space; much longer than 160 are cut off mid-sentence; More than one H1, where several H1s on one page split its subject; Reading difficulty, where how hard the page is to read, measured rather than guessed: Sentence length, word length and the Flesch score they produce.
Found in the same scan
The seo & site health audit reports this alongside checks from other categories that are at least as serious, including Broken internal links, where an internal link that returns an error is a dead end for the reader and a wasted request for the crawler, and Crawl errors (4xx / 5xx), where uRLs reached during the crawl that returned a client or server error. A single run of seo & site health audit answers all of them at once.
The first few lines
You are a senior web engineer. I ran a security and SEO scanner against my site and it reported the finding below. Fix it properly rather than suppressing the symptom.
Finding: Heading levels skipped (low severity)
Scanner check id: seo-heading-order
The rest of this prompt names the pages and line numbers we found the problem on, the configuration to change, and the constraints a good answer has to respect. It is free, it just needs an account so the work is not scraped wholesale.
Sign in with GoogleSigning in is free and takes one click. We store your email address and nothing else.