Skip to content
SeenLens

Missing H1 tag: how to fix it

A page has a missing H1 tag when its HTML has no h1 element, or only an empty one such as a logo image. Readers and machines then lack a clear statement of the page topic. Use exactly one h1 that names the topic, and turn other h1 elements into h2. The fix takes about 10 minutes per template.

By SeenLens · Last updated

Run the free 43-check scan on your page

What this check tests

SeenLens counts the <h1> elements in the page HTML, and reads their text.

How the h1-single check scores the headings
ResultWhat SeenLens found
FailNo h1, or an h1 without text (an image or an empty element)
WarnMore than one h1, including two or more h1 with the same text
PassExactly one h1

The HTML standard allows several h1 elements. MDN calls that legal but not a best practice, and advises one h1 per page and no skipped heading levels. Google's SEO starter guide says that for Google Search heading order does not matter, though a logical order helps screen readers. The check follows MDN, because one h1 also gives AI systems a clear page topic.

How to confirm the problem

curl
curl -s https://example.com/your-page | grep -i -o "<h1[^>]*>.\{0,80\}"

No output means no h1 in the raw HTML. A single page app may add the h1 with JavaScript, which crawlers that skip scripts do not see. See content that needs JavaScript. Two or more lines mean multiple h1 elements.

How to fix it

Make the visible page headline the h1. Use plain text. Put the logo in a div or a p, not in an h1, on pages other than the home page.

HTML
<header><a href="/"><img src="/logo.svg" alt="Acme" width="120" height="32"></a></header>
<main>
  <h1>Missing H1 tag: how to fix it</h1>
  <h2>What this check tests</h2>
</main>
  • Next.js: render one <h1> in the page component, as plain JSX in a Server Component, and make shared layout components use <p> or <div> for the site name.
  • WordPress: most themes print the post title as the h1. If the site title is also an h1 on every page, edit the theme's header template or ask the theme author to change it.
  • Shopify: the theme's section code decides the heading level. Edit the section in the theme code editor so that the page title uses <h1> once, and banners and slideshows use <h2>.
  • Page builders: set the heading level in the block settings. Many builders default to h1 for the first heading you add.

How to verify the fix

  1. Run the curl command. It must print exactly one line.
  2. Check that the h1 text matches the page topic and the title tag.
  3. Run the SeenLens scan and confirm the check passes.

Run the free SeenLens scan on your page

When can you ignore it?

A page with several h1 elements in separate sections is valid HTML, and Google does not need one h1. The SeenLens check still warns, because one h1 gives a clearer topic to other machines and to screen reader users. Accept the Warn only if changing the template carries a cost.

Sources