Heading Structure, and Who It Is Actually For
Enter a URL and this pulls out every heading from H1 to H6 in source order, renders them as an indented outline, and flags the structural problems: levels skipped, headings left empty, more than one H1, and headings containing nothing but an untagged image.
The outline is the useful output. Reading a page's headings in order, stripped of design, is the fastest way to see whether the structure someone perceives visually is the one actually encoded in the markup — and those two come apart more often than you would expect.
At a glance
- Headings are how screen reader users skim. A skipped level is a missing rung.
- Multiple H1s are permitted by HTML5 and are not a ranking problem.
- Text styled to look like a heading is not a heading, and this cannot see it.
- Empty headings are announced as headings with nothing in them.
How to Use This Tool
Enter the URL
Headings are read from the HTML the server returns, which is what a crawler sees on its first pass.
Read the outline
Indented by nesting depth, so the shape of the document is visible at a glance. Skipped levels are highlighted in place.
Work the findings
Empty and image-only headings are failures — they occupy a slot in the outline and announce nothing. Everything else is a judgement call.
Copy the outline
Plain text, ready to paste into a ticket or a content brief. Often more persuasive than describing the problem.
Headings Are Navigation, Not Decoration
The reason heading structure matters is not primarily SEO, and framing it that way leads to the wrong fixes.
Screen reader users navigate by heading. Every major screen reader offers a key that jumps to the next heading, and one that lists all headings so a user can pick a section. For someone using a page that way, the heading outline is the interface — it is how they skim, in the way a sighted reader skims by glancing down the page.
That is why a skipped level matters. Jumping from H2 to H4 leaves a gap in the hierarchy, and a user navigating by level either misses the section or cannot tell what it belongs to. There is no visual equivalent, which is exactly why it goes unnoticed by everyone who is not affected.
Search engines use headings too, and more lightly than most guides suggest. They help work out what a page covers and what its sections are. They are one signal among many, and no heading arrangement will make a page rank for something it does not cover.
Skipped Levels
The most common structural fault, and it nearly always has the same cause: someone picked a heading level for how it looked.
H3 is smaller than H2, so a designer or writer wanting smaller text reaches for H3 — or H4, or H5 — and the level ends up describing font size rather than position in the document. The page looks right and the outline is wrong.
The fix is to choose the level by where the section sits and control its appearance with CSS. A subsection of a subsection is an H4 whatever size you want it rendered at, and any heading can be styled to look like any other.
Going back up is fine and is not a skip. An H4 followed by an H2 simply means one section ended and another began. Only downward jumps of more than one level leave a hole.
The Multiple H1 Question
This one attracts more argument than it deserves, so it is worth stating what is actually established.
HTML5 permits more than one H1. Google has said directly that multiple H1s do not cause ranking problems, and that it is fine to use them. This is not a live SEO issue and has not been for years.
What remains true is that a single H1 usually produces a clearer outline. If both your site name and your page title are H1s, the document is claiming two top-level subjects, and a screen reader user encounters both at the same level with nothing distinguishing them.
So it is flagged here as something worth looking at rather than something to fix. If two H1s reflect the page genuinely having two equal top-level sections, that is fine. If it is a template wrapping the logo in an H1, it is worth changing — not for rankings, for the outline.
Empty and Image-Only Headings
These are marked as failures rather than warnings because there is no reading under which they are correct. Every other finding here has a legitimate case somewhere; these two do not. Our Image Alt Text Auditor covers the rest of the page's images on the same principle.
- An empty heading element is announced as a heading with no content. It usually exists as a spacing hack or a decorative container, and it should be a div.
- A heading whose only content is an image with no alt text is the same problem wearing a disguise: the heading is in the outline and has nothing to announce. Adding alt text fixes it for everyone.
- A heading whose content is an image with alt text is fine. The alt text is the heading, and it works.
What This Cannot See
One limit worth being explicit about, because it is the opposite of what people assume.
This reads heading elements. Text that merely looks like a heading — a div with large bold styling, a paragraph in a heavier font — is invisible here, and it is equally invisible to a screen reader and to a search engine. A page can appear beautifully structured and have no headings at all.
So a low count on a page that clearly has sections is itself the finding. It usually means the visual hierarchy was built entirely in CSS, which is the more serious version of the problem this tool is designed to catch.
The reverse also happens: markup that uses headings for things that are not headings, to get the styling. Both come from the same root cause, which is treating heading level as a font size.
Where This Fits
Heading structure is one part of how a page is understood, and it is worth checking alongside the rest of the on-page setup. Our SEO Analyzer covers titles, meta tags and canonicals, and the Bulk Meta Tag Checker will tell you how many pages across a site are missing an H1 entirely.
If you are writing rather than auditing, our H1 Generator suggests headings for a topic, and the Readability Score measures the prose underneath them — a well-structured page of impenetrable text is still impenetrable.
Frequently Asked Questions
Can a page have more than one H1?
Yes. HTML5 permits it and Google has said directly that it causes no ranking problem. A single H1 usually produces a clearer outline, so it is worth looking at — but it is not an error, and it has not been an SEO issue for years.
What is a skipped heading level?
A jump down of more than one level — H2 straight to H4, with no H3 between. It leaves a gap in the outline that screen reader users navigate by, so a section reads as belonging to nothing. Going back up, from H4 to H2, is not a skip.
Do headings affect SEO?
Lightly. They help search engines work out what a page covers and what its sections are, as one signal among many. No heading arrangement makes a page rank for something it does not cover. The stronger reason to get them right is accessibility.
Why is an empty heading a problem?
Because it is announced as a heading with nothing in it. Someone navigating by heading lands on a slot with no content. These usually exist as spacing hacks or decorative containers and should be a div.
Does this find headings styled with CSS?
No, and neither does a screen reader or a search engine. Only real h1 to h6 elements are headings. If a page has clear visual sections and few headings here, the hierarchy was built in CSS — which is the more serious version of the problem.
Should the H1 always come first?
Usually. When it does not, a layout element — a navigation block or a sidebar — is carrying a heading above the main content. Not fatal, and worth knowing about, since the first heading in the source is the first one a screen reader user reaches.
How long should a heading be?
Short enough to scan. Headings are how people skim, whether visually or by jumping between them, so a heading over about 120 characters is a sentence doing the wrong job. There is no exact limit, and shorter is almost always better.
Is it a problem if two headings have the same text?
Often not — repeated section labels across a list of items are perfectly normal. It is reported as information rather than a fault. Worth a look only if the repeats were meant to be distinct, since identical headings are hard to navigate between.
Related Tools
Advanced On-Page SEO Analyzer
Titles, meta tags and canonicals alongside the heading structure.
Bulk Meta Tag Checker
Find how many pages across a site have no H1 at all.
Image Alt Text Auditor
The same principle applied to every image on the page.
H1 Generator
Draft headings for a topic when you are writing rather than auditing.