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.
| Result | What SeenLens found |
|---|---|
| Fail | No h1, or an h1 without text (an image or an empty element) |
| Warn | More than one h1, including two or more h1 with the same text |
| Pass | Exactly 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 -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.
<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
- Run the curl command. It must print exactly one line.
- Check that the h1 text matches the page topic and the title tag.
- Run the SeenLens scan and confirm the check passes.
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
- MDN: HTML heading elements (multiple h1 allowed but not best practice, do not skip levels, checked 2026-11-06)
- Google Search Central: SEO starter guide (heading order and Google Search, checked 2026-11-06)