Scraping

¿Quién bloquea a los rastreadores de IA? GPTBot, ClaudeBot y compañía en los 10.000 sitios principales

Leímos el robots.txt de los 10.000 dominios principales. Uno de cada cinco sitios bloquea al menos un rastreador de IA, mientras que casi todos siguen dando la bienvenida a los motores de búsqueda.

Chris Collins

6 de octubre de 2026 · 11 min de lectura

Las empresas de IA envían sus propios rastreadores por la web, y los propietarios de los sitios responden mediante robots.txt, el archivo de texto plano que indica a los visitantes automatizados qué pueden obtener. Cada gran empresa de IA publica los nombres con los que responden sus rastreadores, de modo que un sitio puede bloquear uno, varios o todos ellos mientras sigue dando la bienvenida a los motores de búsqueda.

Queríamos tener una imagen actual de quién lo hace. El 6 de octubre de 2026 solicitamos el robots.txt de cada uno de los 10.000 dominios principales del ranking Tranco, evaluamos las reglas para 16 rastreadores de IA y dos rastreadores de búsqueda, y registramos cuáles de ellos deja entrar cada sitio en su página de inicio. Esta guía comparte los resultados, el evaluador que escribimos y lo que significan para cualquiera que recopile datos web.

Conclusiones clave

  • 5.754 de los 10.000 dominios principales sirvieron un robots.txt que pudimos leer. Uno de cada cinco de ellos, el 20,4%, bloquea al menos un rastreador de IA en su página de inicio.
  • Los rastreadores más bloqueados son CCBot de Common Crawl (16,2%), Bytespider de ByteDance (15,3%), GPTBot de OpenAI (15,1%) y ClaudeBot de Anthropic (14,0%).
  • Los motores de búsqueda casi nunca se bloquean: Googlebot en el 2,6% y Bingbot en el 3,3%, la mayoría de ellos sitios que bloquean todos los rastreadores. El 17,3% de los sitios deja entrar a ambos motores de búsqueda mientras bloquea al menos un rastreador de IA.
  • Muchos sitios separan el entrenamiento de la respuesta. De los 871 sitios que bloquean GPTBot, 345 siguen permitiendo ChatGPT-User, que obtiene páginas cuando una persona pregunta a ChatGPT sobre ellas.
  • Cuanto más grande es el sitio, más probable es que bloquee: el 29,5% de los 1.000 principales bloquea al menos un rastreador de IA, frente al 18,8% de los clasificados entre el puesto 5.001 y el 10.000.

Cómo medimos

Para cada dominio solicitamos https://<domain>/robots.txt, recurriendo al host www. si era necesario, con un User-Agent que nos identificaba y enlazaba a nuestro sitio, a un ritmo moderado. A continuación evaluamos las reglas para cada rastreador respecto a la ruta de la página de inicio /.

Seguimos la RFC 9309, el estándar de robots.txt, en lugar del atajo que toman la mayoría de las bibliotecas:

  • Un rastreador utiliza todos los grupos que lo nombran, y recurre al grupo * solo cuando ningún grupo lo hace.
  • Gana la regla coincidente más larga, y Allow gana en caso de empate.
  • Una respuesta 4xx significa que no hay reglas; una respuesta 5xx significa que todo está prohibido.

El analizador integrado de Python aplica la primera regla coincidente en lugar de la más larga, lo que interpreta mal archivos comunes como Disallow: / seguido de Allow: /$, así que escribimos nuestro propio evaluador y lo probamos contra los casos del estándar. Consideramos un rastreador “bloqueado” cuando no puede obtener la página de inicio, y registramos por separado si el archivo nombra al rastreador o lo bloquea solo mediante *.

De los 10.000 dominios, 5.877 devolvieron un robots.txt analizable y 5.754 de ellos eran sitios distintos; el resto eran en su mayoría hosts de API, redes de distribución de contenido y otros dominios que no sirven ningún sitio web. 460 respondieron con una página HTML en lugar de un archivo robots, lo que el estándar trata como ausencia de reglas.

Lo que encontramos

RastreadorOperadorPropósitoBloqueado en la página de inicioNombrado en el archivo
CCBotCommon CrawlArchivo web abierto ampliamente usado para entrenamiento de IA16,2%15,2%
BytespiderByteDanceRastreo para modelos de IA15,3%13,1%
GPTBotOpenAIEntrenamiento15,1%17,7%
ClaudeBotAnthropicEntrenamiento14,0%15,1%
meta-externalagentMetaEntrenamiento y productos de IA12,5%10,8%
Google-ExtendedGoogleEntrenamiento y fundamentación de Gemini, separado de Search12,3%13,5%
anthropic-aiAnthropicToken antiguo de Anthropic11,7%9,9%
Applebot-ExtendedAppleEntrenamiento, separado de Applebot11,7%10,1%
AmazonbotAmazonRastreo para servicios de Amazon11,7%10,3%
cohere-aiCohereProductos de IA11,7%9,2%
PerplexityBotPerplexityÍndice de búsqueda para respuestas10,8%12,7%
ChatGPT-UserOpenAIObtiene una página cuando un usuario pregunta9,4%11,7%
Perplexity-UserPerplexityObtiene una página cuando un usuario pregunta7,7%6,2%
OAI-SearchBotOpenAIResultados de búsqueda en ChatGPT7,5%9,9%
Claude-UserAnthropicObtiene una página cuando un usuario pregunta7,3%6,1%
Claude-SearchBotAnthropicResultados de búsqueda en Claude7,2%6,1%
BingbotMicrosoftBúsqueda web3,3%7,4%
GooglebotGoogleBúsqueda web2,6%9,1%

Los porcentajes son sobre los 5.754 sitios. “Nombrado” cuenta los archivos que se dirigen al rastreador por su nombre, ya sea para bloquearlo o para permitirlo, razón por la cual las dos columnas difieren: algunos sitios nombran a un rastreador solo para darle la bienvenida, y 153 sitios bloquean todos los rastreadores mediante * sin nombrar ninguno.

Tres patrones

Se bloquea a los rastreadores de IA; no a los motores de búsqueda. El 17,3% de los sitios deja entrar tanto a Googlebot como a Bingbot en la página de inicio mientras bloquea al menos un rastreador de IA. Solo el 0,2% bloquea a Googlebot por nombre. Los propietarios de sitios están trazando una línea clara entre ser indexados para la búsqueda y ser recopilados para la IA.

El entrenamiento se bloquea más que la respuesta. Los rastreadores que recopilan datos de entrenamiento se bloquean notablemente más a menudo que los que obtienen una página porque una persona ha preguntado sobre ella: GPTBot en el 15,1% de los sitios frente al 9,4% de ChatGPT-User, ClaudeBot en el 14,0% frente al 7,3% de Claude-User. De los 871 sitios que bloquean GPTBot, 345 siguen permitiendo ChatGPT-User, y de los 806 que bloquean ClaudeBot, 390 siguen permitiendo Claude-User. Muchos sitios, en otras palabras, quieren aparecer en las respuestas de IA sin contribuir al entrenamiento.

El bloqueo aumenta con el tamaño. Entre los 1.000 sitios principales, el 29,5% bloquea al menos un rastreador de IA y el 21,0% bloquea a GPTBot. Entre los sitios clasificados entre el puesto 5.001 y el 10.000, esas cifras bajan al 18,8% y al 13,9%. Los grandes editores y plataformas, cuyo contenido es más valioso para el entrenamiento, son los que con mayor probabilidad optan por excluirse.

Solo el 5,2% de los sitios bloquea los cinco rastreadores de IA más destacados (GPTBot, ClaudeBot, Google-Extended, CCBot y PerplexityBot) mientras sigue permitiendo a Googlebot. La mayoría de las exclusiones son selectivas: un sitio bloquea a algunas empresas y no a otras, o bloquea el entrenamiento y permite la respuesta.

El código

El módulo siguiente analiza un archivo robots.txt y lo evalúa para cualquier rastreador según las reglas de la RFC 9309. No tiene dependencias.

import re
from urllib.parse import quote, unquote


def parse_groups(text):
    """Split robots.txt into groups: a list of (user-agent tokens, [(allow, path)])."""
    groups, agents, rules, in_rules = [], [], [], False
    for raw in text.splitlines():
        line = raw.split("#", 1)[0].strip()
        if ":" not in line:
            continue
        key, value = (part.strip() for part in line.split(":", 1))
        key = key.lower()
        if key == "user-agent":
            if in_rules:                      # a user-agent line after rules starts a new group
                groups.append((agents, rules))
                agents, rules, in_rules = [], [], False
            agents.append(value.lower())
        elif key in ("allow", "disallow") and agents:
            in_rules = True
            if value:                         # an empty Disallow allows everything
                rules.append((key == "allow", value))
    if agents:
        groups.append((agents, rules))
    return groups


def rules_for(groups, product_token):
    """RFC 9309: use every group naming the crawler's product token; otherwise the '*' groups."""
    token = product_token.lower()
    named = [r for agents, rules in groups for r in rules if token in agents]
    if any(token in agents for agents, _ in groups):
        return named
    return [r for agents, rules in groups for r in rules if "*" in agents]


def _pattern(path):
    regex = "".join(".*" if ch == "*" else re.escape(ch) for ch in path.rstrip("$"))
    return re.compile(regex + ("$" if path.endswith("$") else ""))


def allowed(groups, product_token, path="/"):
    """Longest matching rule wins; Allow wins a tie (RFC 9309, section 2.2.2)."""
    target = quote(unquote(path), safe="/?=&*$%:@!,;~+")
    best_len, verdict = -1, True
    for allow, rule in rules_for(groups, product_token):
        rule = quote(unquote(rule), safe="/?=&*$%:@!,;~+")
        if _pattern(rule).match(target):
            length = len(rule)
            if length > best_len or (length == best_len and allow):
                best_len, verdict = length, allow
    return verdict


def names(groups, product_token):
    """Does the file address this crawler by name, rather than only through '*'?"""
    return any(product_token.lower() in agents for agents, _ in groups)

Y para comprobar un sitio, aquí el nuestro:

import requests

from robots import parse_groups, allowed, names

text = requests.get("https://shifter.io/robots.txt", timeout=15,
                    headers={"User-Agent": "ExampleSurvey/1.0 (+https://example.com/bot)"}).text
groups = parse_groups(text)
for crawler in ["GPTBot", "ClaudeBot", "Google-Extended", "CCBot", "Googlebot"]:
    print(f"{crawler:16} homepage allowed: {allowed(groups, crawler, '/')}  named: {names(groups, crawler)}")

Nuestro archivo nombra a los principales rastreadores de IA y los permite explícitamente, así que los cinco aparecen como permitidos, y Googlebot se permite mediante *. Probamos el evaluador contra 16 casos, incluyendo la precedencia de coincidencia más larga, la regla de empate, patrones con comodines y fin de ruta, grupos combinados y archivos vacíos.

Lo que significa para la recopilación de datos

  • Lee el robots.txt por rastreador, no solo para *. Un sitio que da la bienvenida a todos mediante * puede seguir bloqueando a un rastreador nombrado, y una proporción creciente de la web hace exactamente eso.
  • Identifica a tu recopilador con honestidad. Las reglas de robots solo funcionan si los rastreadores dicen quiénes son. Si recopilas bajo tu propio nombre, comprueba las reglas para ese nombre y para el propósito para el que recopilas.
  • Respeta la distinción que trazan los sitios. Muchos sitios separan ahora la búsqueda, el entrenamiento y la obtención bajo demanda. Un recopilador que reúne datos de entrenamiento debería tratar un bloqueo a rastreadores de entrenamiento como aplicable a él, aunque su propio nombre no esté listado.
  • Vuelve a comprobarlo con regularidad. Las exclusiones cambian a medida que los sitios actualizan sus archivos; una lista elaborada hace seis meses estará desactualizada.

Nuestra guía sobre robots.txt, exclusiones de IA y señales de reserva cubre las otras señales que usan los sitios y el contexto legal en Europa, y buenas prácticas de web scraping cubre cómo recopilar sin perjudicar a los sitios que visitas. Las canalizaciones de datos de entrenamiento que necesitan respetar las exclusiones en el momento de la obtención se tratan en construcción de conjuntos de datos de entrenamiento a gran escala.

Límites de la medición

  • Solo página de inicio. Evaluamos la ruta /. Muchos sitios bloquean a los rastreadores de IA en secciones específicas, como artículos o páginas de búsqueda, mientras dejan abierta la página de inicio, así que la proporción de sitios que restringen a los rastreadores de IA en algún lugar es mayor que estas cifras.
  • Solo robots.txt. Los sitios también señalizan mediante cabeceras HTTP, etiquetas meta y términos de servicio, y aplican la restricción mediante gestión de bots. Un sitio que no bloquea a un rastreador en robots.txt puede seguir bloqueándolo a nivel de red.
  • Una instantánea. Estos son los archivos tal como se sirvieron el 6 de octubre de 2026, desde una sola red.
  • Solo sitios principales. Los 10.000 dominios principales no son toda la web; los sitios más pequeños pueden comportarse de forma diferente.

La conclusión

Uno de cada cinco sitios principales dice ahora a al menos un rastreador de IA que se mantenga alejado de su página de inicio, mientras que casi todos siguen dando la bienvenida a los motores de búsqueda. Las exclusiones son selectivas: los rastreadores de entrenamiento se bloquean más a menudo que los que obtienen páginas para los usuarios, y los sitios más grandes son los que más bloquean.

Para cualquiera que recopile datos web, la lección práctica es leer el robots.txt para el rastreador y propósito concretos implicados, con un evaluador que siga el estándar, y volver a comprobarlo a medida que la web sigue redibujando estas líneas.

Fuentes y referencias

¿Listo para empezar?

Prueba los proxies residenciales de Shifter, más de 205M IPs, más de 195 países, desde 0,75 $/GB.

Comenzar