← All checks
SEOTypical severity: Low

SEO Heading Scanner

Checks that your page has exactly one <h1> that clearly defines its main topic.

What it checks

This scanner checks your page's heading structure and verifies that it has exactly one <h1>. That main heading is the one that clearly defines the central topic of the content.

Why it matters

A single, well-written <h1> helps Google and AI assistants understand what the page is about, which improves your relevance for the right searches. Having several <h1> tags, or none, creates confusion about the main topic.

How to fix it

Make sure each page has a single <h1> that summarizes its topic in clear, natural words. Then use <h2> and <h3> headings to organize sections in a hierarchical way.

How this check works

Scanaris counts the <h1> tags in your page's HTML. The correct result is exactly one. If there is none, it opens a medium-severity finding: neither Google nor a screen reader knows what the main topic is. If there are two or more, it opens a low-severity one with the count: several main headlines dilute what the page is about. Only the served HTML is examined, without running JavaScript, and only the scanned page.

Why it matters

The <h1> is the page's headline, the first thing a screen reader announces and one of the clearest signals Google has to understand the topic. A page without an h1 is like an article without a title: the search engine has to infer it from the rest. Several h1s are not an HTML error, but they spread that signal: if your product page has the product name, the tagline and "Reviews" all as h1, none of the three is the topic. And it is the base of the rest of the hierarchy: h2s divide the content into sections, h3s subdivide, and that is how keyboard and screen-reader users navigate and how AI assistants chunk your text to cite it.

Why it happens

The most common case of zero h1s is design: the big text in the hero is a div with size classes, or a p, because whoever built it thought about looks rather than structure. In single-page apps, JavaScript renders the h1 and it is not in the initial HTML. The multiple-h1 case usually comes from components: every card, every section or every widget brings its own h1, or the logo is wrapped in one "for SEO", which is advice from 2008.

How to fix it

  • One h1 per page with the main topic, visible and near the start of the content. On the home page, what you do; on an article, its title; on a product, its name.
  • The logo is not an h1. It is a link to the home page with the brand name as text or as alt.
  • The rest in h2 and h3, without skipping levels: an h3 goes inside a section with an h2. If a tag only interests you for its size, use a CSS class, not a heading level.
  • In components, accept the level as a prop (<Heading :level="2">) instead of fixing it inside, so the same card can be h2 on one page and h3 on another.
  • In SPAs, server-render at least the page structure or use prerendering; otherwise Google sees an empty page before running your JavaScript.

Check it is fixed

curl -s https://yourdomain.com | grep -oiE '<h[1-6][^>]*>[^<]{0,80}' | sed 's/<\(h[1-6]\)[^>]*>/\1: /'

Exactly one line should start with h1:, followed by the h2 and h3 hierarchy in logical order. If nothing comes out, JavaScript renders the content and Google does not see it at first either.

Frequently asked questions

HTML5 allows one h1 per section. Why is it flagged?

The specification allowed it with the per-section "outline" algorithm, but no browser or screen reader ever implemented it, and the specification dropped it in 2022. In practice, one h1 per page remains the recommendation of Google and of the accessibility guidelines.

My h1 is hidden with CSS so the design stays clean.

An h1 hidden with display: none is read by neither Google nor screen readers. If you need it unseen but read, use a visually-hidden text class (sr-only); but consider whether the page's main headline really should be hidden.

Are the other levels reviewed?

This check only counts h1s. Empty headings are detected by accessibility, and the tab title, which is not the same as the h1 although they usually look alike, is reviewed by SEO metadata.

Check it on your site

Scan your site free and see if this and 44 other checks pass, with a fix prompt for every issue.

Scan my site free

Related checks