Skip to content
atlookup

empty Heading Tag

An <h1>-<h6> with no text is invisible to screen readers and Google.

warning Impact: medium WCAG 2.4.6 (Level AA) HEADING_EMPTY 2 min read Updated

Why it matters

An <h1>-<h6> with no text is invisible to screen readers and Google. Often caused by CSS-styled icons or accidental empty tags.

Schedule a fix in your next sprint. Warnings won't block your site but they consistently leave performance on the table. Estimated SEO impact: medium — measurable effect on click-through or relevance.

How to fix

  • Add visible text inside each heading, or remove the heading
  • For icon-only headings, use aria-label with a meaningful value
  • Check CSS — `display: none` text should not be inside a heading

Common causes

If the rule is firing across many pages, the root cause is almost always one of these:

  • Editorial team copy-pastes from another page and brings its heading levels with it.
  • Theme uses headings for visual styling rather than document structure.
  • WYSIWYG editor inserts new headings at whichever level the cursor was last on.
  • Multi-author pages stitch sections together without a single owner of the outline.

Anti-patterns to avoid

Even with the best intentions, these "fixes" make the issue worse — recognise them so you don't ship them:

  • Skipping levels (<h1> directly to <h4>) for visual styling.
  • Multiple <h1>s on one page because each section "felt like a top heading".
  • Using headings as decorative dividers without semantic content.

How atlookup detects this

Our crawler renders each page with a real headless browser, then walks the heading tree and checks for missing levels, duplicates, and skipped depths. Pages where the rule fires for empty heading tag are flagged on the report.

If you'd like to see this rule fire on your own site, run a free 60-second audit — every page is reported with the exact lines that triggered it.

Tools to verify the fix

Once you've applied the fix, double-check with these external validators:

  • axe DevTools — Flags heading-order violations (a11y + SEO).
  • HeadingsMap — Browser extension that visualises the heading tree.

Frequently asked questions

Why does Empty Heading Tag matter for SEO?

An <h1>-<h6> with no text is invisible to screen readers and Google. Often caused by CSS-styled icons or accidental empty tags.

How do I fix empty heading tag?

Add visible text inside each heading, or remove the heading For icon-only headings, use aria-label with a meaningful value Check CSS — `display: none` text should not be inside a heading

Is this a critical SEO issue?

Schedule a fix in your next sprint. Warnings won't block your site but they consistently leave performance on the table. Estimated SEO impact: medium — measurable effect on click-through or relevance.

How does atlookup detect empty heading tag?

Our crawler renders each page with a real headless browser, then walks the heading tree and checks for missing levels, duplicates, and skipped depths. Pages where the rule fires for empty heading tag are flagged on the report.

Does this affect accessibility?

Yes. This issue maps to WCAG 2.4.6 (Level AA). Fixing it improves both SEO ranking signals and the experience for users on assistive technology.