Heading Structure Analyzer
Paste a page's HTML and this tool lists every h1 to h6 heading in order, draws an indented outline of the structure, and flags common problems: no h1, more than one h1, a skipped level, or an empty heading. Everything is checked in your browser.
How to analyze your heading structure
- Open the page, view source, and copy the HTML (or just the part with your headings).
- Paste it into the box below.
- Read the outline and the findings list, then fix anything flagged red or amber.
Examples
A clean, logical outline
<h1>Best Running Shoes</h1><h2>Top picks</h2><h3>Trail</h3>
3 headings, well nested (h1 > h2 > h3), no issues.
A skipped heading level
<h1>Guide</h1><h2>Setup</h2><h4>Details</h4>
Warning: level jumps from h2 to h4, skipping h3.
Frequently asked questions
Why does heading structure matter for SEO?
Headings give a page a clear outline that both search engines and screen readers use to understand how the content is organized. A single descriptive h1 tells search engines the main topic, and a logical h2/h3 hierarchy maps the subtopics, which helps with relevance, featured snippets and accessibility. Messy or missing headings make a page harder to parse and can weaken how well it ranks for its sections.
What is the correct heading hierarchy?
Use exactly one h1 for the page's main title, then nest sections with h2, and subsections of those with h3, and so on. The key rule is to step down only one level at a time: an h2 should be followed by an h2 or an h3, never an h4. You can jump back up any number of levels (an h3 followed by a new h2 is fine), but you should not skip levels on the way down.
Should a page have more than one h1?
For most pages, no. The long-standing best practice is a single h1 that names the page topic, with everything else under h2 and below. HTML5 technically allows multiple h1s inside sectioning elements, but in practice one h1 keeps the outline unambiguous for search engines and assistive technology, so this tool warns when it finds more than one.
What counts as a skipped heading level?
A skipped level is when the outline jumps down by more than one step, such as an h2 followed directly by an h4 with no h3 in between. That breaks the logical nesting and can confuse screen reader users who navigate by headings. This tool flags every jump and tells you exactly which level (or levels) were skipped so you can insert or relabel a heading.
Does this tool fetch the page or run JavaScript?
No. It only reads the HTML you paste in, so it does not visit the URL or render scripts. If your headings are injected by client-side JavaScript, paste the rendered HTML from your browser's inspector rather than the raw view-source response so the analysis matches what users and crawlers actually see.
Is my HTML kept private?
Yes. The analysis runs entirely in your browser with JavaScript. Nothing you paste is uploaded, logged or stored anywhere.
Related tools
Readability Checker
Free readability checker. Paste text to get the Flesch Reading Ease score, Flesch-Kincaid grade level and reading stats instantly. Runs in your browser.
Word Count for SEO
Free SEO word count tool. Paste content to see words, characters, sentences, paragraphs, reading time and top keywords. Runs in your browser.
Title Tag Checker
Check your title tag length and estimated pixel width, see a live Google preview, and catch issues like ALL CAPS or extra pipes before you publish.
Article Schema Generator
Generate Article, NewsArticle or BlogPosting JSON-LD schema. Add headline, author, publisher and dates, then copy the script into your page.
Breadcrumb Schema Generator
Build BreadcrumbList JSON-LD structured data. Add your breadcrumb trail, reorder the steps, then copy or download the script for your page.
Bulk Hreflang Generator
Generate hreflang annotations for many languages at once. Add language and URL rows, pick HTML, XML sitemap, or HTTP header output. Runs in your browser.