Run a complete AEO health audit on a deployed site — discovery files, crawler access, citation-shaped content, schema, freshness signals. Triggers — 'AEO audit'
Quick Install
npx skills add aeo-audit
Skill: AEO Health Audit
Three-tier audit of how well a site is set up for AI answer engines (ChatGPT, Claude, Perplexity, Gemini, Bing Copilot). Run weekly for Tier 1, monthly for Tier 2, quarterly for Tier 3.
Inputs
DOMAIN — e.g. acme.com
CANONICAL_URL — e.g. https://www.acme.com
SAMPLE_PAGES (optional) — list of 5-10 high-value page URLs to deep-audit. Default: pull from sitemap, take top 10 by sitemap priority.
Tier 1 — Discovery surface (must pass weekly)
For each check, use WebFetch to retrieve the URL, then verify the body content matches the assertion.
#
Check
How to verify
Pass criteria
1
/robots.txt reachable + permissive
WebFetch {URL}/robots.txt
Body contains GPTBot, ClaudeBot, PerplexityBot, Google-Extended, OAI-SearchBot. None blocked.
2
/llms.txt reachable
WebFetch {URL}/llms.txt
200, ≥ 500 chars, contains brand name in first 100 chars, has Last Updated line within 90 days
3
/llms-full.txt reachable (if used)
WebFetch {URL}/llms-full.txt
200, ≥ 10 KB OR clear "site too small for full dump" comment
For each SAMPLE_PAGES, when was the page last meaningfully edited (not just dateModified rubber-stamp)?
Flag any page > 6 months without substantive change for refresh.
Bonus: pages with high impressions + flat clicks = stale title/lede; queue for seo-optimize.
Off-page presence
Wikipedia article exists? Linked correctly?
Reddit: count brand mentions in last 90 days across top 5 relevant subreddits (read-only).
YouTube: count text-trailed videos (must have transcript + description) referencing the brand.
LinkedIn: org page complete + recent posts.
These off-page signals correlate with AI citation rate 3× more than backlinks (Ahrefs 2025 study).
Brand entity recognition
Ask each AI engine "What is {BRAND}?" — do all 4 know it correctly without correction?
If any engine confuses the brand or returns "I don't have information about {BRAND}", brand entity work needed: Wikipedia stub, Crunchbase, Wikidata, About page Schema.org Organization markup with sameAs to social profiles.
[ ] Maturity level is grounded in the actual signals observed, not aspirational
Common gotchas
Cloudflare / WAF blocking AI bots — robots.txt allows them, but the WAF/bot-fight rule blocks the IPs. Check Cloudflare settings; add Verified Bots allowlist for AI crawlers.
noindex from staging environment — staging meta tag accidentally shipped to prod. Always grep prod HTML for noindex before signing off.
AI plugin manifest with stale models/pricing — JSON gets crawled and quoted verbatim by AI. Date-stamp it; refresh quarterly.
Schema validation passing but not eligible — Google's Rich Results Test says "valid" but page doesn't appear with rich snippets. Schema must align with page intent (don't add FAQPage schema to a page where the FAQ isn't the primary content).
AI bot traffic count = 0 — most likely cause: server logs aren't capturing bot user-agents (CDN strips them), not that bots aren't crawling. Check log pipeline before concluding "AI doesn't crawl us."