Free Heading Structure Checker

Paste a page's HTML source (view-source or "Inspect") to see its H1–H6 outline and catch structural issues before they hurt readability or SEO.

Paste full page HTML, or just a set of heading tags — either works. Nothing is uploaded; parsing happens in your browser.

Heading outline

How to check a page's heading structure

  1. 1

    Copy the page's HTML

    Use "View Page Source" or copy the relevant section from your browser's Inspector.

  2. 2

    Paste it in

    Paste the full HTML or just the heading tags — both work.

  3. 3

    Review the outline and checks

    Fix any flagged issues — missing H1, multiple H1s, skipped levels, or empty headings.

Example use cases

1

Pre-publish content review

Confirm a draft has one clear H1 and a logical section hierarchy before it goes live.

2

Accessibility audits

Catch skipped heading levels that make a page harder to navigate with a screen reader.

3

Auditing an existing page

Diagnose why a page's outline looks messy in an SEO crawler or browser extension.

Frequently asked questions

Why does heading structure matter?

A clear H1 → H2 → H3 hierarchy helps both readers and search engines understand how a page is organized, and it's important for screen-reader users who navigate a page by jumping between headings.

Should a page have exactly one H1?

That's the common convention — one H1 as the page's main heading, with H2s and deeper levels for the sections beneath it. Multiple H1s aren't strictly invalid HTML, but they blur which heading is the actual page title.

What does "skipped level" mean?

Jumping from an H2 straight to an H4 without an H3 in between. It doesn't break anything visually, but it breaks the logical outline of the page — screen readers and outline-based tools expect levels to nest one step at a time.

Does this check styling too?

No — this only looks at the HTML heading tags (h1–h6) themselves, not how they're styled. A heading tag used purely for its font size, or a styled <div> used instead of a real heading tag, won't be caught either way.

Is my HTML sent to a server?

No — it's parsed entirely in your browser.