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.