What is AEO?
AEO stands for AI Engine Optimization — the practice of making your website visible and citable by AI engines like ChatGPT, Perplexity, Claude, and Google’s AI Overviews.
Why AEO matters
Section titled “Why AEO matters”AI engines are becoming a primary way people discover information online. When someone asks ChatGPT “what’s the best project management tool?” or Perplexity “how do I set up a Next.js app?”, AI engines decide which sources to cite.
Sites that are structured for AI visibility get cited. Sites that aren’t get ignored.
How AEO differs from SEO
Section titled “How AEO differs from SEO”SEO optimizes for search engine crawlers and ranking algorithms. AEO optimizes for language models and AI retrieval systems.
| SEO | AEO | |
|---|---|---|
| Target | Google, Bing crawlers | ChatGPT, Perplexity, Claude |
| Goal | Rank in search results | Get cited in AI responses |
| Signals | Backlinks, keywords, page speed | Structure, schema, llms.txt, FAQ markup |
| Output | Meta tags, sitemaps | llms.txt, schema.json, robots directives |
AEO complements SEO — you should do both.
What AEOrank does
Section titled “What AEOrank does”AEOrank measures your site’s AI visibility across 36 criteria across 5 pillars and generates 8 files:
- Scans your site (up to 200 pages)
- Scores your AI visibility from 0-100
- Generates the files listed below — the same set
npx aeorank-cli@latest(npm 0.1.1) writes
The CLI is free, open source, and MIT-licensed. No account required.
The evidenced lever is crawler allowlists + CI regression prevention. llms.txt is agent-docs hygiene, not a citation guarantee.
The 8 generated files
Section titled “The 8 generated files”These match generateFiles() in @aeorank/core and the published CLI. The CLI does not write ai.txt, answers.json, citations.json, humans.txt, feed.xml, or report.html.
- llms.txt — a structured overview of your site for language models
- llms-full.txt — full-text content for comprehensive indexing
- CLAUDE.md — repository context for AI coding assistants
- schema.json — Organization, WebSite, and FAQ structured data
- robots-patch.txt — directives for GPTBot, ClaudeBot, PerplexityBot, Google-Extended
- faq-blocks.html — speakable FAQ schema markup
- citation-anchors.html — heading anchors for deep links
- sitemap-ai.xml — AI-oriented sitemap
Use --fail-on-crawler-block to fail the PR if GPTBot is blocked. The GitHub App uses that same crawler gate. fail-below (score threshold) is Action-only; it is not available on the App yet.