dotvitals

The page has no h1 heading

LowConfirmedQuick winseo.headings.h1-missing

What this check looks for

There is no <h1> in the served HTML. The top-level heading is how both readers and assistive technology identify what the page is about.

Why it matters

A missing top-level heading makes the page harder to navigate with a screen reader, and removes the clearest statement of the page's subject from the markup that search engines read.

When the check passes, your report says: “The page has a top-level h1 heading”.

What it costs your score

When this check fails it removes 8 points from your SEO score, before the status, confidence and repeat multipliers are applied. SEO carries a weight of 5 in the overall score.

It shares the seo.content family ceiling of 15 points: however many findings that family produces, together they cannot remove more than that from SEO. One underlying problem showing up in several places is still one problem.

Severity
low
Default confidence
confirmed
Status when triggered
warn
Deduction
8 points
Family cap
seo.content · 15
Category
SEO
Module
Seo audit
Fix owned by
user
In the ruleset since
2026.09

How the whole score is calculated

How to fix it

Mark the page's main headline up as an <h1>.

It is the document's own statement of its subject, and the anchor assistive technology uses to orient a reader.

  1. Find the visible headline. If it is a styled <div> or <p>, change the element to <h1> and keep the class.

  2. Use one <h1> per page for the page's subject, not for the site name in a shared header.

  3. Render it server-side so it is in the HTML rather than added afterwards.

How to confirm it worked

  • curl -sS ‹url› | grep -ci '<h1' — should be at least 1

A named slot like ‹domain› — and the braces left in the configuration below — is filled in with your own values when this rule appears on a report.

Technical detail

No <h1> element was found. The headings present are: ‹counts›.

**Be clear about what this is and is not.** There is no ranking penalty for a missing h1, and Google has said the heading structure is one signal among many. The reason to have one is that it is the document's own statement of its subject, used by assistive technology to orient a reader and by search engines as one input among many when generating a title link.

A page whose visible headline is styled with a <div> and CSS has the same appearance and none of the structure. Using <h1> for it costs nothing.

This check reads the served HTML. A heading inserted by JavaScript is not counted, and for the same reason is seen later or not at all by consumers that do not render.

Standards and references

Test this on your domain

Run the check that produces this finding, on its own, against any domain.

Open the seo audit checker

Other seo audit checks