π Classic SEO and AEO in the same audit
There are two visibility games today. The SEO targets Google: ranking on the results page. The AEO (Answer Engine Optimization) targets answer enginesβChatGPT, Perplexity, Gemini, Claudeβso it can be cited in the AI response. Theyβre different audiences, signals, and checks. This skill covers both in one pass.
π΅ Traditional SEO
Show up and rank on Google.
- β’Title, meta description, H1/H2 hierarchy
- β’Core Web Vitals, HTTPS, sitemap
- β’Internal links, alt text, E-E-A-T
π¦ AEO (AI search)
Be cited in the AIβs response.
- β’AI crawlers allowed in robots.txt
- β’llms.txt and direct answer blocks
- β’Schema, entity authority, SSR
π§© Why this is a differentiator
Market SEO tools donβt check whether AI bots can access your site or generate llms.txt. Guides on βhow to show up in ChatGPTβ rarely measure Core Web Vitals or schema. Whoever delivers both in the same report, without switching tools, offers something the client can't find anywhere else.
π€ robots.txt and the invisible block
The most costly failure in AEO is silent: a rule in the robots.txt that blocks an AI crawler. If the GPTBot is prohibited, ChatGPT never indexes your siteβand no one notices because Google traffic stays the same. The skill checks exactly that and marks it as a high priority.
curl -s "https://DOMINIO/robots.txt" \ | grep -iE "GPTBot|ClaudeBot|PerplexityBot|GoogleOther|Bytespider|CCBot" # Se qualquer crawler critico aparecer em "Disallow: /" # => sinalizar como FIX DE PRIORIDADE ALTA
β robots.txt that lets AI in
User-agent: GPTBot User-agent: ClaudeBot User-agent: PerplexityBot User-agent: GoogleOther Allow: /
β The rule that makes AI erase you
User-agent: GPTBot Disallow: / # GPTBot nunca le seu site. # Voce some das respostas do ChatGPT.
β οΈ Attention
Many CMS templates and βprivacyβ plugins add anti-AI rules by default, thinking they protect the content. The site owner almost never knows. Always start the audit with robots.txt β itβs the highest-impact finding and the easiest to fix.
π llms.txt: the map for AI
O llms.txt is a machine-readable file at the root of the site that tells AI where to find your authoritative contentβdocs, guides, glossary, research. Itβs the highest-impact AEO action most websites still havenβt taken. The skill generates the llms.txt e o llms-full.txt ready for deployment.
# {nome_da_marca}
> {descricao_da_marca em uma frase}
## Core Documentation
- [Como funciona](/docs): visao geral do produto
## How-To Guides
- [Primeiros passos](/guias/inicio): tutorial passo a passo
## Definitions & Glossary
- [Glossario](/glossario): termos-chave do setor
## About & Authority
- [Sobre](/sobre): credenciais, equipe, time
- [Imprensa](/imprensa): mencoes e reconhecimento
## Contact
- [Contato](/contato): fale com a equipe
π llms.txt vs llms-full.txt
- llms.txt β the index: links with a one-line description for AI to navigate.
- llms-full.txt β the content: the full text of the key pages, so AI can cite it without having to search.
π·οΈ Schema markup and response blocks
For the AI extract and cite your content confidently, it needs structure. Two techniques dominate: the schema markup (JSON-LD that describes the page to machines) and the answer block method (question in the H2, direct answer right below).
{
"@context": "https://schema.org",
"@type": "FAQPage",
"mainEntity": [{
"@type": "Question",
"name": "O que e AEO?",
"acceptedAnswer": {
"@type": "Answer",
"text": "AEO (Answer Engine Optimization) e otimizar
conteudo para ser citado por IAs como ChatGPT
e Perplexity, alem do ranqueamento no Google."
}
}]
}
π The response block method
[direct answer in 1β2 sentences, right after the title]
[3β5 sentences of supporting context]
Β Β β’ a statistic with a date and source
Β Β β’ a named entity or case
Β Β β’ a point of comparison or contrast
| Schema | Where to use | What it's for |
|---|---|---|
| Organization | Homepage | Entity recognition |
| FAQPage | Content pages | AI citation |
| Article | Blog and guides | E-E-A-T signal |
| HowTo | Tutorials | Extractable steps |
| DefinedTerm | Glossary | Topical authority |
π¬ The Live Audit Flow
When you type audit https://site.com, the skill runs a fixed sequence: finds the core files, checks bot access, detects the schema, and generates the prioritized report. Understanding the workflow is what lets you trust the result β and extend it.
Search core files
robots.txt, sitemap.xml, the page HTML (title, meta, H1), and the status of the llms.txt. All via curl/web_fetch.
Audit AI bot access
Look for GPTBot, ClaudeBot, PerplexityBot in robots.txt. Any critical block becomes a high priority.
Audit schema
Extract the blocks application/ld+json of the page and identify which types exist (or whether there are none).
Generate the report
Write seo-audit-DOMINIO.md with an executive summary, SEO and AI findings, schema and llms.txt status, and a plan divided into quick wins / medium term / long term.
β‘ Practical tip: competitors running in parallel
For a competitive analysis, trigger parallel subagents β one per competitor. Each audits a domain (HTML, schema, llms.txt, robots), and the main agent combines everything into a comparison table. Same skill, multiplied scope.
π οΈ Packaging your auditor
The actual skill is a clear example of progressive disclosure: the SKILL.md stays lean, with a decision tree and a concise playbook, and delegates the details to the references/. The scripts do the heavy lifting.
seo-aeo-optimization/
βββ SKILL.md # playbook + arvore de decisao (enxuto)
βββ scripts/
β βββ audit.sh # auditor de site ao vivo
β βββ generate_llms_txt.py # gerador interativo de llms.txt
βββ references/
βββ traditional-seo.md # checklists tecnicos, Core Web Vitals
βββ ai-seo-aeo.md # playbook AEO, taticas por plataforma
βββ schema-markup.md # biblioteca JSON-LD copia-e-cola
π³ The decision tree inside SKILL.md
ββ "audit my site" β live audit flow
ββ "create schema markup" β read schema-markup.md β JSON-LD
ββ "write llms.txt" β read ai-seo-aeo.md β generate file
ββ "analyze competitors" β parallel subagents
ββ general question β answer using the skill's knowledge
π Why SKILL.md stays lean
The body of SKILL.md only needs enough to make a decision which path to follow and trigger the right script. The deep knowledge β 15 schema types, all platform-specific tactics β lives in the references/, loaded on demand. This keeps the context light and the skill fast.
π Module Summary
π― Hands-on exercises
- Run the workflow manually on a real site: check robots.txt for GPTBot/ClaudeBot and see whether there is
llms.txt. - Write the
llms.txtof a fictional site following the skeleton from topic 3. - Create a
FAQPageJSON-LD for a pricing page and validate the syntax. - Create a runnable SKILL.md called
seo-aeo-auditwith a decision tree and ascripts/audit.shthat accepts a URL, checks robots.txt + schema, and writesseo-audit-DOMINIO.md. Test it on a real domain.
Next Module:
5.3 β RAG Architect