Skip to the tool
OnPageKit

Heading Structure Checker

The H1 to H6 tree of pasted HTML, with skipped levels flagged.

paste the page source

Open your page, press Ctrl+U or Cmd+Option+U, and paste what you see. The markup stays in this tab — a browser cannot fetch someone else’s page, and nothing here is uploaded.

H1
0
H2
0
H3
0
H4
0
H5
0
H6
0
Headings
0
Errors
1

Outline

Paste some HTML to see the heading tree.
  • ErrorNo heading tags at all. Nothing here tells a crawler, or a screen reader, how the page is organised.

Everything runs in your browser. Nothing you type is sent to a server.

Found a bug in this tool? Report it.

Share this tool

What the heading structure checker does

Paste a page's HTML and this heading structure checker rebuilds the outline that a crawler and a screen reader actually see: every H1 to H6 in document order, indented by real nesting, with an approximate line number so you can go back and find the tag. Alongside it comes a list of the things that go wrong in practice — no H1, several H1s, a level skipped, a heading with nothing in it, and a heading whose entire content is an image.

Nothing is uploaded. The parsing happens in the tab you already have open.

Why it asks for markup rather than an address

Every competing tool asks for a URL, and every one of them is quietly fetching that URL from a server in a data centre. Browsers forbid a page from reading another origin's response unless that origin opts in with a CORS header, and virtually no site does. So the choice is not between two equivalent interfaces; it is between sending your address, your staging domain and your authentication-protected draft to somebody else's log file, or doing the work locally.

View source with Ctrl+U, or Cmd+Option+U on a Mac, select all, paste. For a page built by JavaScript, copy the rendered markup from the Elements panel of DevTools instead — that is what the crawler indexes after rendering, and the difference between the two is often the finding.

Headings are structure, not typography

The single most common heading defect has nothing to do with SEO. Somebody wanted bigger text, reached for an H3, and created a section that does not exist. Somebody else wanted a subtitle under the title, used an H2, and now the page claims its first section is called "the fast, honest way to move house".

The tag is a claim about the shape of the document. Assistive technology exposes a list of those claims and lets a reader jump between them, and that list is the table of contents you never wrote on purpose. When it reads like a coherent summary of the page, the structure is right. When it reads like a random sample of sentences, the structure is decoration.

Font size belongs in CSS. There is no penalty for an H2 that renders at fourteen pixels, and no reward for a <div> styled to look like a title.

What Google actually says about multiple H1s

The advice that a page may have exactly one H1 comes from HTML4, where it was true, and survives in briefs written by people repeating it. HTML5 introduced sectioning content, in which each <article> or <section> may open its own H1. Google has confirmed several times that multiple H1 elements are fine and that its systems handle them.

This checker still flags the second one, at a warning rather than an error, and you can switch even that off with the checkbox. The reason is editorial. In the pages we see, a second H1 is rarely deliberate HTML5 sectioning; it is a theme putting the site name in an H1 above the article title, or a landing page that grew a second offer. Both are worth a look. Neither is a penalty.

Reading the outline

The tree is indented by nesting rather than by tag number, so a document that jumps from H2 to H4 is shown one step deeper, not two. That keeps the shape honest and leaves the jump itself to the findings list.

A good outline reads top to bottom as an answer to the page's own title. If a section heading would make no sense to someone who has not read the paragraph above it, it is describing a paragraph rather than a section — and it usually belongs in the text.

Once the shape is right, the two things that most often remain broken are the images and the head of the document. The Image Alt Text Checker covers the first, and the Meta Tag Analyzer reads the title, description and robots directives from the same pasted source.

Frequently asked questions

Can more than one H1 hurt my rankings?

No. Google's own guidance says it is fine to use multiple H1 elements, and John Mueller has repeated it for years. The HTML5 specification allows one per sectioning element, and every CMS that ships a hero block plus an article title already produces two. What a second H1 usually reveals is an editorial problem rather than a technical one: the page is trying to be about two things. Fix the ambiguity and the tag count fixes itself.

Does a skipped heading level break anything?

Not for the crawler, which reads the sequence and moves on. It breaks assistive technology, where the heading list is the main way of moving around a page. A reader who jumps from an H2 to an H4 is told a subsection opened inside a section that does not exist, and the WCAG technique for headings exists precisely because that confusion is measurable. It is a small fix with a real beneficiary.

Why paste HTML instead of entering a URL?

Because a page running in your browser is not allowed to download someone else's page. The same-origin policy blocks it unless the other site sends a permissive CORS header, which almost no site does. Every tool that asks for a URL is fetching it from a server it owns, which means your address, and often your unpublished staging page, ends up in that server's logs. Pasting the source keeps the analysis on your machine.

Should I use a heading just to make text bigger?

No, and this is the most common defect this checker finds. A heading is a structural promise that a new section starts here; font size is a CSS decision. If the design needs large text that is not a section, style a paragraph. If a section genuinely starts and the design wants it small, keep the heading and set the size in CSS.

Do headings still matter for AI search results?

More than they used to, in one specific sense. Passage-level retrieval, whether for a featured snippet or for an AI overview, needs to find a self-contained chunk of text and know what it answers. Clear headings are the cheapest way to mark where one answer ends and the next begins. That is not a ranking factor so much as a way of making your page easy to quote.

Related tools

Updated