Missing H1 Tags: Why They Matter and How to Fix Them

AI OVERVIEW

Learn why missing H1 tags matter for SEO, accessibility, and page structure, plus how to find and fix missing, empty, and multiple H1 tags.

A missing H1 tag rarely lives on just one page. When a site audit flags it, the cause is usually a page template that never outputs a main heading, which means every page built on that template inherits the gap. To show what that looks like on a real website, we pulled the heading data from a SiteAuditLint crawl of acquire.ai and traced each missing H1 back to its source.

What is a missing H1 tag?

Short answer: A missing H1 tag means a page contains no <h1> element in its HTML, so there is no semantic main heading stating what the page is about. The page may still show large headline text, but if that text sits in a div, span, or h2, crawlers and screen readers do not treat it as the primary heading.

The H1 is the top level of the HTML heading hierarchy. It sits above the H2 section headings and H3 subsections and names the primary topic of the page:

<h1>Technical SEO Audit Checklist</h1>
  <h2>Crawlability</h2>
    <h3>Robots.txt</h3>
    <h3>XML sitemaps</h3>
  <h2>Indexability</h2>

It is not the same thing as the title tag. The <title> lives in the document head and is what browsers show in the tab and what search engines often use as the clickable headline in results. The H1 is visible on the page itself. The two should describe the same topic and match the same search intent, but they do not need to be identical.

The most common way a page ends up without an H1 is a heading that only looks like one:

<div class="hero-title">Finance Transformation with AI</div>

Visually this is the headline. Semantically it is just a styled block of text. The fix is to use the real element and let CSS handle the size:

<h1 class="hero-title">Finance Transformation with AI</h1>

Does a missing H1 tag hurt SEO rankings?

Short answer: A missing H1 is not a direct ranking penalty. Search engines can rank a page without one by reading the title tag, body content, and internal links. It is still worth fixing because the H1 is a clear on-page relevance signal, a core accessibility landmark, and a useful anchor for AI answer engines that split pages into sections by heading.

There are three practical reasons to fix it anyway:

  • Topic clarity. A descriptive H1 confirms the page topic alongside the title tag and URL. Without it, search engines lean more heavily on the other signals, which on template-driven sites are often duplicated. The same acquire.ai crawl found 158 pages with duplicate titles, so the H1 was not a redundant signal there.
  • Accessibility. Screen reader users commonly jump straight to the H1 to confirm they are on the right page, then move through H2s to skim sections. WCAG 1.3.1 (Info and Relationships) expects structure that is shown visually to also exist in the markup. A styled div headline fails that.
  • Answer engine extraction. AI tools that retrieve content at the passage level use headings to decide where one idea ends and the next begins. A page with no H1 and a muddled heading hierarchy is harder to chunk and cite cleanly.

What does a missing H1 problem look like in a real site audit?

We ran SiteAuditLint against acquire.ai (audit #32, 25 September 2026). The crawl covered 479 URLs in 2 minutes 45 seconds and returned an overall site health score of 83 out of 100. The On-Page SEO category scored lower, at 76, and heading issues were a large part of the reason.

265HTML pages checked for headings
27Missing H1 (Warning, medium impact, low effort)
212Multiple H1 headings (Opportunity)
42Duplicate H1 text across pages
26Pages with exactly one H1
76On-Page SEO category score

The useful part is not the count. It is where the 27 missing H1 pages sit. Grouping the affected URLs by path makes the pattern obvious:

Page typeExample affected URLPages
Single blog posts/blogs/ai-readiness-gap-australian-finance-leaders/15
Root-level articles/finance-transformation-ai-outsourcing-2026/4
Category archives (incl. paginated)/category/blogs/page/2/6
Tag archives/tag/ai-in-finance/2
Total27

Every missing H1 is on editorial or archive content: posts, articles, category listings, and tag listings. Not a single service page, industry page, or location page is on the list. That is the signature of a template problem. Somewhere in the single post template and the archive template, the post title or archive title is being rendered as something other than an h1.

The other half of the picture confirms it. The homepage, /au/about/, and /au/industries/healthcare/ each report 2 H1 tags. /au/global-outsourcing/ reports 3, and /au/auto-signup/ reports 4. So one family of templates outputs too many H1s while another outputs none. On sites built with a theme builder, this split often happens when a shared hero or header section uses H1 for display text, and the blog templates were built separately with the title widget set to H2 or a plain text element. That is a hypothesis to confirm in the source, but the crawl data tells you exactly which two templates to open first.

Worth noticing: across four audits on the same day (#26 to #32), total warnings dropped from 586 to 327 and average response time fell from 1,468 ms to 882 ms. The Missing H1 count stayed at exactly 27 in every run. Performance fixes shipped, the heading template did not. Low-effort issues get left behind when nobody owns the template.

What causes missing H1 tags?

Missing H1 tags almost always come from how the page is built rather than what the writer typed. These are the causes that show up most in crawls.

The theme builder title widget is set to the wrong tag

Page builders such as Elementor, Divi, and Bricks let you pick the HTML tag for a Post Title or Heading widget. If the single post template was built with that setting on H2, div, or p, every post published through it has no H1. This fits the acquire.ai pattern, where only posts and archives are affected.

The archive template has no heading at all

Category archives, tag archives, author pages, and paginated listings like /page/2/ are often afterthoughts. Many templates show a grid of post cards with no archive title, so the page has H2 or H3 card titles but no H1. Six of the 27 acquire.ai pages were category archives and two were tag archives.

The headline is a styled div

Designers and developers sometimes build a hero section with large text in a div or span for layout reasons. The page looks finished, and the missing semantic heading only shows up in the HTML.

A redesign or template swap removed it

H1 tags quietly disappear when a hero section is rebuilt or a new theme replaces the old one. The visual design passes review, while the semantic HTML changes underneath. This is why comparing audits before and after a release matters.

The H1 only exists after JavaScript runs

On client-rendered pages, the H1 may be injected into the DOM by JavaScript. A crawler reading raw HTML sees no H1, while a browser does. If a crawler reports a missing H1 that you can see on screen, check whether the heading is in the server response or only in the rendered DOM.

How do you find missing H1 tags?

For one page, open browser developer tools and run this in the console:

[...document.querySelectorAll('h1')].map(h => h.textContent.trim())

An empty array means a missing H1. An array with an empty string means an empty H1. More than one entry means multiple H1 tags, including ones hidden with CSS for mobile or desktop layouts, which still count in the markup.

For a whole site, a crawler is the only realistic option. Run the crawl, open the Headings filters, and look at Missing H1, Multiple H1, and Duplicate H1 together. Then do the step most people skip: sort or group the affected URLs by path. If the list clusters under /blogs/, /category/, or /tag/, you are looking at one or two templates, not dozens of individual pages. If you are still choosing a tool, our comparison of the best desktop SEO crawlers for Windows covers features and pricing.

How do you fix a missing H1 tag?

Short answer: Find the template that renders the affected pages and make it output one H1 containing the page's main topic, usually the post title or archive title. Fix the template once rather than editing pages one by one, keep styling in CSS, then re-crawl to confirm the count drops to zero.

WordPress with a theme builder

Open the single post template and select the Post Title widget. Set its HTML tag to H1. Then open the archive template and set the Archive Title widget to H1. If the archive template has no title widget, add one above the post grid. Adjust font size in the widget's style settings, not by changing the tag.

WordPress with a classic or custom theme

In single.php (or the template part it loads), output the title inside an H1:

<?php the_title( '<h1 class="entry-title">', '</h1>' ); ?>

In archive.php, do the same for the archive title:

<?php the_archive_title( '<h1 class="page-title">', '</h1>' ); ?>

Paginated archives like /category/blogs/page/2/ can keep the same H1 as page one. Adding "Page 2" to the heading is optional and mainly helps users orient themselves.

Headless and JavaScript frameworks

On a headless setup such as Next.js with a CMS, render the title server-side in the page component so it appears in the initial HTML:

<h1 className="post-title">{post.title}</h1>

Avoid setting the heading text only after a client-side fetch, which can leave the raw HTML without an H1.

Fix multiple H1 tags in the same pass

If your audit shows missing and multiple H1 issues side by side, as acquire.ai's does, fix both while the templates are open. Common extra H1 sources are a logo wrapped in an H1 on every page, a hero tagline marked up as H1, and separate mobile and desktop headlines that are both H1 with one hidden by CSS. Keep the one that states the page topic and demote the others to H2 or a styled p.

Missing H1 vs. empty H1 vs. multiple H1 vs. duplicate H1

These heading issues are related but need different fixes. The counts below come from the same acquire.ai audit.

IssueWhat the crawler seesacquire.aiFix
Missing H1No <h1> element in the HTML27Output one H1 from the template
Multiple H1Two or more <h1> elements212Keep the topic H1, demote the rest
Duplicate H1Same H1 text on several URLs42Make each H1 specific to its page
Empty H1<h1></h1> with no text0Populate it or remove the element
Visual headingLarge text in a div or spann/aChange the element to h1

What is the best workflow for fixing missing H1 tags?

Treat it as a template fix with verification, not a page-by-page content task.

The missing H1 fix workflow

  1. Crawl the siteRun a full audit and open the Headings filtersMissingMultipleDuplicate
  2. Group URLs by templateSort affected URLs by path: /blogs/, /category/, /tag/A handful of templates, not dozens of pages
  3. Inspect the HTMLCheck the server response and the rendered DOMFind which element holds the visual headline
  4. Fix the template onceTheme builder widget, single.php, archive.php, or page componentOne H1 with the page's main topic
  5. Clean up extra H1sLogo, hero tagline, hidden mobile headlineDemote to H2 or a styled paragraph
  6. Re-crawl and compareCompare the new audit with the previous oneMissing H1 count should drop in one run
If a template fix is right, the count falls to zero or close to it in a single re-crawl. Anything left over is usually a one-off landing page that needs a manual fix.
Step 2 is where the time savings come from. On acquire.ai, 27 flagged URLs reduce to four page types built on two templates.

What makes a good H1 tag?

Once the template outputs an H1, the text inside it still matters.

  • Describe the page, not the brand. "AI Readiness Gap Among Australian Finance Leaders" beats "Insights" or "Welcome".
  • Use the primary keyword where it reads naturally. Avoid stacking keywords. An H1 like "SEO Audit SEO Services SEO Checker" helps nobody.
  • Align with the title tag. Same topic and intent, with freedom to phrase the title tag for the results page and the H1 for the reader.
  • Keep one visible H1 for the page topic. HTML allows more, and Google can handle more, but one clear H1 is the simplest structure to maintain and audit.
  • Follow it with a logical hierarchy. H2 for main sections, H3 for subsections, without skipping levels for styling reasons.

Missing H1 tags at a glance

The whole issue on one screen: how it compares to multiple H1s, the four moves that fix it, and where it tends to hide.

Missing H1 tag

A page with no <h1> element, so crawlers and screen readers have no semantic main heading to identify the page topic.

Missing H1 vs. multiple H1

Missing H1
Multiple H1
Crawler sees
Zero H1 elements
Two or more H1 elements
Typical cause
Title widget set to H2 or div
Logo, hero, or hidden duplicate as H1
Audit severity
Warning
Opportunity
acquire.ai count
27 pages
212 pages

4 moves that fix it

  1. Group by templateSort affected URLs by path to find the shared template
  2. Output one H1Post title or archive title, rendered server-side
  3. Demote extrasTurn secondary H1s into H2s or styled paragraphs
  4. Re-crawl and compareConfirm the count drops in the next audit

Where missing H1 tags hide

Single post templatesCategory archivesTag archivesPaginated listingsCustom landing pagesJS-rendered heroes
Missing H1 at a glance: definition, comparison with multiple H1s, the fix sequence, and the templates where the issue usually starts.

Find missing H1 tags with SiteAuditLint

SiteAuditLint crawls your site and reports Missing H1, Multiple H1, and Duplicate H1 as separate filters, each with the affected URLs and the evidence behind them. Because every audit is stored, you can compare runs and see whether a template fix actually moved the numbers, rather than assuming it did.

A missing H1 is one of the cheapest technical SEO fixes you can make, but only if you fix it where it starts. Find the template, output one clear H1, clean up the extras, and re-crawl. On a site like acquire.ai, that is two template edits standing between 27 flagged pages and zero.

Frequently asked questions

What is a missing H1 tag?

A missing H1 tag means a page has no <h1> element in its HTML. The page may show a large headline, but if it is marked up as a div, span, or lower heading level, crawlers and screen readers do not recognize it as the main heading.

Does a missing H1 tag hurt SEO?

It is not a direct ranking penalty, and search engines can rank pages without an H1. It is still worth fixing because the H1 is a clear topic signal, an accessibility landmark for screen reader users, and a structural anchor for AI answer engines.

Why do many pages on my site have a missing H1?

When a crawler flags many pages, the cause is usually a shared template. Group the affected URLs by path. If they cluster under blog posts, category archives, or tag archives, the post title or archive title in that template is being rendered as something other than an H1.

How do I fix a missing H1 tag in WordPress?

In a theme builder, set the Post Title widget in the single post template and the Archive Title widget in the archive template to H1. In a classic theme, wrap the_title() in single.php and the_archive_title() in archive.php with H1 tags. Then re-crawl to confirm.

Is it bad to have multiple H1 tags?

Multiple H1 tags are valid HTML and not a direct ranking problem, but they often signal that H1 was used for styling. Review them, keep the one that states the page topic, and demote the others to H2 or styled paragraphs.

Should the H1 and title tag be the same?

They do not need to be identical. Both should describe the same topic and match the same search intent. The title tag can be phrased for search results while the H1 is phrased for readers already on the page.

Why does my crawler report a missing H1 I can see on the page?

Either the visible headline is not an h1 element, or the H1 is added by JavaScript after the page loads and is absent from the raw HTML. Check the element type in developer tools and compare the page source with the rendered DOM.