SEO Técnico
robots.txt y bots de IA: la guía completa
Qué hace y qué no hace robots.txt, la trampa de la especificidad, y qué se pierde de verdad al bloquear GPTBot, OAI-SearchBot o ChatGPT-User.
El robots.txt es el archivo más simple del SEO técnico y el que más daño hace cuando se toca mal. Son cuatro líneas de texto plano en la raíz del dominio y, sin embargo, he visto proyectos perder meses de tráfico por un Disallow mal puesto que nadie revisó.
En 2026 se le sumó una capa nueva. Ya no basta con decidir qué ve Googlebot: hay que decidir qué ve el robot que entrena modelos, qué ve el que construye el índice de ChatGPT y qué ve el que abre una página concreta cuando alguien pregunta. Son tres cosas distintas y mucha gente las está tratando como una sola.
Esta guía cubre lo básico bien explicado y después entra en la parte que casi no está escrita en español: qué se pierde de verdad al bloquear cada bot de IA, qué dice la documentación oficial y qué muestran las mediciones independientes cuando contradicen la intuición.
Qué es robots.txt y qué no puede hacer
robots.txt es un archivo de texto plano en la raíz del dominio que le dice a los rastreadores qué partes del sitio pueden recorrer. Se sirve siempre desde la raíz, y solo desde ahí: un archivo en una subcarpeta no lo lee nadie.
Lo importante es lo que no hace, porque ahí nace el error clásico. robots.txt controla el rastreo, no la indexación. Una página bloqueada por robots.txt puede aparecer igualmente en los resultados si otros sitios la enlazan, porque el buscador sabe que existe aunque no pueda leerla. Y como no puede leerla, tampoco puede ver la etiqueta noindex que pusiste dentro.
Si quieres que una página no aparezca en los resultados, la herramienta es la etiqueta meta robots con noindex, y hay que dejar que el rastreador entre a leerla. Bloquearla en robots.txt consigue lo contrario de lo que buscas: impide que vea la instrucción que la sacaría del índice.
Tampoco es un mecanismo de seguridad. Es una convención voluntaria: un robot bien educado la respeta, uno malicioso la lee como un mapa de lo que te interesa esconder. Nada sensible se protege con robots.txt, se protege con autenticación.
La sintaxis, y la trampa que casi nadie ve
El archivo se organiza en bloques. Cada bloque empieza con una línea User-agent que nombra al robot, y sigue con las reglas que se le aplican. Disallow bloquea una ruta, Allow la permite, y la línea Sitemap indica dónde está el mapa del sitio.
| Directiva | Qué hace | Nota práctica |
|---|---|---|
| User-agent | Abre un bloque de reglas para un robot concreto | El asterisco significa cualquier robot que no tenga bloque propio |
| Disallow | Impide rastrear una ruta | Una barra sola bloquea el sitio entero. Vacío no bloquea nada |
| Allow | Permite una ruta dentro de una zona bloqueada | Gana la regla más específica, no la que va primero |
| Sitemap | Indica la URL del mapa del sitio | Es global, no pertenece a ningún bloque |
Y acá está la trampa que provoca los errores más caros, porque es contraintuitiva: un robot que encuentra un bloque con su propio nombre ignora por completo el bloque del asterisco. No los suma, elige uno.
Ejemplo concreto. Si tienes un Disallow para la carpeta de administración en el bloque User-agent asterisco, y más abajo agregas un bloque para GPTBot con un Allow, GPTBot deja de respetar aquel Disallow. Al declarar un bot por su nombre, heredas la obligación de repetirle todas las reglas que quieras que cumpla.
Por eso, en este sitio, cuando declaré los bots de IA uno por uno, todos quedaron con Allow y sin ninguna restricción. El comportamiento no cambió respecto de antes, porque ya pasaban por el asterisco. Lo que cambió es que ahora la postura está escrita y es auditable. Puedes ver mi robots.txt y comprobarlo.
Los tres bots de OpenAI y para qué sirve cada uno
Esta es la parte que más confusión genera, y la buena noticia es que no hay que inferirla: OpenAI la documenta públicamente. Son tres robots con tres funciones separadas.
| Robot | Para qué lo usa OpenAI | Qué te juegas al bloquearlo |
|---|---|---|
| GPTBot | Rastrea contenido que puede usarse para entrenar los modelos base | Que tu contenido no alimente el entrenamiento. No debería afectar tu presencia en la búsqueda |
| OAI-SearchBot | Descubre e incorpora páginas a los resultados de búsqueda de ChatGPT | Esto sí duele: es el que decide si te encuentran. Bloquearlo es salir de la búsqueda |
| ChatGPT-User | Abre una página concreta cuando una acción del usuario lo requiere | Que el modelo no pueda ir a leerte a fondo cuando la respuesta lo pide |
OpenAI lo dice sin ambigüedad en su documentación oficial de bots: cada ajuste es independiente de los otros, y un webmaster puede permitir OAI-SearchBot para aparecer en los resultados de búsqueda mientras bloquea GPTBot para indicar que el contenido rastreado no debe usarse para entrenar sus modelos.
Los tokens exactos de user-agent, por si los necesitas para revisar logs, son GPTBot, OAI-SearchBot y ChatGPT-User. OpenAI también publica los rangos de IP de cada uno en archivos JSON separados, lo que permite verificar que una visita es legítima y no alguien falsificando el user-agent.
¿Bloquear el bot de entrenamiento te quita citabilidad?
Esta duda me llegó bien formulada y vale la pena responderla con cuidado, porque el razonamiento intuitivo lleva a la conclusión equivocada. La lógica que circula es esta: si ChatGPT tiene un índice interno propio, y el bot de entrenamiento no puede rastrear tu página, entonces esa página no entraría al índice y perderías visibilidad, sobre todo en las cuentas gratuitas.
El razonamiento sería correcto si el índice se construyera con el rastreo del bot de entrenamiento. Las mediciones de 2026 dicen justo lo contrario: el índice de descubrimiento lo alimenta OAI-SearchBot, y casi toda entrada del índice es más reciente que la última visita de GPTBot. Es decir, se refrescó después de que pasara el bot de entrenamiento y no gracias a él.
Así que la separación se sostiene, y en realidad el hallazgo la refuerza: hace más importante permitir OAI-SearchBot, no permitir GPTBot. Si tuviera que resumirlo en una frase: el bot de entrenamiento controla si tu contenido educa al modelo, el bot de búsqueda controla si tu marca aparece en la respuesta.
Donde sí hay riesgo real es en la ejecución. He visto tres formas de arruinarlo creyendo que se bloquea solo entrenamiento. La primera, un Disallow con barra bajo un User-agent asterisco, que se lleva todo por delante. La segunda, bloquear por firewall o CDN todos los rangos de IP de OpenAI sin distinguir cuáles son de búsqueda. La tercera, la más sutil, declarar un bloque para OAI-SearchBot y meterle restricciones por descuido.
Una precisión honesta: labrador, el nombre del índice interno que aparece en estas discusiones, se leyó de un campo que OpenAI expuso sin querer y que eliminó en julio de 2026. No es un sistema documentado oficialmente, y hay desacuerdo entre investigadores sobre qué es exactamente. Lo que sí está en la documentación oficial es la separación de funciones entre los tres bots, y esa es la base sobre la que conviene decidir.
Permitir al bot no basta: el descubrimiento corre por enlaces
Este es el matiz que casi nadie está contando, y para mí es el hallazgo más accionable de todo el tema. Dar permiso en robots.txt es condición necesaria, no suficiente. Falta que el robot encuentre la página.
En un dominio monitoreado durante 2026 se probó justamente eso. GPTBot descargó el sitemap aproximadamente una vez al día y no siguió ninguna de las ocho URLs que estaban listadas solo ahí: cero de ocho. Esa misma mañana rastreó las ocho páginas que sí eran alcanzables por un enlace. Bingbot, ClaudeBot y GoogleOther hicieron exactamente lo contrario: entraron por el sitemap y por nada más.
URLs listadas únicamente en el sitemap fueron rastreadas por el robot de OpenAI. Las 8 alcanzables mediante un enlace interno sí se rastrearon ese mismo día
Fuente: Resoneo, julio 2026, protocolo sobre dominio monitoreado
La consecuencia práctica es directa y barata de aplicar: si te importa que una página entre en ChatGPT, enlázala desde otra página que ya esté rastreada. Una página huérfana, aunque figure en el sitemap y aunque el robots.txt la permita, puede quedarse fuera. El enlazado interno vuelve a ser la palanca, igual que en el SEO clásico.
Esto también explica por qué soy escéptico con llms.txt, un archivo que parte del mercado vende como solución mágica para la visibilidad en IA. Ningún motor importante ha confirmado que lo use como vía de descubrimiento, y la evidencia disponible apunta a que el rastreo sigue corriendo por enlaces. En este sitio no lo implementé, y es una decisión deliberada: prefiero invertir ese esfuerzo en arquitectura de enlaces, que sí está medido.
noindex no te saca de la cache de OpenAI
Hay un supuesto razonable que las mediciones no respaldan: que poner noindex mantiene tu página fuera de los almacenes de OpenAI. Los análisis de logs de Jérôme Salomon (Oncrawl) confirman que páginas con la etiqueta meta robots en noindex, visitadas por los robots de OpenAI, terminan igualmente en la cache. Prohibir la indexación no te deja fuera del almacén.
En la misma línea, páginas que enviaban una cabecera Cache-Control con no-store, que prohíbe explícitamente cualquier almacenamiento, se cachearon de todas formas. Y esa copia se comparte: la versión guardada a partir de la visita de una cuenta puede servirse después a otra cuenta, en otro país, sin que llegue una sola petición a tu servidor.
Si de verdad necesitas que un contenido no sea accesible para estos sistemas, la única vía fiable es que no sea accesible en absoluto: autenticación, o no publicarlo. Las directivas declarativas son una petición de buena fe, no un control de acceso.
Los bots de IA que conviene conocer
Más allá de OpenAI, este es el panorama de robots de IA con los que te vas a encontrar en los logs, y qué implica bloquear cada uno. La distinción clave, siempre, es la misma: entrenar el modelo o alimentar la búsqueda.
| User-agent | Empresa y función | Consecuencia de bloquearlo |
|---|---|---|
| GPTBot | OpenAI, entrenamiento | Sales del entrenamiento. La búsqueda no debería verse afectada |
| OAI-SearchBot | OpenAI, índice de búsqueda | Dejas de ser elegible en las respuestas de ChatGPT |
| ChatGPT-User | OpenAI, lectura bajo demanda | El modelo no puede abrir tu página cuando la respuesta lo pide |
| ClaudeBot | Anthropic | Sales del rastreo de Anthropic |
| PerplexityBot | Perplexity, buscador con IA | Dejas de aparecer en las respuestas de Perplexity |
| Google-Extended | Google, uso en Gemini y respuestas generativas | No afecta el ranking en la búsqueda de Google, solo el uso generativo |
| CCBot | Common Crawl, corpus abierto | Sales de un corpus que alimenta a muchos modelos de terceros |
| Bytespider | ByteDance | Sales del rastreo de ByteDance |
| Applebot-Extended | Apple, uso generativo | No afecta a Siri ni a Spotlight, solo el entrenamiento generativo |
Ojo con Google-Extended y Applebot-Extended: ambos controlan solo el uso generativo, no el rastreo de búsqueda. Bloquearlos no te saca de Google ni de Spotlight. Es la única pareja de esta tabla donde bloquear tiene un costo bajo y bien acotado.
Tres configuraciones según lo que quieras conseguir
No hay una respuesta correcta universal, hay una decisión de negocio. Estas son las tres posturas coherentes, con lo que cada una implica de verdad.
Máxima presencia: permitir todo
Es la configuración de este sitio y la que recomiendo a la mayoría de las marcas que viven de ser encontradas. Se declara cada bot por su nombre con Allow, no porque haga falta técnicamente, sino para dejar la postura explícita y auditable. Recuerda que al declararlos por nombre dejan de heredar las reglas del bloque asterisco, así que si tienes zonas bloqueadas hay que repetirlas en cada bloque.
Excluir entrenamiento, mantener búsqueda
Es la postura de muchos medios y de quien produce contenido original de alto valor. Se bloquea GPTBot, CCBot, Google-Extended y Applebot-Extended, y se permite OAI-SearchBot, ChatGPT-User y PerplexityBot. La documentación oficial de OpenAI respalda que esta combinación es válida y que los ajustes son independientes. Complementa permitiendo los rangos de IP publicados de los bots de búsqueda en tu CDN o WAF, porque de nada sirve el robots.txt si el firewall los está cortando antes.
Bloqueo total
Bloquear todos los bots de IA es una postura legítima, sobre todo si tu modelo de negocio es la suscripción y el contenido es el producto. Pero hay que tomarla sabiendo el costo: dejas de ser elegible para aparecer en las respuestas, y esa superficie está creciendo. Además, como vimos, no te saca de las copias ya almacenadas ni te protege de rastreadores que ignoran la convención.
Cómo verificar que tu configuración funciona
Escribir el archivo es la parte fácil. Comprobar que hace lo que crees es donde se separa el trabajo serio del voluntarismo.
- Revisa los logs de servidor filtrando por user-agent. Es la única fuente que dice qué robot vino, cuándo y a qué URL. Ninguna herramienta externa te da eso.
- Contrasta el user-agent contra los rangos de IP publicados por cada empresa. Falsificar un user-agent es trivial, falsificar la IP no.
- Comprueba que tu CDN o WAF no esté bloqueando antes de que la petición llegue a robots.txt. Es la causa más frecuente de bloqueos que nadie configuró a propósito.
- Verifica que las páginas que te importan sean alcanzables por enlace interno, no solo por sitemap.
- Si declaraste bots por nombre, revisa que cada bloque repita las restricciones que tenías en el bloque asterisco.
Y un detalle de interpretación que casi todo el mundo lee al revés: ver ChatGPT-User en tus logs no significa que un usuario esté leyendo tu página en ese momento. Es un refresco de la cache de OpenAI, del que se beneficiará la consulta siguiente. La visita y la lectura están desacopladas.
Qué hace ChatGPT exactamente con la copia que guarda de tu página, y por qué tu H1 pesa más que tu meta description, lo desarrollo en cómo funciona ChatGPT Search, con el detalle de los dos almacenes y del embudo de citación.
Preguntas frecuentes sobre robots.txt y bots de IA
¿Dónde va el archivo robots.txt?
Siempre en la raíz del dominio, accesible en la ruta barra robots.txt. Solo se lee desde ahí: un archivo en una subcarpeta lo ignoran todos los rastreadores. Cada subdominio necesita el suyo propio, porque para los buscadores es un host distinto.
¿robots.txt impide que una página aparezca en Google?
No. Controla el rastreo, no la indexación. Una página bloqueada puede aparecer igualmente si otros sitios la enlazan, y encima sin descripción, porque el buscador no pudo leerla. Para sacarla de los resultados se usa la etiqueta meta robots con noindex, dejando que el rastreador entre a verla.
¿Bloquear GPTBot me deja fuera de ChatGPT?
No debería. GPTBot rastrea para entrenar los modelos base, mientras que quien alimenta el índice de búsqueda de ChatGPT es OAI-SearchBot. La documentación oficial de OpenAI señala que los ajustes son independientes y que se puede permitir OAI-SearchBot mientras se bloquea GPTBot. El error costoso es bloquear ambos sin darse cuenta.
¿Poner noindex me saca de la cache de OpenAI?
No. Los análisis de logs muestran que páginas con noindex visitadas por los robots de OpenAI terminan igualmente en su cache, y lo mismo ocurre con la cabecera Cache-Control en no-store. Si necesitas que un contenido quede realmente fuera, la única vía fiable es la autenticación.
¿Sirve el archivo llms.txt?
No hay evidencia de que los motores principales lo usen como vía de descubrimiento, y ninguno lo ha confirmado. Las mediciones de 2026 apuntan a que el rastreo de OpenAI corre por enlaces, no por archivos declarativos. Antes de implementarlo, conviene asegurarse de que las páginas importantes estén bien enlazadas internamente, que es lo que sí está medido.
¿Basta con robots.txt para permitir los bots de IA?
No siempre. Muchos bloqueos accidentales ocurren en el CDN o el firewall, antes de que la petición llegue al archivo. Si quieres asegurar la presencia, conviene permitir además los rangos de IP publicados por cada empresa y comprobar en los logs de servidor que las visitas efectivamente están llegando.
En resumen: decide con criterio, no por defecto
robots.txt sigue siendo cuatro líneas de texto, pero ahora esas líneas deciden algo más que el presupuesto de rastreo: deciden en qué respuestas puede aparecer tu marca. La distinción que hay que tener clara es entre el robot que entrena y el robot que busca, porque bloquear uno u otro tiene consecuencias muy distintas.
Y sobre todo, que la decisión sea una decisión. La mayoría de los sitios que revisé no eligió su configuración actual: la heredó de una plantilla, de un plugin o de un desarrollador que puso un asterisco y siguió adelante. Escribirla de forma explícita, aunque el resultado sea permitirlo todo, ya es un avance.
La base técnica sobre la que se apoya todo esto, desde el rastreo y la indexación hasta el rendimiento, está en la guía de SEO técnico y Core Web Vitals, porque un robots.txt impecable no sirve de nada si lo que hay detrás no se puede rastrear ni renderizar.
Y si necesitas que alguien audite esta capa en un proyecto grande, donde un error se paga en meses de tráfico, en Milimetrix lo trabajamos como parte del servicio de agencia SEO. Hablemos.









