empty Heading Tag
An <h1>-<h6> with no text is invisible to screen readers and Google.
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.
Related issues
H1_MISSING
Missing H1 Tag
The H1 is the main on-page heading — a crucial signal for Google and screen-reader users.
H1_MULTIPLE
Multiple H1 Tags on Page
While HTML5 allows multiple H1s, in practice one clear primary heading helps Google and screen readers understand the page topic.
HEADING_HIERARCHY_BROKEN
Broken Heading Hierarchy
Heading levels should descend logically (H1 → H2 → H3), not skip levels.
H1_TOO_LONG
H1 Tag Is Too Long
Very long H1s (over 80 characters) get truncated in SERPs, weaken keyword focus, and make the page feel unfocused to readers.