Free heading structure checker
Paste a URL. Get the full H1 to H6 outline, the meta title and description lengths against SERP limits, how many images have no alt text, and whether the page is blocked from search.
No account, nothing stored. One page at a time.
What this reads, and what it cannot
This checker reads the raw HTML your server sends. That is not always the same document a browser ends up with.
If a site builds its content with JavaScript, the headings exist in the browser but are not in what the server sent, so this tool will report few or none. That is a real finding, not a bug: it tells you what arrives before rendering. But it is not the whole picture.
Three things it cannot do, by design:
- Pages behind a login. It fetches as an anonymous visitor, so staging behind auth and any member area are invisible to it.
- Headings assembled by JavaScript. Client-rendered apps will look empty here.
- Headings split for animation. Libraries that reveal a heading letter by letter leave no whitespace in the markup, and without layout there is no reliable way to put the words back.
All three need the rendered DOM rather than the source, which means reading the page in a real browser. That is what the Teardown extension does: it scans the tab you are already looking at, so a logged-in page, a local build and a client-rendered app all work.
What counts as a problem
A skipped level, for example an H2 followed by an H4, breaks the outline for anyone navigating by heading with a screen reader. A missing H1 usually means a template bug. Multiple H1s are legal but muddy what the page claims to be about. The full list, and the two cases where view source misleads you, are in the guide to checking heading structure.
If this tool says a page is noindex, that is the finding worth acting on first. Nothing else about a page matters while it is blocked. See how to check if a page is noindex for the three other ways it happens.