Heading Checker: Audit Your H1–H6 Structure & Outline
Paste a page's HTML and get its heading outline drawn as a clean H1–H6 tree, with every structural issue (no H1, multiple H1s, skipped levels, empty headings) flagged and explained so you can fix the hierarchy before it costs you accessibility or rankings.
What is the heading checker?
The Heading Checker parses pasted HTML to draw its H1–H6 outline as an indented tree, flagging a missing H1, multiple H1s, skipped levels and empty headings with a plain-English fix for each. A structure score and per-level counts summarise the page. Free and local, so staging drafts stay private.
The GigAI Heading Checker turns the invisible heading structure of a page into something you can actually read and reason about. Paste your full page source or just a section of markup and the tool parses it locally with the browser's native DOMParser, then draws every H1 through H6 as an indented outline, exactly the tree a screen reader announces and a search crawler uses to understand your content. Alongside the outline it runs a focused structural audit: it flags a missing H1, more than one H1, a document that opens on a lower level, headings that skip a rank (an H2 jumping straight to an H4), and empty heading tags that add noise without meaning. Each finding comes with a plain-English explanation of why it matters and how to correct it, not just a red mark. A live count of how many headings sit at each level, an overall structure score, and a one-line verdict give you the shape of the page at a glance. Because everything runs in your browser on the markup you paste, it works on staging builds, login-gated pages and unpublished drafts, and nothing you paste is ever uploaded, stored or logged.
- Difficulty:
- Easy
- Typical time:
- ~30s
- Processing:
- 100% browser processing
Last updated
How to use the heading checker
- 1
Copy your page's HTML
View source (Ctrl+U / Cmd+Option+U) and copy the markup, or export the HTML from your CMS. A full document or just the section with your headings both work.
- 2
Paste it into the checker
Drop the markup into the box, or load the built-in sample to see the audit in action. Parsing starts automatically and runs entirely in your browser.
- 3
Read the outline and issues
Scan the indented H1–H6 tree, check the per-level counts, and review each flagged issue with its explanation and fix.
- 4
Correct the hierarchy and re-check
Apply the suggested fixes in your template or content, paste the updated markup back in, and confirm the outline is now clean.
What Heading Checker includes
Full H1–H6 outline as a tree
Every heading is drawn indented by its level, so you see the exact hierarchy a screen reader announces and a crawler reads: the true shape of your page, not the visual one.
Catches the structural faults that matter
Missing H1, multiple H1s, a page that opens below H1, levels that skip a rank (H2 → H4) and empty heading tags are each detected and called out clearly.
A plain-English fix for every issue
No cryptic red marks. Each finding explains why it hurts accessibility or SEO and exactly what to change, demote a heading, merge duplicate H1s, or fill in empty tags.
Per-level counts & structure score
Live badges show how many headings sit at each level (H1…H6) and an overall score plus one-line verdict give you the page's structural health at a glance.
Surfaces heading anchor IDs
Where a heading carries an id, it's shown alongside so you can wire up in-page anchor links and a table of contents against the real slugs.
Private, works on any markup
Parsing happens entirely in your browser, so you can audit staging builds, gated pages and unpublished drafts: nothing you paste is uploaded, stored or logged.
Why use our heading checker
Fix accessibility before it ships
A logical heading order is how screen-reader users navigate a page. Seeing skipped levels and empty headings here lets you correct the outline before assistive-tech users hit it.
Give crawlers a clean content map
Search engines lean on your heading hierarchy to understand what a page is about. A single clear H1 and a properly nested outline make your topic and sub-topics unmistakable.
Understand a page in seconds
Instead of scrolling markup hunting for headings, you get the whole outline drawn as a tree, ideal for reviewing a template, a CMS export or a page you didn't write.
No account, no upload, no wait
Paste and read the result instantly in the browser. It runs on confidential or pre-launch pages without any of it ever leaving your machine.
Built for the way you work
From quick one-off fixes to daily workflows, see how people put this tool to use.
- SEO specialist
Audit a page's on-page structure
Confirm a page has exactly one keyword-focused H1 and a logical H2/H3 nesting that reflects its topic, then hand a precise list of fixes to the content or dev team.
- Accessibility engineer
Verify a logical reading order
Check that headings never skip a level and that none are empty, so screen-reader users get an outline they can actually navigate, a core WCAG expectation.
- Frontend developer
Sanity-check a template's headings
Paste a rendered page to make sure a layout and a page component aren't both emitting an H1, and that reusable components sit at the right level in context.
- Content editor
Tidy a long article's outline
See a guide or blog post as a heading tree to spot sections promoted or demoted by accident, and build a table of contents from the real hierarchy.
Supported formats
Accepts HTML, and produces Heading outline and Report, all processed locally in your browser.
- HTML
- Heading outline
- Report
Frequently asked questions
Recommended tools
Meta Tag Analyzer
Paste a page's HTML to audit its title, description, canonical, robots, Open Graph and Twitter Card tags: with a length score, missing/duplicate checks and a live search & social preview, 100% in your browser.
HTML Validator
Paste HTML and instantly check well-formedness plus on-page SEO (title, meta description, lang, image alt text and heading order) with a live outline. 100% in your browser.
Google SERP Preview
Preview exactly how your page appears in Google search (desktop and mobile) as you type your title, URL and meta description, with live pixel-width truncation warnings. Nothing is uploaded.
Meta Tag Generator
Generate perfect SEO meta tags, Open Graph and Twitter Card markup with a live Google snippet and social-card preview, copy the ready-to-paste <head> code, 100% in your browser.
Character Counter
Count characters with and without spaces, plus words, bytes and lines, and check your text live against Twitter/X, meta title, meta description and SMS limits, 100% in your browser.
HTML Sitemap Generator
Turn a list of URLs into a clean, nested HTML sitemap page, a linkable <ul> tree grouped by path that you can paste straight into any site. Boosts internal linking and navigation. 100% in your browser.
Common problems, solved
Hit a snag? Here are quick fixes for the issues people run into most.
The checker says no headings were found, but my page clearly has them.
The tool audits the HTML you paste, not a rendered live page. If your headings are injected by JavaScript after load, copy the DOM from your browser's Elements panel (right-click a heading → Copy → Copy outerHTML, or copy the whole <body>) rather than the raw View-Source, which shows only the initial server markup.
It flags multiple H1s but I only wrote one.
A site header, a hero component and the page body can each emit an H1 without you noticing. Search the pasted markup for '<h1' to find every instance. Usually a shared layout is adding one on top of your content's H1. Keep a single H1 per page and demote the rest.
Why is a visually large heading not in the outline?
The checker only counts real <h1>–<h6> elements. Text styled to look like a heading with CSS (a big, bold <div> or <p>) is invisible to crawlers and screen readers alike. Convert it to a genuine heading tag at the correct level so it joins the outline.
Is a skipped heading level always wrong?
Going from H2 straight to H4 skips H3 and breaks the outline for assistive tech, so it's flagged. Jumping back up, H4 to H2 to start a new section, is normal and fine. The check only warns when you descend more than one level at once.
Get the most out of it
Use exactly one H1 per page and make it describe the page's main topic, it's the strongest on-page heading signal for both SEO and accessibility.
Never pick a heading level for its size. Choose the level for its place in the hierarchy and use CSS to style it.
Don't skip levels on the way down (an H2 should be followed by H3s, not H4s) so the outline stays navigable for screen-reader users.
Give important headings a stable id so you can link to them and build an automatic table of contents from the outline.
Keep decorative or empty <h_> tags out of your markup. An empty heading adds a meaningless stop for assistive technology.
What's new
Recent updates and improvements to the heading checker.
Initial release. Paste HTML to get the H1–H6 outline as a tree plus structural checks for missing/multiple H1s, skipped levels and empty headings, each with a fix.
Added per-level heading counts, an overall structure score with a one-line verdict, and surfaced heading id anchors in the outline.
Keep exploring
Problems we solve
From the blog
Explore categories
Compare formats
By file type
Common tasks
Your privacy is built in
Every check runs locally in your browser using its native DOMParser. The HTML you paste is never uploaded, stored or logged. That makes it safe to audit staging builds, login-gated pages and unpublished drafts, and closing the tab erases everything you pasted.
- Runs in your browser
- No uploads
- Nothing stored
Ready to try the heading checker?
Free, private and instant. Heading Checker runs right in your browser.