Heading Analyzer
Paste HTML or Markdown to see the h1-h6 tree and catch skipped levels, missing or duplicate h1.
Markdown ATX headings (# to ######) and HTML h1-h6 tags are both read. Headings inside fenced code blocks are ignored. Setext headings are not parsed.
Heading tree
Issues
Counts by level
How to use it
- Paste a page source or a Markdown document into the input box. If the text contains h1 to h6 tags it is read as HTML; otherwise lines starting with one to six # signs are read as Markdown headings.
- The heading tree lists every heading in document order, indented by level, so the outline reads at a glance.
- The issues list flags structural problems: no h1, more than one h1, a level jump such as h2 followed by h4, an empty heading, or a heading longer than 60 characters.
- The counts row shows how many headings sit at each level, and the copy button puts the tree, counts and issues into a plain-text report.
- Everything runs in your browser. Nothing is uploaded, and no request leaves the page.
Common use cases
- Auditing a page before publishing - check that the outline matches the content and that exactly one h1 carries the page topic.
- Reviewing imported Markdown - pasted documents often carry deep jumps or leftover empty headings from old exports.
- Teaching document structure - show how a logical outline maps onto heading levels in a class or workshop.
- Cleaning up templates - spot duplicated h1 tags across a set of generated pages.
Why it stays private
The analyzer parses the pasted text with the browser's own HTML parser plus a few regular expressions. No network request is made, no content is stored, and clearing the box removes every trace from the page.
FAQ
Q: Which heading syntaxes are supported? A: Markdown ATX headings, one to six # signs followed by a space, and HTML h1 to h6 tags. Headings inside fenced code blocks are ignored so that documentation samples do not pollute the outline. Setext headings, the underline style, are not parsed.
Q: Does a missing h1 hurt rankings? A: Search engines can usually work out the page topic without an h1, and this tool makes no promise about rankings. A single clear h1 is a widely used convention that helps readers and assistive technology, which is why it is reported.
Q: What does a skipped level mean? A: Going from h2 straight to h4 skips h3. It is not a formal error in the HTML specification, but it often signals a broken outline or a copy-paste accident, so it is listed as an issue.
Q: Why is a long heading only a warning? A: Titles longer than about 60 characters are frequently truncated in search result listings, so the tool notes the length. Whether to shorten it is an editorial decision, not a rule this tool enforces.
Your data stays on this device
Heading Analyzer runs 100% locally. Everything you paste or drop is processed by your own browser and never transmitted. Nothing is stored on our servers — close the tab and it is gone.
Nothing you type is sent to a server, logged, or used for analytics. The page works even with your network disconnected after first load.