El posicionamiento cambió de intermediario. Ya no es una lista de enlaces azules: es un modelo de lenguaje que lee, resume y decide a quién citar. Optimizar para ese modelo tiene su propia disciplina, y aquí está completa.
Esta guía se construyó a partir del programa real de optimización que Transgenia ejecutó sobre transgenia.org entre marzo y julio de 2026. Cada ejemplo es una medida que aplicamos y verificamos en producción, no teoría.
0. Qué es AEO (y por qué ya no basta el SEO)
SEO (Search Engine Optimization) optimiza para que un humano haga clic en un enlace azul dentro de una lista de resultados. AEO (Answer Engine Optimization) y su primo GEO (Generative Engine Optimization) optimizan para que un motor de respuestas (ChatGPT, Claude, Perplexity, Google AI Overviews, Bing Copilot) entienda, confíe y cite tu contenido cuando genera una respuesta.
El cambio de fondo es este: el intermediario ya no es una SERP, es un modelo de lenguaje. Ese modelo no "hace clic". Lee, resume, decide qué es una fuente confiable y a quién atribuir. Optimizar para AEO es hacer tu sitio legible por máquinas, estructurado como conocimiento y demostrablemente confiable.
La tesis de esta guía, y la apuesta de Transgenia como boutique de IA, es simple. La forma más potente de AEO no es describir lo que haces. Es hacer que tu propio sitio corra IA gobernada que los motores puedan observar y citar. El zapatero con buenos zapatos.
Meta-estructura Mermaid
flowchart TB
subgraph N4["Nivel 4 · Demostración de IA viva (diferenciador)"]
D["Conserje RAG con citas · gobernado · LFPDPPP"]
end
subgraph N3["Nivel 3 · Entidad citeable"]
C["llms.txt · JSON-LD Organization/knowsAbout · FAQPage · consistencia es/en/zh"]
end
subgraph N2["Nivel 2 · Contenido estructurado"]
B["Q&A / FAQ · fuente única faq.json · blog cornerstone · feeds"]
end
subgraph N1["Nivel 1 · Fundamentos técnicos"]
A["Crawlability para bots de IA · rendimiento (LCP) · datos estructurados válidos"]
end
N1 --> N2 --> N3 --> N4
style N4 fill:#E14228,color:#fff
style N3 fill:#FB6C25,color:#fff
style N2 fill:#FBA225,color:#101820
style N1 fill:#22A088,color:#fff
1. Nivel 1: fundamentos técnicos
Un motor de IA no puede citar lo que no puede rastrear, o lo que tarda tanto en cargar que su crawler abandona.
1.1 Crawlability para bots de IA (el paso que casi todos omiten)
robots.txt debe permitir explícitamente a los crawlers de IA, no solo a Googlebot. En Transgenia habilitamos, por nombre: GPTBot, OAI-SearchBot, ClaudeBot, Claude-User, Claude-SearchBot, PerplexityBot, Google-Extended, Applebot-Extended, bingbot, además de los buscadores chinos (Baiduspider, Sogou, 360Spider, YisouSpider, Bytespider) para el mercado ZH.
Gotcha caro: en Cloudflare, el bloque "Managed Content Signals" del borde puede anular tus
Allowderobots.txty bloquear los bots de IA aunque tu archivo diga lo contrario. Si tu objetivo es ser citado, hay que desactivarlo en el dashboard. El archivo por sí solo no basta.
Dos reglas quirúrgicas que aplicamos: Disallow: /cdn-cgi/ (endpoint interno de Cloudflare que devolvía 4xx y ensuciaba Bing WMT) y Disallow: /assets/docs/ (avisos de privacidad .docx, que no deben gastar crawl budget). Todo lo demás, rastreable.
1.2 Rendimiento: si tarda, no te citan
Medimos el baseline real con PageSpeed Insights, no reportes ajenos: móvil Perf 56, LCP 20.8 s. La causa raíz era una sola. La fuente variable Material Symbols Rounded pesaba 5.2 MB (44 % del payload) y cargaba en ruta crítica en 36 páginas, cuando el sitio entero usa solo 3 iconos.
Fix: subset por &icon_names=auto_awesome,cloud_sync,inventory_2&display=block en las 3 páginas que los usan, y eliminar el <link> en las 33 que no. Resultado: 5.2 MB a 3.7 KB (99.9 %), verificado en navegador real (glifo de 18 px, no el texto fallback).
Lección AEO: la performance no es cosmética. Un LCP de 20 s bajo red lenta es un crawler que se rinde antes de leer tu contenido.
1.3 Datos estructurados válidos
JSON-LD Organization, WebSite, WebPage, Service, BreadcrumbList y, clave para AEO, FAQPage. Regla dura: el structured data debe coincidir con contenido visible en la página, o Google lo ignora (y puede penalizar). Por eso el FAQPage se generó junto a una sección FAQ visible, desde una fuente única (§2.3).
2. Nivel 2: contenido estructurado como conocimiento
2.1 llms.txt: el pitch directo a las máquinas
llms.txt es un archivo en la raíz pensado para que los LLM entiendan tu entidad de un vistazo. El de Transgenia te describía como "consultora de Industria 4.0, Odoo su práctica core", lo cual saboteaba el reposicionamiento y le decía a los motores algo distinto de lo que la empresa es hoy. Se reescribió liderando con "boutique tecnológica especializada en IA aplicada", reordenando los servicios (IA primero) y añadiendo una nota explícita para agentes de IA sobre el posicionamiento y dónde vive cada dato.
2.2 FAQPage donde de verdad importa
La página de IA (soluciones-ia.html) no tenía FAQPage, siendo la página donde más ayuda que un motor cite respuestas. Se añadió FAQ visible más FAQPage JSON-LD en es/en/zh, con Q&A aterrizadas en el contenido real (workflows Claude en producción, medición con observabilidad, piloto en 6 semanas, IA responsable más LFPDPPP, integración Odoo/WhatsApp). Cero fabricación.
2.3 Fuente única: faq.json
En vez de duplicar preguntas en HTML, JSON-LD e i18n (que se desincronizan), se creó assets/data/faq.json como fuente única que alimenta tanto el FAQPage como el índice RAG del conserje. Hoy son 5 secciones (IA, nosotros, clínicas, comercializadoras) con 54 puntos de conocimiento, todos verificados por grep contra las páginas reales.
Meta-estructura Mermaid
flowchart LR
subgraph SEO["SEO clásico"]
K["Keywords"] --> L["Backlinks"] --> S["Posición en SERP"] --> Click["Clic humano"]
end
subgraph AEO["AEO / GEO"]
E["Entidades y hechos"] --> Q["Contenido Q&A estructurado"] --> T["Confianza / evidencia"] --> Cita["Cita en la respuesta de IA"]
end
SEO -. evoluciona .-> AEO
style SEO fill:#eef,stroke:#88a
style AEO fill:#E14228,color:#fff
3. Nivel 3: ser una entidad coherente y citeable
3.1 Consistencia de mensaje (humanos y máquinas leen lo mismo)
Se unificó la propuesta a "Tecnología más allá de la producción · Boutique tecnológica" en 45 superficies (hero, metas, og/twitter, nosotros/about, knowsAbout del JSON-LD) en es/en/zh. knowsAbout pasó a liderar con Inteligencia Artificial, IA generativa, RAG, Agentes de IA gobernados. Un motor que cruza tu home, tu about, tu llms.txt y tu schema debe leer la misma identidad en todos.
Gotcha trilingüe: en este sitio EN/ZH tienen el copy embebido en la página, mientras ES se sobre-escribe por i18n en runtime, así que hay que editar ambos lados o el cambio se revierte.
3.2 Higiene de indexación (GSC + Bing WMT)
Se curaron los hallazgos de Google Search Console y Bing Webmaster Tools: títulos de más de 70 caracteres acortados; títulos demasiado cortos extendidos a 50–60; H1 faltante añadido; el 4xx de /cdn-cgi/l/email-protection resuelto con Disallow. Distinguir señal de ruido importa. "Página con redirección" (canonicalización http a https, www a apex) no requiere acción; "descubierta sin indexar" se resuelve solicitando indexación, no tocando código.
Meta-estructura Mermaid
sequenceDiagram
participant B as Bot de IA (GPTBot/ClaudeBot)
participant R as robots.txt / Cloudflare edge
participant P as Página (HTML + JSON-LD + FAQPage)
participant L as llms.txt
participant M as Motor de respuestas
B->>R: ¿Puedo rastrear?
R-->>B: Allow (bots IA habilitados, Managed Content OFF)
B->>L: Lee entidad (quién es Transgenia)
B->>P: Lee contenido + datos estructurados
P-->>B: FAQPage Q&A + Service + Organization
B->>M: Indexa entidad + hechos + fuentes
Note over M: Usuario pregunta "¿quién hace Odoo+IA en LATAM?"
M-->>M: Recupera hechos citeables
M->>P: Cita transgenia.org como fuente
4. Nivel 4: que tu sitio demuestre IA (el diferenciador)
Aquí está la jugada que separa a una boutique de IA de todos los que solo lo dicen: un conserje de IA en el propio sitio, con RAG sobre tu contenido, que responde citando fuentes, gobernado y respetuoso de la privacidad. Es tres cosas a la vez: una demo viva de tu capacidad, contenido conversacional que refuerza tu entidad y una máquina de captura de leads.
4.1 Arquitectura (la PII se queda en México, LFPDPPP)
Meta-estructura Mermaid
flowchart TB
U["Visitante (navegador)"]
subgraph EDGE["Cloudflare (edge)"]
W["Worker /api/concierge/*"]
KV["(KV: límites, cuotas, bloqueos)"]
end
subgraph VPS["VPS México (LFPDPPP)"]
PB["PocketBase · registro + leads (PII)"]
NGINX["nginx /pb/*"]
end
subgraph CLOUD["Servicios"]
QD["(Qdrant Cloud · vectores)"]
OAI["OpenAI · embeddings + gpt-4.1-mini"]
end
U -- "registro (Turnstile)" --> NGINX --> PB
PB -- "JWT de sesión (sid opaco)" --> U
U -- "chat {sid, mensaje}" --> W
W <--> KV
W -- "embed + recupera" --> QD
W -- "genera con citas" --> OAI
W -- "log opaco (sin PII)" --> NGINX
style VPS fill:#22A088,color:#fff
style EDGE fill:#FB6C25,color:#fff
Decisión clave de privacidad: la PII (nombre, apellido, correo, teléfono) solo vive en PocketBase, en el VPS en México. El registro emite un JWT con un id opaco (sid); el Worker y OpenAI (EE. UU.) solo ven {sid, texto de la consulta}. Cero datos de contacto cruzan la frontera. Esto no es solo cumplimiento LFPDPPP. Es una señal de confianza que E-E-A-T y los motores premian.
4.2 El pipeline RAG (por qué las respuestas son citables y no inventadas)
Meta-estructura Mermaid
flowchart LR
subgraph INGEST["Ingesta (build)"]
SRC["blog-src/*.md + faq.json"] --> CH["Chunking ~1200c"] --> EM1["Embeddings text-embedding-3-small"] --> UP["Upsert → Qdrant (397 pts)"]
end
subgraph RUNTIME["Runtime (por consulta)"]
Q["Consulta del usuario"] --> EM2["Embed consulta"] --> SR["Búsqueda top-k en Qdrant"]
SR --> TH{"¿score ≥ 0.35?"}
TH -- no --> NF["'No lo tengo documentado' + CTA (no llama al LLM)"]
TH -- sí --> GEN["gpt-4.1-mini con contexto"] --> CIT["Respuesta en streaming + citas"]
end
UP -. índice .-> SR
style NF fill:#FBA225,color:#101820
style CIT fill:#22A088,color:#fff
El principio que protege tu reputación es zero-fabrication. Si la recuperación no supera el umbral, el conserje no llama al modelo. Responde "no lo tengo documentado, agenda una llamada". Cita la página fuente en cada respuesta. Esa es exactamente la disciplina que los motores de IA valoran.
4.3 Gobernanza: límites, anti-abuso y presupuesto
Meta-estructura Mermaid
flowchart TB
REQ["Petición de chat"] --> IPB{"¿IP bloqueada?"}
IPB -- sí --> BLOCK["403 + pantalla notificar admin"]
IPB -- no --> JWT{"¿JWT de sesión válido?"}
JWT -- no --> R401["401"]
JWT -- sí --> INJ{"¿prompt-injection?"}
INJ -- sí --> RJ["422 + strike (3 → bloqueo IP)"]
INJ -- no --> RLM{"≤ 3/min y ≤ 15/semana?"}
RLM -- no --> R429["429 + CTA llamada"]
RLM -- sí --> BUD{"¿presupuesto diario OK?"}
BUD -- no --> R503["503 (kill-switch)"]
BUD -- sí --> RAG["RAG + generación"]
style BLOCK fill:#E14228,color:#fff
style RAG fill:#22A088,color:#fff
La humanidad se garantiza con Turnstile en el registro; los criterios anti-abuso (registro-farming por teléfono/IP, correos desechables con chequeo MX, ráfagas, prompt-injection) viven donde corresponde cada uno.
4.4 Matriz de decisión: valor primero, orientado a venta
Meta-estructura Mermaid
flowchart TB
IN["Mensaje del usuario"] --> CLASS["Clasifica: línea de servicio + vertical + etapa de compra"]
CLASS --> VALUE["Da valor real, aterrizado y CITADO"]
VALUE --> QUAL["Califica (BANT-lite: necesidad, urgencia, datos, fit)"]
QUAL --> HIGH{"¿alta intención?"}
HIGH -- sí --> HUMAN["Escala a humano (Calendly / cotización)"]
HIGH -- no --> CTA["Conduce al CTA correcto (página / estimador / demo)"]
style VALUE fill:#22A088,color:#fff
style HUMAN fill:#E14228,color:#fff
4.5 Búsqueda web controlada (fallback)
Cuando el RAG propio no basta y el tema es on-topic, el conserje puede usar búsqueda web (la herramienta web_search del Responses API, misma API key, cero secretos nuevos) con gate determinista, caps (3/semana/sid, 15/día), anti-inyección (el contenido web es dato, nunca instrucción) y una regla dura: nunca responde sobre Transgenia con la web. Eso solo viene del contenido propio. Por defecto OFF, se activa por variable.
5. Nivel transversal: confianza y E-E-A-T para máquinas
AEO premia lo mismo que E-E-A-T pero legible por máquinas: evidencia, gobierno y honestidad. Lo que Transgenia hace observable:
- Zero-fabrication en el conserje (cita o admite ignorancia).
- Privacidad demostrable (PII en México, transferencia mínima declarada).
- Contenido con fuente (casos reales, no testimonios inventados; se descartó fabricar prueba social).
- Un blog cornerstone sobre IA gobernada: la filosofía escrita, que el conserje además encarna.
6. Medición (no hay AEO sin evidencia)
| Señal | Herramienta | Qué vigilar |
|---|---|---|
| Indexación / errores | Google Search Console, Bing WMT | cobertura, títulos, meta, H1, 4xx |
| Citas en motores de IA | Ahrefs Brand Radar | menciones y share-of-voice en respuestas de IA |
| Rendimiento | PageSpeed / Lighthouse (multi-región) | LCP, TBT, payload (3+ runs, no 1) |
| Conserje | logs del Worker + digest semanal | consultas, leads, tasa de "no documentado" |
Regla de oro (Definición de GREEN): nunca declares algo "hecho" verificando el artefacto (el código, el commit). Solo cuenta el efecto observable: el
curla producción, el registro en el índice, el lead en la base.
Meta-estructura Mermaid
flowchart LR
C["Cambio"] --> D["Deploy"] --> OBS{"¿efecto observable?"}
OBS -- "sí (curl/índice/lead)" --> GREEN["GREEN ✓ (documentar + diario)"]
OBS -- "no" --> PEND["PENDIENTE-DE-VERIFICACIÓN (qué falta, quién, deadline)"]
PEND --> C
style GREEN fill:#22A088,color:#fff
style PEND fill:#FBA225,color:#101820
7. El programa, en el tiempo (lo que Transgenia ejecutó)
Meta-estructura Mermaid
flowchart LR
subgraph F["Fundamentos · 17-18 jul"]
A1["Curado GSC / Bing + robots"] --> A2["Perf: Material Symbols 5.2MB→3.7KB"]
end
subgraph E["Entidad y contenido · 18-19 jul"]
B1["Reposicionamiento es/en/zh"] --> B2["llms.txt + JSON-LD + feed"] --> B3["faq.json + FAQPage"]
end
subgraph D["Demostración de IA · 19-21 jul"]
C1["Retiro chat Odoo"] --> C2["Conserje backend (Worker + RAG)"] --> C3["Widget + deploy + GREEN prod"] --> C4["Estimador IA + web search"]
end
F --> E --> D
style F fill:#22A088,color:#fff
style E fill:#FB6C25,color:#fff
style D fill:#E14228,color:#fff
8. Playbook accionable (checklist)
Fundamentos
- [ ]
robots.txtpermite bots de IA por nombre; Cloudflare Managed Content desactivado. - [ ] LCP móvil menor a 2.5 s; sin fuentes o imágenes pesadas en ruta crítica.
- [ ] JSON-LD válido (Rich Results) y coincidente con contenido visible.
Entidad y contenido
- [ ]
llms.txtdescribe tu entidad real, liderando con tu diferenciador. - [ ]
FAQPagevisible en tus páginas clave, desde una fuente única. - [ ] Identidad idéntica en home, about, llms.txt y schema (todos los idiomas).
Demostración de IA (avanzado)
- [ ] Asistente RAG que cita fuentes y admite lo que no sabe (zero-fabrication).
- [ ] Privacidad demostrable (minimiza y declara transferencias).
- [ ] Gobernanza: límites, anti-abuso y presupuesto en el edge.
Medición
- [ ] GSC + Bing WMT + Brand Radar + Lighthouse en revisión periódica.
- [ ] Nada se declara hecho sin efecto observable (GREEN).
Cómo se aplica a tu empresa
Nada de lo anterior es exclusivo de una boutique de IA. La misma disciplina sirve para cualquier empresa que decidió tomarse en serio su presencia ante los motores de respuesta en 2026: primero los fundamentos técnicos, luego una entidad coherente y citeable, y al final, si puedes, una demostración viva de lo que haces. En Transgenia aplicamos esto a nuestro propio sitio antes de proponérselo a nadie. Si quieres ver cómo se traduce a tu industria, la página de Soluciones de IA lo describe por sector.
Preguntas frecuentes
¿Qué diferencia hay entre SEO, GEO y AEO?
SEO optimiza para que aparezcas en la lista de resultados de un buscador y alguien haga clic. GEO (Generative Engine Optimization) trabaja para que un motor generativo como ChatGPT o Perplexity te cite como fuente. AEO (Answer Engine Optimization) va un paso más: busca que la respuesta del motor entregue directamente quién eres o qué haces, sin obligar al clic. En 2026 conviene optimizar los tres, porque el comprador consulta los tres.
¿Cómo permito que los bots de IA rastreen mi sitio?
En robots.txt, con reglas Allow explícitas por nombre de bot (GPTBot, ClaudeBot, PerplexityBot, Google-Extended, entre otros). Ojo con Cloudflare: su bloque "Managed Content Signals" puede anular esas reglas desde el borde aunque tu archivo diga lo contrario. Hay que revisarlo en el dashboard, no solo en el archivo.
¿El structured data (JSON-LD) mejora mi AEO?
Ayuda, con una condición: el schema debe coincidir con contenido visible en la página. Un FAQPage sin una sección FAQ real puede ser ignorado o penalizado. Genera el JSON-LD desde una fuente única para que no se desincronice del texto que el usuario ve.
¿Qué es un llms.txt y para qué sirve?
Es un archivo en la raíz del sitio pensado para que un modelo de lenguaje entienda tu entidad de un vistazo: quién eres, qué haces, dónde vive cada dato. No reemplaza al contenido, pero le da a los motores un resumen limpio y liderado por tu diferenciador real.
¿Necesito un chatbot en mi sitio para hacer AEO?
No es obligatorio. Los niveles 1 a 3 (fundamentos técnicos, contenido estructurado y entidad citeable) ya mueven la aguja. Un asistente RAG que cita fuentes y admite lo que no sabe es el nivel 4: el diferenciador que demuestra la capacidad en vez de solo declararla. Es opcional, pero es donde una boutique de IA se separa del resto.