aeo
How to fix: Single H1; no skipped heading levels (H1->H2->H3)
Why this matters
AI engines use heading structure to understand content hierarchy and pick the right section for extraction. A page with three H1s or an H1->H3 skip confuses the model — which usually defaults to extracting from a competitor's cleanly structured page instead.
Background
AI engines use heading structure to understand content hierarchy and pick the right section for extraction. A page with three H1s or an H1->H3 skip confuses the model — which usually defaults to extracting from a competitor's cleanly structured page instead. Also a WCAG accessibility issue.
References
WHATWG HTML Living Standard · Section 4.3 Sections · A11y WCAG 2.4.6
How to fix
Code snippet for each stack we cover. Pick the one matching your server / framework.
nginx
No server config.
apache
Same.
cloudflare
Same.
wordpress
Audit each post. Exactly one H1 (usually the post title). H2 for main sections, H3 nested under H2. Never skip H1->H3.
flask
Template audit — use the page heading as <h1> exactly once.
express
Same.
rails
Same.
Verify it's working
Browser devtools: count H1s on the page (should be 1). Walk H2/H3/H4 — no skipped levels.
Want to know if your site has this issue?
Run a free 53-check audit — security, GDPR, NIS2, and technical SEO.
Audit my site →