Skip to main content
7BBusyBoss

Heading Hierarchy Checker — H1–H6 Outline + Issue Detection

Paste HTML or Markdown to see the heading outline indented by level, with H1 count and every skipped level flagged with the text where it happens.

No limitsZero data leaksSuper fast

Heading Hierarchy Checker

Total headings

6

H1 count

1

Hierarchy issues

0

Outline

H1Pomodoro Timer with Lofi Focus Mode
H2Why a Lofi Study Mode
H3Background photos auto-rotate
H3Optional YouTube playback
H2Custom durations
H2Mini vs Full Screen

You're on 7BusyBoss — 300+ free tools that run instantly in your browser. No signup, nothing uploaded.

Browse all On-Page SEO
About this tool

The heading outline is an interface, not decoration

Someone using a screen reader does not see your layout. What they get is the heading outline — and many pull up that list first, as a table of contents, to decide where in the page to go. That makes your headings a working navigation control for a group of readers you never see in analytics.

Which is why the common failure matters: text made bold and large to look like a heading is not one. It is invisible to that list, so a section that is obvious on screen simply does not exist for anyone navigating by structure. The reverse is just as bad — a heading tag used on something that is not a section heading inserts a phantom entry into the outline.

Why exactly one H1

The H1 answers "what is this page about". Two H1s claim two subjects and leave the outline without a root, so nothing tells a reader which one the page is really for.

In practice this almost always arrives through a template. A site header marks up the site name or logo as an H1 to make it prominent; later, an article is added with its own H1 title. Nobody wrote two H1s deliberately, but the page now has them, and the outline presents the site name and the article title as equal claims about the subject. The rule that resolves it: the H1 belongs to the content, not to the site frame.

What a skipped level actually breaks

A jump from H2 straight to H4 tells anyone reading the outline that an H3 section sits between them. It does not. They are looking for content that was never written, in a structure that does not exist.

The cause is nearly always visual. Heading levels render at decreasing sizes, so a heading gets picked for how big it looks rather than for where it sits in the hierarchy — H4 chosen because H3 looked too large for a short subsection. The fix follows from that: correct the level, do not add a heading to fill the gap. Adding one papers over a labelling mistake with a real structural change. If the heading is genuinely a subsection of the H2 above it, it is an H3, whatever size that renders at — and size is a job for CSS.

The test that catches most of it

Read only your headings, in order, and ignore everything else. Does that list still describe the page? A sound structure reads as a summary someone could use to find their way around. A broken one reads as disconnected labels, and that is precisely what a reader navigating by headings receives.

It is worth doing before running any checker, because it catches the problems no automated check can see: headings that are correctly nested and still meaningless.

What the checker reads

Paste HTML or Markdown and you get the outline indented by level, plus three figures — total headings, H1 count, and hierarchy issues — with each issue naming the heading text where it occurs.

Two limits to know. It audits markup you paste; it does not fetch a URL or crawl a site. And Markdown is a fallback only: it looks for lines starting with one to six # characters, but only when it found no HTML headings at all. Paste a document mixing both and the Markdown headings are silently ignored, so convert first or check them separately.

Malformed markup is handled properly: an unclosed heading followed by a differently-levelled one no longer merges the two into a single phantom entry, which matters because broken markup is often exactly why you opened a hierarchy checker.

For the other structural read on the same draft — which words the page actually repeats, and whether it is about what you think — see the keyword density analyzer.

How to use the Heading Hierarchy Checker (H1–H6)

Takes about a minute. No signup, no download, your data stays in your browser.

  1. 1
    Open the tool. Scroll up to the Heading Hierarchy Checker (H1–H6) above — it loads instantly in your browser, no install needed.
  2. 2
    Enter your values. The fields come pre-filled with realistic defaults so you can see how it works — replace them with your own numbers.
  3. 3
    Read the result. The output updates instantly. Copy or share it — nothing is uploaded to a server, everything stays on your device.

Frequently asked questions

Common questions about the Heading Hierarchy Checker (H1–H6).

Why does more than one H1 matter?

The H1 states what the page is about, so two of them make two competing claims and leave the outline with no root. It usually happens by accident: a template marks the site name as an H1 and an article title adds a second. The resolution is that the H1 belongs to the content rather than the site frame.

Can I skip from H2 to H4?

You can, and it tells anyone navigating by headings that an H3 section exists between them when it does not. The cause is nearly always that the level was chosen for the font size it renders at. Correct the level rather than adding a heading to fill the gap, and use CSS if you want a different size.

Why were my Markdown headings ignored?

Because Markdown detection is a fallback that only runs when no HTML headings were found at all. If your pasted text contains even one HTML heading, the hash-prefixed lines are skipped. Check the two formats separately, or convert to one before pasting.

Does it check a live page?

No. It reads the markup you paste, in your browser, and never fetches a URL or crawls a site. Copy the source of the page, or the draft you are still writing, and paste that in.

Is a good heading structure enough?

No, and the quickest way to see why is to read only your headings in order and ask whether that list still describes the page. Headings can be perfectly nested and still be a set of disconnected labels — which is exactly what a reader navigating by structure would receive. No automated check can catch that; the read-through can.

Community rating

Discussion (0)

No comments yet. Start the discussion.