aeo
How to fix: Title / description / canonical / OG / lang / viewport
Why this matters
AI answer engines (ChatGPT browse, Perplexity, Google AI Overviews) and link-preview crawlers all read the same meta surface: <title>, <meta name="description">, Open Graph tags, html.lang, viewport. A well-formed meta block is the difference between being cited cleanly and being summarised wrong (or skipped).
Background
AI answer engines (ChatGPT browse, Perplexity, Google AI Overviews) and link-preview crawlers all read the same meta surface: <title>, <meta name="description">, Open Graph tags, html.lang, viewport. A well-formed meta block is the difference between being cited cleanly and being summarised wrong (or skipped).
References
ogp.me · WHATWG HTML metadata · AEO meta-surface analysis
How to fix
Code snippet for each stack we cover. Pick the one matching your server / framework.
nginx
No server config — template change.
apache
Same.
cloudflare
Same.
wordpress
Yoast / RankMath cover title + meta description + OG tags. Audit <html lang> in theme + viewport meta.
flask
Base template head block should emit: <title>, <meta name="description">, OG tags, <html lang="en">, viewport meta.
express
Same.
rails
Same.
Verify it's working
View page source. Should see <title>, <meta name=description>, <meta property=og:title>, <html lang=en>, and a viewport meta tag.
Want to know if your site has this issue?
Run a free 53-check audit — security, GDPR, NIS2, and technical SEO.
Audit my site →