TECHNICAL SEO

Heading Tags and H1s: What Actually Needs to Be Unique

Ben Foord, author
Ben Foord
· 4 min read

Heading tags (<h1> through <h6>) tell a browser, a screen reader, and Google's crawler how a page is structured, in the same way chapter titles and subheadings tell a reader how a book is organised. Get the outline right and both humans and machines can skim the page and understand it in seconds. Get it wrong and a page can look fine to a visitor while quietly confusing everything trying to parse its structure underneath.

What Each Heading Level Is For

  • <h1> - the page's single main heading. One per page, stating plainly what the page is about.
  • <h2> - major sections under that heading.
  • <h3>-<h6> - subsections nested under the <h2> above them, used as deep as the content genuinely needs and no deeper.

The number after the "h" is a hierarchy, not a font-size picker. A common mistake is choosing a heading level because it looks the right size, then wrapping it in CSS to make an <h4> look bold and large instead of using an <h2> and letting the stylesheet handle the size. That inverts the actual purpose: headings exist to describe structure, and CSS exists to make that structure look the way you want.

The One Rule That Matters Most: Exactly One H1

A page should have one, and only one, non-empty <h1>. Not zero, and not several competing for the same job.

  • Zero H1s leaves the page without a clear main heading. Skim-readers and search engines both lose the one line that states what the page is about.
  • Several H1s creates the opposite problem: it's unclear which one is the actual main heading, so both a visitor scanning the page and a crawler indexing it have to guess.

This isn't a stylistic preference, it's one of the checks in AuditCrow's free scan: a page with no H1 fails the check outright, a page with several is flagged as needing attention, and a page with exactly one non-empty H1 passes clean. The fix in both broken cases is the same one-line instruction: make the page's most important line a Heading 1, and demote any other H1s on the page to H2.

The Mistake That Breaks This Without Anyone Noticing

The most common way a site ends up with the wrong H1 count isn't a content mistake, it's a theme mistake. Plenty of WordPress and site-builder themes wrap the site logo or the header navigation title in an <h1> tag by default, on every single page, because whoever built the theme wanted the logo to carry the most semantic weight in the markup.

That means the actual page heading, "10 Best Coffee Machines for Small Offices" or whatever the page is genuinely about, often ends up as an <h2> or a plain styled <div>, while the site name in the header quietly holds the H1 slot on every page across the entire site. Nobody notices because the visible page still looks correct; the mismatch only shows up when you check the page's actual HTML.

How to check: view the page's source (or use your browser's inspector) and search for <h1. If it wraps your logo or site name rather than the page's own heading, that's a theme-level fix, not a one-off page fix, and it's worth checking a handful of different page templates (homepage, a blog post, a product or service page) since some themes get this right on one template and wrong on another.

Heading Tags vs. the Title Tag: Different Jobs

It's easy to confuse the H1 with the title tag, since both are often the first thing you write for a page, but they do different jobs:

  • The title tag is invisible on the page itself. It's what shows as the blue link in search results and the browser tab.
  • The H1 is visible content on the page, the heading a visitor actually reads once they land.

They can be worded identically, and often are for straightforward pages. They can also differ: a title tag optimised for search ("Best Coffee Machines for Small Offices UK 2026 | AuditCrow") can be more keyword-dense than the on-page H1 a visitor actually wants to read ("Best Coffee Machines for Small Offices"). Neither approach is wrong; what's wrong is leaving one of them blank because you assumed the other one covers it.

Don't Skip Levels for Convenience

A properly nested outline goes H1, then H2s under it, then H3s under the relevant H2, without jumping from an H2 straight to an H4 because that's the font size you wanted. Screen reader users in particular navigate long pages by jumping between headings, and a broken hierarchy (an H4 appearing with no H3 parent above it) makes that navigation confusing in exactly the way a book missing a chapter number would be. This overlaps with the wider case for clean structure covered in our website accessibility guide.

A Quick Heading Audit

  • Exactly one non-empty <h1> per page, stating what the page is about
  • Check your theme isn't quietly wrapping the logo or site name in an H1 on every page
  • Headings nested in order (H1 → H2 → H3), not skipped for a font size
  • H1 and title tag both written, not left blank because "the other one covers it"

The Fast Way to Check Yours

Checking heading structure by eye works for one page. Checking it across an entire site, especially the theme-wraps-the-logo mistake that repeats identically on every template, is exactly the kind of thing worth automating. AuditCrow's free scan checks H1 structure as part of its on-page review, alongside the rest of the fundamentals in our technical SEO checklist.

Get notified when scans reopen
Join the waitlist and we'll tell you when they're back.
Join Waitlist
Filed under: Technical Seo · On Page
Like reading AuditCrow?
Add us as a preferred source so more of our posts show up in your Google results.
Join the waitlist

Be first when scans reopen

Scans are paused for a moment. Join the waitlist and we'll tell you when they're back.

We'll email you when free scans are back