SEO & Discoverability

Cómo escribir un robots.txt que realmente bloquee scrapers de IA

Una guía práctica para bloquear rastreadores de IA que cumplen las reglas, entender los límites de robots.txt y añadir controles del lado del servidor donde importan.

The Wux Webtools Team The Wux Webtools Team 11 min de lectura Asistido por IA, revisado por humanos
Illustration of crawler bots approaching a website gate controlled by a robots.txt file.
Tabla de contenido
  1. La verdad incómoda sobre robots.txt
  2. Qué puede y qué no puede hacer robots.txt
  3. Empieza por tu decisión de política
  4. Una plantilla razonable de robots.txt para bloquear IA
  5. Ten cuidado con Google-Extended
  6. Prueba el archivo como código de producción
  7. Añade controles del lado del servidor para bots que ignoran las reglas
  8. Limitación de tasa
  9. Filtrado de user-agent
  10. Controles de IP y ASN
  11. Autenticación y muros de pago
  12. Minimización de contenido
  13. Usa etiquetas meta robots para reglas a nivel de página
  14. Supervisa los registros después de publicar
  15. Mantén el archivo pequeño y revisado
  16. En resumen

La verdad incómoda sobre robots.txt

Un archivo robots.txt no es un candado. Es un cartel en la puerta.

Esa distinción importa cuando los equipos preguntan si pueden “bloquear scrapers de IA” con un pequeño archivo de texto. Para rastreadores reputados que siguen el Protocolo de Exclusión de Robots, sí: un robots.txt correctamente escrito puede indicarles que no rastreen tus páginas. Para scrapers desconocidos, suplantadores, automatización de navegadores y bots a los que simplemente no les importa, no hará nada por sí solo.

Así que el objetivo práctico no es “hacer imposible el scraping”. Es:

  • Indicar a los rastreadores de IA que cumplen las reglas que no usen tu sitio.
  • Evitar bloquear por accidente motores de búsqueda o servicios útiles.
  • Añadir controles más sólidos del lado del servidor contra abusos.
  • Mantener la política fácil de mantener a medida que cambian los nombres de los rastreadores.

Esa es la versión aburrida. También es la versión que funciona.

Qué puede y qué no puede hacer robots.txt

Un archivo robots.txt vive en la raíz de un sitio:

https://example.com/robots.txt

Los rastreadores lo solicitan antes de rastrear. El archivo contiene grupos de reglas. Cada grupo empieza con una o más líneas User-agent, seguidas de directivas Allow o Disallow.

Un bloqueo simple de todo el sitio se ve así:

User-agent: GPTBot
Disallow: /

Eso significa: si eres GPTBot, no rastrees nada en este sitio.

Pero robots.txt tiene límites estrictos:

  1. Es voluntario. Los actores malintencionados pueden ignorarlo.
  2. No impide que una URL sea solicitada por un navegador o script normal.
  3. No elimina contenido ya recopilado en otros lugares.
  4. No define por sí solo derechos de autor, licencias ni derechos de entrenamiento.
  5. Puede configurarse mal de formas que bloqueen a los bots equivocados.

Si necesitas control de acceso real, usa autenticación, autorización, limitación de tasa, controles basados en IP, gestión de bots o controles legales. Robots.txt sigue siendo útil, pero pertenece a una estrategia más amplia de protección de contenido.

Esto es similar a otros problemas de gobernanza web: el control visible rara vez es todo el control. Si tu organización ya tiene uso no gestionado de IA internamente, se aplica el mismo principio; una rápida auditoría de IA en la sombra suele ser más útil que fingir que un único documento de política resuelve el problema.

Empieza por tu decisión de política

Antes de editar el archivo, decide qué intentas bloquear realmente.

Hay al menos cuatro cosas distintas que la gente quiere decir con “scraper de IA”:

  • Rastreadores usados para recopilar datos de entrenamiento.
  • Rastreadores de búsqueda de IA o de motores de respuestas.
  • Recuperadores activados por el usuario, como cuando alguien pide a un producto de IA que resuma una URL.
  • Scrapers genéricos que fingen ser navegadores ordinarios.

Puede que quieras bloquearlos todos. O puede que quieras conservar la visibilidad en búsquedas mientras optas por no participar en el entrenamiento de modelos. No son la misma política.

Por ejemplo, OpenAI documenta agentes de usuario separados para distintos fines, incluidos GPTBot, ChatGPT-User y OAI-SearchBot. Google usa Google-Extended como token de control para algunos casos de uso de Gemini y Vertex AI, mientras que el rastreo normal de Google Search lo gestionan otros agentes de usuario de Googlebot.

Esa separación es importante. Si bloqueas agentes de usuario amplios sin cuidado, puedes perjudicar la visibilidad normal en buscadores mientras intentas bloquear el entrenamiento de IA.

Una plantilla razonable de robots.txt para bloquear IA

Aquí tienes un punto de partida conservador para bloquear varios rastreadores relacionados con IA documentados habitualmente, dejando tranquilos a los rastreadores de búsqueda generales:

# AI training and AI product crawlers
User-agent: GPTBot
Disallow: /

User-agent: ChatGPT-User
Disallow: /

User-agent: OAI-SearchBot
Disallow: /

User-agent: Google-Extended
Disallow: /

User-agent: CCBot
Disallow: /

User-agent: ClaudeBot
Disallow: /

User-agent: Claude-Web
Disallow: /

User-agent: PerplexityBot
Disallow: /

User-agent: Amazonbot
Disallow: /

User-agent: Bytespider
Disallow: /

User-agent: Meta-ExternalAgent
Disallow: /

# Default rule for other crawlers
User-agent: *
Allow: /

Esto no es una lista universal mágica. Es un patrón mantenible.

Algunas notas:

  • Disallow: / significa “no rastrees ninguna ruta”.
  • User-agent: * se aplica a rastreadores que no coinciden con un grupo más específico.
  • Allow: / no es estrictamente necesario para el grupo predeterminado, pero deja clara tu intención.
  • Mantén los comentarios breves. Algunos analizadores son tolerantes, pero robots.txt debe seguir siendo aburrido.
  • No incluyas URL privadas en robots.txt. El archivo es público, y listar rutas sensibles puede anunciarlas.

Vale la pena repetir el último punto. Robots.txt no es un mecanismo de secreto. Si /client-contracts/ no debería ser público, protégelo con autenticación. No te limites a desautorizarlo.

Ten cuidado con Google-Extended

Google-Extended se malinterpreta con frecuencia. No es lo mismo que bloquear Google Search.

Según la documentación de Google, Google-Extended es un token de producto independiente que los editores pueden usar para gestionar si el contenido del sitio puede ayudar a mejorar ciertas capacidades de Gemini y Vertex AI. Bloquearlo no debería, por sí solo, impedir que Googlebot rastree para Search.

Dicho esto, no sustituyas todas las directivas de Google por un bloqueo amplio como este a menos que realmente sea lo que quieres:

User-agent: Googlebot
Disallow: /

Eso indicaría al rastreador principal de Google Search que no rastree tu sitio. Para la mayoría de los sitios web públicos, eso no es lo que quieres.

La misma distinción se aplica en otros lugares. Algunos proveedores separan los rastreadores de entrenamiento de la navegación activada por usuarios o de los rastreadores de búsqueda de IA. Otros no. Tienes que leer la documentación de los bots que te importan y tratar tu robots.txt como un archivo vivo, no como una casilla de verificación de una sola vez.

Prueba el archivo como código de producción

Robots.txt parece simple, por eso es fácil romperlo.

Los errores comunes incluyen:

  • Subirlo al lugar equivocado, como /assets/robots.txt en lugar de /robots.txt.
  • Usar comillas tipográficas copiadas de un editor de documentos.
  • Bloquear todos los rastreadores con User-agent: * y Disallow: / por accidente.
  • Suponer que el archivo de un dominio se aplica a otro subdominio.
  • Olvidar que los hosts http://, https://, www y sin www pueden gestionarse de forma diferente según tu configuración.

Para sitios multidominio, comprueba cada host canónico. Un archivo robots en https://www.example.com/robots.txt no gobierna automáticamente https://app.example.com/robots.txt.

Al depurar, inspecciona la respuesta HTTP real, no solo lo que muestra la vista previa de tu CMS. Quieres una respuesta 200 OK, tipo de contenido text/plain si es posible, y exactamente el archivo que esperas. Si hay redirecciones, caché o reglas de CDN de por medio, inspeccionar los encabezados en bruto ayuda. El flujo de trabajo de depurar redirecciones y encabezados HTTP en producción se aplica directamente aquí.

Añade controles del lado del servidor para bots que ignoran las reglas

Si el rastreador cumple las reglas, robots.txt es la señal más limpia. Si el rastreador es abusivo, necesitas hacer cumplir la política.

Los controles prácticos incluyen:

Limitación de tasa

Establece umbrales para patrones de solicitud inusuales: demasiadas páginas por minuto, recorrido profundo de paginación, 404 repetidos o un volumen alto de solicitudes desde un conjunto pequeño de IP. Los límites de tasa deben ser lo bastante generosos como para no castigar a usuarios reales y lo bastante estrictos como para encarecer la extracción masiva.

Filtrado de user-agent

Puedes bloquear agentes de usuario documentados de rastreadores de IA en el servidor web, proxy inverso, CDN o capa de aplicación. Esto es más fuerte que robots.txt porque devuelve una respuesta de denegación real.

Por ejemplo, Nginx puede bloquear un patrón de agente de usuario, aunque las reglas de producción deben probarse con cuidado:

if ($http_user_agent ~* "GPTBot|CCBot|ClaudeBot|Bytespider") {
    return 403;
}

No es infalible. Las cadenas de agente de usuario son fáciles de falsificar. Pero detiene el tráfico honesto o perezoso y reduce la carga.

Controles de IP y ASN

Algunos operadores publican rangos de IP, pero muchos ecosistemas de scrapers no lo hacen. El bloqueo basado en IP puede funcionar contra abusos evidentes, especialmente desde rangos de alojamiento en la nube sin tráfico normal de usuarios, pero también puede crear falsos positivos. Usa registros antes que reglas.

Autenticación y muros de pago

Si el contenido no debe copiarse a escala, no pongas el contenido completo en una URL pública. Robots.txt no es adecuado para material confidencial, bases de datos con licencia, comunidades privadas o archivos de pago.

Minimización de contenido

A veces la mejor protección es arquitectónica. No expongas API innecesarias, cargas JSON grandes, metadatos ocultos, endpoints de borradores o archivos completos si la página pública solo necesita un pequeño subconjunto. Los sitios con muchas imágenes también deberían pensar qué metadatos publican; la lógica de privacidad de eliminar metadatos EXIF antes de compartir fotos en línea también se aplica a las operaciones de contenido.

Usa etiquetas meta robots para reglas a nivel de página

Robots.txt controla el rastreo. Las etiquetas meta robots y los encabezados X-Robots-Tag controlan la indexación y el comportamiento de los fragmentos para motores de búsqueda y rastreadores que cumplen las reglas.

Por ejemplo:

<meta name="robots" content="noindex, noarchive">

O como encabezado HTTP:

X-Robots-Tag: noindex, noarchive

No son escudos específicos contra la IA. Son útiles cuando quieres que una página sea accesible pero no esté indexada. Sin embargo, si bloqueas a un rastreador para que no obtenga una página en robots.txt, quizá nunca vea la etiqueta meta a nivel de página. No confíes en una etiqueta noindex en una URL que el rastreador tiene prohibido rastrear.

La regla aproximada:

  • Usa robots.txt para reducir o impedir el rastreo.
  • Usa meta robots o X-Robots-Tag para controlar el comportamiento de indexación.
  • Usa controles del lado del servidor para hacer cumplir el acceso.

Supervisa los registros después de publicar

Publicar el archivo es solo el primer paso. Después, revisa tus registros.

Busca:

  • Solicitudes a /robots.txt desde los agentes de usuario que nombraste.
  • Rastreo continuado después de servir reglas de desautorización.
  • Agentes de usuario sospechosos con alto volumen.
  • Agentes de usuario que parecen navegadores solicitando miles de páginas en secuencia.
  • Acceso repetido a feeds, sitemaps, páginas de búsqueda y paginación.

Si un bot solicita robots.txt, ve una desautorización completa y luego se detiene, robots.txt hizo su trabajo. Si continúa, mueve ese bot a la aplicación de controles: límites de tasa, bloqueos o autenticación.

Revisa también la exposición de tu sitemap. Los sitemaps son útiles para los motores de búsqueda, pero también son mapas convenientes para los scrapers. Eso no significa que debas eliminarlos de sitios ordinarios. Sí significa que no deberías incluir URL que no quieres que los sistemas públicos descubran.

Mantén el archivo pequeño y revisado

Robots.txt tiende a degradarse. Un equipo de marketing añade un micrositio de campaña. Un desarrollador añade una ruta de staging. Un proveedor cambia el nombre de su rastreador. Dos años después nadie sabe por qué existen la mitad de las reglas.

Trátalo como configuración:

  • Guárdalo en control de versiones cuando sea posible.
  • Añade un comentario breve para cada grupo de rastreadores de IA.
  • Revísalo trimestralmente.
  • Consulta la documentación del proveedor antes de añadir reglas amplias.
  • Pruébalo después de cambios en CDN, CMS o hosting.

Si tu sitio publica contenido asistido por IA, separa también la política de rastreadores de la transparencia editorial. Bloquear scrapers de IA trata sobre acceso y reutilización. La divulgación trata sobre la confianza del lector. Se solapan éticamente, pero no son el mismo control. Un enfoque práctico de divulgación se cubre en cómo es una divulgación honesta de IA en un sitio web pequeño.

<!-- tool-cta:start -->

💡 Prueba esto: Después de agregar reglas para rastreadores de IA, confirma la sintaxis con Robots.txt Tester para no bloquear accidentalmente también bots legítimos.

<!-- tool-cta:end -->

En resumen

Un buen archivo robots.txt bloqueará rastreadores de IA que cumplen las reglas. No detendrá el scraping decidido, cadenas de user-agent copiadas, navegadores comprometidos ni a personas que pegan manualmente tu contenido en sistemas de IA.

Eso no lo vuelve inútil. Lo convierte en una capa.

Escribe reglas explícitas para rastreadores de IA documentados. Evita bloqueos amplios que dañen la visibilidad en buscadores. Prueba el archivo servido, no el borrador. Observa los registros. Aplica controles del lado del servidor cuando el comportamiento pase de no deseado a abusivo.

La web siempre ha funcionado con una mezcla de protocolo, normas y aplicación. Robots.txt es la capa de normas. Úsala, pero no la confundas con un muro.

Preguntas frecuentes

¿Puede robots.txt impedir que las empresas de IA entrenen con mi contenido?
Puede indicar a los rastreadores de IA que cumplen las reglas que no rastreen tu sitio con ese fin. No puede impedir técnicamente que scrapers no conformes accedan a páginas públicas, y no elimina contenido ya recopilado.
¿Debería bloquear User-agent: * para detener todos los scrapers?
Normalmente no. `User-agent: *` se aplica a todos los rastreadores que no coinciden con una regla más específica. `Disallow: /` bajo ese grupo puede bloquear el rastreo de buscadores ordinarios y otros bots útiles.
¿Google-Extended es lo mismo que Googlebot?
No. Google documenta `Google-Extended` como un token de producto separado para controlar algunos usos de Gemini y Vertex AI. Bloquear `Googlebot` es una acción mucho más amplia y puede afectar al rastreo de Google Search.
¿Qué pasa si un scraper de IA ignora robots.txt?
Pasa de la señalización a la aplicación. Usa limitación de tasa, bloqueos de user-agent, controles de IP o ASN cuando corresponda, gestión de bots, autenticación y una exposición más estricta de API/contenido.
¿Necesito tanto robots.txt como etiquetas meta robots?
Resuelven problemas distintos. Robots.txt controla el rastreo. Las etiquetas meta robots y los encabezados `X-Robots-Tag` controlan la indexación y el comportamiento de los fragmentos para rastreadores que cumplen las reglas y pueden acceder a la página.

Fuentes y lecturas adicionales

  1. RFC 9309: The Robots Exclusion Protocol
  2. Google Search Central: robots.txt specifications
  3. OpenAI: GPTBot documentation
  4. Google Search Central: Google-Extended
Sobre el autor
The Wux Webtools Team

Última actualización:

Sigue leyendo