Home › Developer Tools › Heading Structure Checker

Heading Structure Checker

Paste the HTML source of any page to see its headings as an indented H1-H6 outline. The checker flags a missing or repeated H1, skipped heading levels, empty and overly long headings, so you can fix SEO and accessibility problems quickly.

Last updated:

Advertisement
Advertisement

How to use the Heading Structure Checker

  1. Open the page in your browser and view its source (Ctrl+U or Cmd+Option+U).
  2. Copy all the HTML and paste it into the box, or open a saved .html file.
  3. Click Check headings; results also update as you type.
  4. Read the problems list and the flagged lines in the outline.
  5. Fix the headings in your template, then paste again to confirm.

Heading rules the checker tests

CheckSeverityWhy it matters
No H1 on the pageErrorThe main topic has no heading for users, assistive technology or search engines.
Empty headingErrorAnnounced as a blank heading by screen readers; often a leftover from a template.
More than one H1WarningValid HTML, but blurs which heading is the page title.
Skipped level (e.g. H2 → H4)WarningImplies a missing section and breaks the logical outline.
First heading is not the H1WarningHeadings in the site header or menu come before the page title.
Heading over 120 charactersWarningLong headings are hard to scan; move detail into a paragraph.
Duplicate heading text, hidden headingsNoteWorth a look: repeated labels and hidden headings are easy to miss.

Example of a clean outline

LevelHeading
H1A Beginner's Guide to Indoor Plants
  H2Choosing the right plant
    H3Low-light plants
    H3Plants for sunny windows
  H2Watering basics
    H3How often to water

Tips for fixing heading problems

  • Turn decorative headings in sidebars and footers (like "Follow us") into styled paragraphs or give them the right level under a section.
  • If a theme wraps the site logo in an H1 on every page, change it to a div and keep the H1 for the page title.
  • Use the outline as a table of contents test: if it reads like a sensible summary of the page, the structure is good.

Frequently asked questions

What is a good heading structure?

A page should have one H1 describing its main topic, H2s for the main sections, H3s for sub-sections inside an H2, and so on. Levels should go down one at a time, so an H4 always sits under an H3. Going back up any number of levels, such as from H4 to H2, is fine.

Is it bad to have more than one H1?

The HTML standard allows several H1s and Google has said multiple H1s are not a problem for ranking. Still, one clear H1 makes the page topic obvious to users, screen readers and search engines, so it is the common best practice. The checker reports extra H1s as a warning, not an error.

Why are skipped heading levels a problem?

Screen reader users often jump between headings or list them to understand a page. A jump from H2 to H4 suggests a missing section and makes the structure confusing. WCAG technique G141 recommends nesting headings in order to convey the page structure.

Should headings be chosen for their size?

No. Pick the heading level for its place in the document structure and use CSS to set the size. A small-looking subtitle can still be an H2, and a large promotional line that isn't a section title should be a paragraph.

Why does the checker count headings in my navigation and footer?

They are part of the page outline, so screen readers announce them too. If you only want to review the article itself, tick the option to check only inside the main element.

Can I check a live URL?

Browsers can't read other websites' HTML directly for security reasons, so paste the page source instead. Use View Source in your browser to copy the original HTML. If headings are added by JavaScript, copy the rendered HTML from the developer tools Elements panel instead.

Is my HTML sent anywhere?

No. The HTML is parsed in your browser with the built-in DOM parser, scripts in it never run and nothing is uploaded.

Are all the tools on FreeToolCabin tested for quality and accuracy?

Yes! Every tool on our site undergoes automated Q/A testing in real browser environments to ensure high precision, correct output, and zero errors. If you happen to spot a bug or have a suggestion, please contact us at [email protected] and our team will review it right away.

Related tools

Meta Tag AnalyzerPaste page HTML to audit title, description, canonical, robots, Open Graph and hreflang tags.HTML ValidatorCheck HTML for errors and warnings with line numbers, locally or with the W3C Nu checker.Keyword Density CheckerFind the most used 1, 2 and 3-word phrases in your text and their keyword density %.CSS InlinerMove CSS from style blocks into inline style attributes so HTML emails render in every client.JSON FormatterBeautify, minify and validate JSON, with a collapsible tree view.SQL Formatter & BeautifierFormat, beautify or minify SQL queries for MySQL, PostgreSQL and more.JavaScript BeautifierFormat and beautify messy or minified JavaScript, or minify it.HTML FormatterBeautify and indent HTML code with a live preview.CSS FormatterBeautify CSS with indent controls and optional property sorting.XML FormatterBeautify, validate and minify XML with a collapsible tree view.ZIP File CreatorCompress files and folders into a ZIP.YAML Validator & FormatterValidate, format and minify YAML, and convert YAML to JSON or back.HTML MinifierMinify HTML: strip comments and whitespace safely and see how many bytes you save.CSS MinifierMinify CSS with csso or a built-in engine and see the size saved instantly.JavaScript MinifierMinify JavaScript with Terser: compress, mangle and see how many bytes you save.JSON MinifierMinify and validate JSON, sort keys and see exactly how many bytes you save.Code Diff CheckerCompare two code files side by side or unified, with syntax colors and changes highlighted.IPv6 Expander & CompressorExpand IPv6 addresses to full form or compress them per RFC 5952, one or many at once.GraphQL FormatterPretty-print and indent GraphQL queries, mutations and schemas, or minify them, instantly.CSS ValidatorValidate CSS: syntax errors, unknown properties and invalid values by line, plus auto-fix.Gzip Compress / DecompressGzip or deflate text and files, get Base64 output, and decompress Base64 or .gz files.IBAN ValidatorCheck an IBAN's mod-97 checksum, country and length, and see its bank code and account parts.JavaScript Syntax CheckerCheck JavaScript for syntax errors with line and column, for any ES version, script or module.JSON Schema ValidatorValidate JSON against a JSON Schema (draft-07, 2019-09, 2020-12) with clickable error paths.Markdown FormatterBeautify Markdown with Prettier: list markers, prose wrap, aligned tables and live preview.PHP FormatterBeautify PHP code with Prettier PHP: PSR-12 style, indent and brace options, syntax errors.TypeScript FormatterFormat TypeScript and TSX code with Prettier: width, tabs, semicolons and quotes options.XML MinifierMinify and validate XML: strip whitespace and comments, keep CDATA, see the size savings.C# FormatterBeautify C# code online: Allman or K&R braces, indent size and line width, clang-format option.Java FormatterBeautify Java code online: indent size, brace style and line width, with clang-format option.JavaScript ObfuscatorObfuscate JavaScript with string encoding, renaming and control-flow flattening presets.Phone Number FormatterFormat and validate lists of phone numbers to E.164, international or national style.Python FormatterFormat Python code in Black/Ruff style: line length, quote style, indent, copy or download.Responsive Design CheckerPreview any website at phone, tablet, laptop and desktop sizes side by side, with rotate and zoom.Browser Compatibility CheckerSearch CSS, JavaScript and HTML features and see which browser versions support them.Core Web Vitals CheckerCheck real-user LCP, INP and CLS for any URL or site and see if it passes Core Web Vitals.Website Hosting CheckerFind out who hosts a website: hosting provider, IP addresses, ASN, network owner and location.Routing Number ValidatorCheck a US ABA routing number's checksum and format and see its Federal Reserve district.XSD ValidatorValidate XML against an XSD schema in your browser and see each error with its line number.Strftime Format BuilderBuild Python and C strftime format strings by clicking tokens, with a live preview and reference.Spam Word CheckerScan an email subject and body for spam trigger words, excess caps, exclamation marks and risky links.Check Digit CalculatorCalculate or validate check digits for UPC, EAN, GTIN, SSCC, ISBN, ISSN and mod 11 codes.Luhn Algorithm CheckerValidate numbers with the Luhn mod 10 check or calculate the missing check digit, step by step.
See all 41 Code Formatters & Validators →