Skip to content

AEO rules

Answer-engine specific checks: AI crawler access, server rendering, entity markup and extractable answers.

FAQ or QA schema is present

aeo.faq-qa-schema · Severity: high · Weight: 8

FAQPage/QAPage markup feeds answer engines ready-made Q&A pairs.

Fix: Mark up your FAQ section with FAQPage JSON-LD.

Skill: aeo-faq-qa-schema teaches an agent how to fix this in your stack.

Content is in the HTML without running JavaScript

aeo.content-server-rendered · Severity: high · Weight: 9

Answer engines and most AI crawlers read the HTML they are served and do not execute JavaScript. Content that only appears after hydration is invisible to them.

Fix: Server-render or pre-render the page so its content is in the initial HTML response.

Skill: aeo-server-rendering teaches an agent how to fix this in your stack.

Content uses question-shaped headings

aeo.question-headings · Severity: high · Weight: 7

Headings phrased as questions match how users query AI assistants.

Fix: Add headings like “How does X work?” above their answers.

Skill: aeo-answer-first-content teaches an agent how to fix this in your stack.

Content is answerable (sufficient depth + lists)

aeo.answerable-content · Severity: medium · Weight: 6

Engines prefer pages with enough text and scannable lists to quote.

Fix: Aim for 300+ words and use lists for key facts.

Skill: aeo-answer-first-content teaches an agent how to fix this in your stack.

Article and author schema are present

aeo.article-author-schema · Severity: medium · Weight: 5

Article + Person markup attributes content for E-E-A-T and citation.

Fix: Add Article JSON-LD with an author of type Person.

Skill: aeo-article-author-schema teaches an agent how to fix this in your stack.

Organization schema is present

aeo.organization-schema · Severity: medium · Weight: 5

Organization markup builds entity identity that engines trust.

Fix: Add Organization JSON-LD with name, url, and logo.

Skill: aeo-organization-entity teaches an agent how to fix this in your stack.

Organization identity is consistent across pages

aeo.entity-identity-consistent · Severity: high · Weight: 6

Every page should describe the same entity. Conflicting @id or url values on Organization nodes split one company into several the engine cannot merge.

Fix: Give Organization one stable @id (e.g. https://example.com/#organization) and one url, and reuse them verbatim on every page and property.

Skill: aeo-organization-entity teaches an agent how to fix this in your stack.

AI crawlers are not blocked

aeo.ai-bots-allowed · Severity: critical · Weight: 9

Blocking GPTBot/ClaudeBot/PerplexityBot removes you from AI answers.

Fix: Allow key AI user-agents in robots.txt unless you must opt out.

Skill: aeo-ai-crawler-access teaches an agent how to fix this in your stack.

llms.txt is present for answer engines

aeo.llms-txt-present · Severity: medium · Weight: 5

llms.txt is the emerging standard manifest for LLM-friendly content.

Fix: Generate and publish an llms.txt at your site root.

Skill: aeo-llms-txt teaches an agent how to fix this in your stack.

Content has structured, extractable answers

aeo.speakable-structured-answers · Severity: low · Weight: 3

Speakable markup or HowTo/QA structure yields voice/AI-ready answers.

Fix: Add Speakable or HowTo schema to highlight answer passages.

Skill: aeo-answer-first-content teaches an agent how to fix this in your stack.

aeo.breadcrumbs · Severity: low · Weight: 3

BreadcrumbList markup clarifies site structure for engines.

Fix: Add BreadcrumbList JSON-LD reflecting your navigation path.

Skill: aeo-site-structure teaches an agent how to fix this in your stack.

Content is extractable (paragraphs + lists/tables)

aeo.content-extractability · Severity: medium · Weight: 5

Engines extract best from well-formed paragraphs, lists, and tables.

Fix: Structure content into clear paragraphs, lists, and tables.

Skill: aeo-answer-first-content teaches an agent how to fix this in your stack.

Content declares a modification date

aeo.content-freshness · Severity: medium · Weight: 5

A parseable dateModified gives engines a reason to cite the page over undated competitors.

Fix: Add dateModified (or datePublished) in ISO 8601 to your Article/WebPage JSON-LD.

Skill: aeo-content-freshness teaches an agent how to fix this in your stack.

AEO Toolkit is an open-source instrument by Advance Labs.