Category: Developer tools

HTML Heading Structure Checker

System ideaMissing a tool?

Outline H1-H6 headings and flag structural issues

Paste HTML to see its H1 through H6 headings as a document outline, and flag a missing H1, multiple H1s, skipped heading levels and empty headings. Runs entirely in your browser.

H1 count1Issues2
Heading outline
  • H1 How local browser tools work
  • H2 Why run tools in the browser
  • H4 A skipped level
  • H2 Another section
  • H3 (empty heading)
Issues
  • An H3 heading has no text.
  • Heading level jumps from H2 to H4, skipping a level.

Everything on this page is processed in your browser. Nothing is uploaded.

What this tool does

Screen readers and search engines both lean on heading levels to understand a page's structure, so a missing H1, two competing H1s, or a jump straight from H2 to H4 can make a well-written page harder to navigate. This tool extracts every heading from pasted HTML in document order, shows it as an indented outline, and flags the structural issues that are easy to introduce by accident while editing a template.

How to use it

  1. Paste the HTML of a page or article into the input box.
  2. Review the heading outline to confirm it matches the page's intended structure.
  3. Fix any flagged issues, such as a missing H1 or a skipped heading level.

Privacy

This tool runs entirely in your browser. Your input is never uploaded, stored or shared — closing the tab removes it.

Frequently asked questions

Is my HTML uploaded anywhere?
No. The document is only ever read as text by a tokenizer in your browser tab; nothing is rendered or sent to a server.
Why does a skipped heading level matter?
Assistive technology users often navigate by jumping between headings of a given level; a jump from H2 straight to H4 can make it seem like a section was skipped or make the structure confusing to follow.
Is an empty alt attribute the same as an empty heading?
No, they are unrelated. An empty heading, such as an <h3></h3> with no text, is always a mistake and is flagged as one here; an empty alt attribute on an image is a different, and often intentional, pattern covered by the Image Alt Text Auditor.