Skip to content

Multiple H1 tags

lowseo-h1-multiplereviewed

HTML5 permits several H1s and the outline algorithm that justified them was never implemented. What that means in practice, and what to do instead.

What it is

This check counts <h1> elements and flags a page carrying more than one. It runs only when the page has at least one, so it is a separate finding from a missing H1.

The rule is genuinely contested, and it is worth being precise rather than dogmatic about why. HTML5 permits multiple H1s, on the basis of a document outline algorithm in which each sectioning element restarted the heading hierarchy. No browser and no assistive technology ever implemented that algorithm, and it was eventually removed from the specification.

Why it matters

Because the outline algorithm does not exist in any shipping implementation, every H1 on a page is read as a top-level heading of the whole document. Three of them describe three different top-level topics, which is one more piece of guesswork for anything trying to summarise the page.

The practical cost lands on screen reader users first: a heading list with several competing level-one entries is a table of contents with three titles. Demoting the extras to <h2> costs nothing visually — heading level and font size are independent — and makes the outline mean what it says.

How to fix it

with a reference doc
html
<!-- one top-level topic -->
<h1>Trail running shoes</h1>

<!-- everything else steps down -->
<h2>Grip and outsole</h2>
<h2>Cushioning</h2>

Reference documentation

Related checks

4
mediumMissing H1The <h1> is the top-level heading of a document: the one sentence that says what this page is. This check counts <h1> elements in the served HTML and fails when there are none.lowHeading hierarchyHeading hierarchy is whether a page's <h1> through <h6> tags step down one level at a time — an <h2> can be followed by another <h2> or an <h3>, but not by an <h4> with no <h3> in between. This check reads the sequence of heading tags in the order they appear in the HTML.highMissing title tagThe <title> tag in a page's <head> names the page for browsers, search results and social shares. It's one of the few pieces of a page search engines still treat as an explicit, author-declared signal rather than something inferred from content.highColor contrastThis reads Lighthouse's own color-contrast audit: whether text has enough contrast against its background, judged by the WCAG formula rather than eyeballed. The threshold is 4.5:1 for normal text and 3:1 for large text (18pt+, or 14pt+ bold).

This is one of the 75 checks the scanner runs. See what we check for the full list, every severity weight, and how the score is computed from them.

See whether your own site passes multiple h1 tags.

One page, all 75 checks, free. No account, no card.

Check this on my site