Si los bots de los motores de respuesta no pueden rastrear tu sitio, tu marca nunca entra al corpus que esos modelos (Large Language Model) citan. Antes de pulir tu schema o tu autoridad, asegúrate del paso cero — que GPTBot, PerplexityBot y ClaudeBot lleguen al HTML.

Por qué la crawlability es el prerequisito de todo lo demás

Un motor de respuesta solo puede citar lo que algún bot ya leyó. Si tu servidor devuelve 403 al user-agent que alimenta ChatGPT, nada de lo que hayas optimizado debajo importa — ni tu schema, ni tu autoridad, ni tu copy.

Esa separación entre crawl y consumo es explícita en la documentación de los proveedores. Según OpenAI, su infraestructura usa "crawlers y user agents" distintos para entrenamiento, ChatGPT search y fetches iniciados por usuario — tres comportamientos diferentes desde el mismo proveedor. Cada uno se permite o bloquea por separado.

El patrón se repite en los demás. Según el centro de ayuda de Claude, Anthropic publica tres bots distintos — ClaudeBot, Claude-User y Claude-SearchBot — "para habilitar la transparencia y elección de los bots para los dueños de los sitios web". La decisión de aparecer citado no es binaria — es por tipo de bot.

Esta es la base técnica abajo del framework Searchability y la condición para que tu JSON-LD siquiera se lea. Sin crawlability no hay indexación, y sin indexación no hay citación posible.

Suscríbete al newsletter de Madbotz para recibir el próximo análisis directo en tu correo. Sin spam, sin ruido — solo posts nuevos.

Suscríbete

Los tres bots que tienes que dejar pasar

GPTBot (OpenAI)

Según OpenAI, GPTBot "es usado para rastrear contenido que podría ser usado para entrenamiento" de los modelos fundacionales. Es el bot que se bloquea si NO quieres que tu contenido entre al training data. El user-agent canónico es GPTBot y el string completo es Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko); compatible; GPTBot/1.1; +https://openai.com/gptbot.

OpenAI corre otros dos bots — OAI-SearchBot, que alimenta el índice de ChatGPT search (para las busquedas en tiempo real), y ChatGPT-User, que hace rastreo en vivo cuando un usuario pega una URL en el chat. Bloquear solo GPTBot saca tu contenido del entrenamiento de los modelo fundacionales (LLMs); bloquear los otros dos saca tu sitio de las respuestas que ChatGPT entrega hoy con informacion obtenida en tiempo real. Las IPs están en openai.com/gptbot.json.

PerplexityBot (Perplexity)

Según la documentación de Perplexity, PerplexityBot "Está diseñado para mostrar y enlazar sitios web en los resultados de búsqueda de Perplexity. No se utiliza para rastrear contenido para los modelos de la base de IA". Su función es darte visibilidad — no entrenar modelos. Bloquearlo equivale a renunciar a aparecer en sus respuestas.

El user-agent es PerplexityBot y el string completo termina en +https://perplexity.ai/perplexitybot. Las IPs verificables están en perplexity.com/perplexitybot.json. Perplexity también corre Perplexity-User, que sirve fetches iniciados por preguntas de usuario y, según su propia documentación, "generalmente ignora las reglas de robots.txt" por ser tráfico iniciado por el usuario.

Una nota cautelosa con fecha — según Cloudflare, en agosto de 2025 reportaron que Perplexity "está utilizando rastreadores ocultos y no declarados para eludir las directivas de no rastreo de sitios web". Es un hallazgo público con fecha, no una propiedad permanente del bot — pero si bloqueaste Perplexity por política, conviene revisar tus logs por user-agents no declarados.

ClaudeBot (Anthropic)

Según el centro de ayuda de Claude, ClaudeBot "ayuda a mejorar la utilidad y la seguridad de nuestros modelos de IA generativa al recopilar contenido web que podría contribuir potencialmente a su entrenamiento.". Es el bot de entrenamiento de Anthropic — bloquearlo saca tu sitio del set de datos de entrenamiento del modelo de Claude.

Anthropic corre tres user-agents distintos: ClaudeBot (entrenamiento), Claude-User (fetches por pregunta de usuario) y Claude-SearchBot (indexación para busquedas). Las IPs verificables están en claude.com/crawling/bots.json. Anthropic explicita que sus bots "Respete las señales de "no indexar" cumpliendo con las directivas estándar de la industria en robots.txt." y soporta la extensión Crawl-delay.

BotUser-agent tokenQué alimentaRespeta robots.txtDirectiva para permitirlo
GPTBotGPTBotTraining de modelos OpenAISí (documentado)No incluir Disallow:
OAI-SearchBotOAI-SearchBotÍndice de ChatGPT searchSí (documentado)No incluir Disallow:
ChatGPT-UserChatGPT-UserFetches en vivo de ChatGPTSí (documentado)No incluir Disallow:
PerplexityBotPerplexityBotResultados de PerplexitySí (documentado)No incluir Disallow:
ClaudeBotClaudeBotTraining de modelos AnthropicSí (documentado)No incluir Disallow:
Claude-SearchBotClaude-SearchBotSearch de ClaudeSí (documentado)No incluir Disallow:

Cómo escribir tu robots.txt para los bots IA

La sintaxis es la misma de siempre. Una directiva User-agent: por bot, seguida de las reglas Allow: o Disallow:, separadas por línea en blanco. Para permitir explícitamente — el caso por default si quieres ser citado — basta con no incluir un Disallow: para ese user-agent.

Para limitar o bloquear, los proveedores documentan el patrón estándar. Según el centro de ayuda de Claude, una directiva válida para limitar rastreo es:

User-agent: ClaudeBot
Crawl-delay: 1

Y para bloquear completo:

User-agent: ClaudeBot
Disallow: /

El mismo patrón aplica a GPTBot y a PerplexityBot. Lo que cambia es el trade-off — bloquear los bots de training (GPTBot, ClaudeBot) saca tu sitio del set de entrenamiento de datos; bloquear los bots de indexación en vivo (PerplexityBot, OAI-SearchBot, Claude-SearchBot) renuncia a aparecer citado en esos motores.

Bloquear no es neutro.

Cada Disallow: / te saca del corpus o del índice de ese motor. Si tu estrategia es ser citado, lo que necesitas es NO tener Disallow: para esos UA — no agregar un Allow: explícito.

Esto contradice una idea que circula desde 2024 — que un nuevo archivo separado (llms.txt) reemplaza a robots.txt para los bots IA. Como argumentamos en el cargo cult de llms.txt, robots.txt sigue siendo el estándar canónico que los bots documentados leen — y el formato sobre el que el ecosistema converge.

Cómo verificar que los bots te están rastreando

El primer lugar es tus server logs. Filtra por user-agent buscando GPTBot, PerplexityBot, ClaudeBot, Claude-User, Claude-SearchBot, OAI-SearchBot y ChatGPT-User. Si en los últimos 30 días no aparece tráfico de al menos dos de ellos, hay un bloqueo silencioso en algún punto.

El segundo es verificar IP contra los rangos publicados. Cada proveedor mantiene un endpoint JSON: openai.com/gptbot.json, perplexity.com/perplexitybot.json y claude.com/crawling/bots.json. Cualquier tráfico con User Agent conocido pero IP fuera del rango es un imitador. Las IPs cambian con frecuencia — automatiza el fetch en vez de hardcodear rangos.

El tercero, si tu stack lo permite, es DNS inverso. Resuelve la IP del request, vuelve a resolver el hostname obtenido y compara — debe coincidir. No todos los proveedores publican ese mecanismo, pero el cruce IP-JSON cubre el caso principal.

El killer silencioso — tu WAF o CDN está bloqueando bots legítimos

Aquí va la lección que más le cuesta a los equipos. El bloqueo más común no viene de robots.txt — viene del WAF o el CDN, y el dueño del sitio nunca se entera porque la página carga normal en su navegador.

Según el blog de Cloudflare, su regla administrada "Block AI bots" tiene precedencia sobre el resto de Super Bot Fight Mode — incluyendo "Allow verified bots". El texto es directo: "Si has habilitado Bloquear bots de IA y Permitir bots verificados, los bots de IA verificados también serán bloqueados". Una opción bien-intencionada de seguridad puede sacarte de los tres motores de respuesta sin avisarte.

Bot Fight Mode tiene un comportamiento adicional. Inyecta JS Detections en cada página servida y reta al tráfico bot por default — la mayoría de los bots IA no ejecutan JS, así que fallan el reto silenciosamente. El síntoma desde tu navegador es invisible — la página carga normal para ti y devuelve 403 al bot.

El caso de Madbotz — qué le pasó a nuestro propio crawler

Madbotz opera un scanner para el producto Visibility, con user-agent canónico MadbotzVisibilityBot/1.0 (+https://visibility.madbotz.com/bot). En mayo de 2026, mientras escaneábamos madbotz.com desde fuera, Cloudflare lo bloqueó silenciosamente. La respuesta llegaba como 403 sin aparecer en los logs de la aplicación detrás.

La resolución fue una regla custom en Cloudflare con Action = Skip cuando el User-Agent contiene "MadbotzVisibilityBot", aplicada a All managed rules, Super Bot Fight Mode y Browser Integrity Check. Funcionó tras propagar en la zona madbotz.com. Documentamos el playbook completo en la página pública de identidad de nuestro bot, con snippets de allowlist para Cloudflare, Vercel Firewall, AWS WAF, Akamai e Imperva.

⚠️
Aclaración importante — MadbotzVisibilityBot es un scanner de visibilidad, no un answer-engine bot como GPTBot, PerplexityBot o ClaudeBot. Lo traemos a esta sección porque el mecanismo de WAF que lo bloqueó es exactamente el mismo que bloquea a los tres bots IA por default. Si te pasó a ti con cualquier bot legítimo, te está pasando con los demás.

La receta de allowlist transferible es: regla custom en el WAF, prioridad alta, basada en User-Agent del bot deseado, Action = Skip o Allow para las reglas managed. NO basar la allowlist en rangos de IP — los bots IA y nuestro scanner usan IPs dinámicas, y el día que cambien la regla deja de funcionar.

Checklist de crawlability IA

Seis pasos concretos que puedes ejecutar esta semana:

  1. Revisa tu robots.txt en producción. Confirma que no hay Disallow: / para GPTBot, PerplexityBot, ClaudeBot, Claude-User, Claude-SearchBot, OAI-SearchBot ni ChatGPT-User.
  2. Filtra tus server logs por esos user-agents en los últimos 30 días. Si no aparece tráfico de al menos dos de ellos, hay bloqueo silencioso en algún punto.
  3. Si usas Cloudflare, abre Security → Bots. Si "Block AI bots" está activado, ya estás fuera de los tres motores — crea una regla custom con Skip por user-agent para los bots que sí quieres dejar pasar.
  4. Cruza las IPs que SÍ aparecen en logs contra el endpoint JSON oficial de cada proveedor: openai.com/gptbot.json, perplexity.com/perplexitybot.json y claude.com/crawling/bots.json.
  5. Si publicas un bot propio, documenta su identidad en una URL pública (ejemplo: tu-dominio.com/bot) y entrega snippets de allowlist por WAF a tus clientes. Es la única forma de que no te bloqueen.
  6. Vuelve a correr el análisis dos semanas después. La propagación de reglas de WAF y la frecuencia de crawl de los bots IA hacen que el efecto se vea con lag.

Preguntas frecuentes

¿Si bloqueo GPTBot, dejo de aparecer en ChatGPT?

No del todo — depende de qué bot bloqueas. GPTBot alimenta el set de entrenamiento de los datos; OAI-SearchBot alimenta el índice de ChatGPT search; ChatGPT-User es el fetch en vivo cuando alguien pega tu URL. Bloquear los tres saca tu sitio de ChatGPT. Bloquear solo GPTBot saca el bot del training pero deja el resto operando.

¿Es cierto que los bots IA ignoran robots.txt?

Los bots declarados de OpenAI, Anthropic y Perplexity dicen respetarlo y lo documentan en sus centros de ayuda. La excepción reportada con fecha es la de Cloudflare sobre Perplexity en agosto de 2025, sobre crawlers no declarados. Para los user-agents documentados, robots.txt sigue siendo el control principal.

¿Por qué mi sitio carga bien pero los bots no me citan?

Casi siempre es el WAF o el CDN. Bot Fight Mode, Super Bot Fight Mode, AWS WAF Bot Control y Vercel Firewall challengean tráfico bot por default, sin que el síntoma sea visible desde el navegador. La página carga normal para ti pero devuelve 403 al bot.

¿Allowlistar por IP o por user-agent?

Por user-agent. Los bots IA y los scanners propios usan IPs dinámicas y publican endpoints JSON que cambian con frecuencia. Una allowlist basada en User-Agent vive en un solo lugar; una basada en IPs requiere automatización constante para no romperse.

Conclusión

Tres ideas para llevarte:

  • Crawlability es el paso cero de la visibilidad IA — sin acceso de bot al HTML, ni schema ni autoridad sirven de nada.
  • GPTBot, PerplexityBot y ClaudeBot respetan robots.txt según su documentación oficial. El control real es lo que pasa antes del archivo — en tu WAF o CDN.
  • El killer silencioso es Bot Fight Mode (o su equivalente en AWS, Vercel o Akamai). Bloquea por default y no aparece en logs de aplicación. Revísalo manualmente.

Si quieres saber si tu sitio está expuesto a alguno de estos bloqueos — y al resto de los 131 check items del marco Searchability — el analizador de Visibility lo dice en menos de 60 segundos.

Analiza tu sitio gratis — ingresa una URL y obtén tu AI Visibility Score en menos de 60 segundos.

Informe de Visibilidad AI

Analiza tu sitio gratis — ingresa una URL y obtén tu AI Visibility Score en menos de 60 segundos.