Scraping

Qui bloque les robots d'exploration IA ? GPTBot, ClaudeBot et consorts sur les 10 000 premiers sites

Nous avons lu le fichier robots.txt des 10 000 premiers domaines. Un site sur cinq bloque au moins un robot d'exploration IA, tandis que presque tous accueillent encore les moteurs de recherche.

Chris Collins

6 octobre 2026 · 11 min de lecture

Les entreprises d’IA envoient leurs propres robots d’exploration à travers le web, et les propriétaires de sites répondent via robots.txt, le fichier texte brut qui indique aux visiteurs automatisés ce qu’ils peuvent récupérer. Chaque grande entreprise d’IA publie les noms sous lesquels répondent ses robots, ce qui permet à un site d’en bloquer un, plusieurs ou tous tout en continuant d’accueillir les moteurs de recherche.

Nous voulions une image actuelle de qui fait quoi. Le 6 octobre 2026, nous avons interrogé le robots.txt de chacun des 10 000 principaux domaines du classement Tranco, évalué les règles pour 16 robots d’IA et deux robots de moteurs de recherche, et relevé lesquels chaque site laisse accéder à sa page d’accueil. Ce guide présente les résultats, l’évaluateur que nous avons écrit, et ce que cela signifie pour quiconque collecte des données web.

Principaux enseignements

  • 5 754 des 10 000 principaux domaines ont servi un robots.txt que nous avons pu lire. Un sur cinq, 20,4%, bloque au moins un robot d’IA depuis sa page d’accueil.
  • Les robots les plus bloqués sont CCBot de Common Crawl (16,2%), Bytespider de ByteDance (15,3%), GPTBot d’OpenAI (15,1%) et ClaudeBot d’Anthropic (14,0%).
  • Les moteurs de recherche sont presque jamais bloqués : Googlebot par 2,6% et Bingbot par 3,3%, la plupart de ces sites bloquant tous les robots. 17,3% des sites laissent entrer les deux moteurs de recherche tout en bloquant au moins un robot d’IA.
  • De nombreux sites séparent l’entraînement de la réponse. Sur les 871 sites bloquant GPTBot, 345 autorisent encore ChatGPT-User, qui récupère les pages lorsqu’une personne interroge ChatGPT à leur sujet.
  • Plus le site est important, plus il est susceptible de bloquer : 29,5% des 1 000 premiers bloquent au moins un robot d’IA, contre 18,8% de ceux classés entre 5 001 et 10 000.

Comment nous avons mesuré

Pour chaque domaine, nous avons interrogé https://<domain>/robots.txt, avec repli sur l’hôte www., avec un User-Agent qui nous nommait et renvoyait vers notre site, à un rythme modéré. Nous avons ensuite évalué les règles pour chaque robot par rapport au chemin de la page d’accueil /.

Nous avons suivi la RFC 9309, la norme robots.txt, plutôt que le raccourci que prennent la plupart des bibliothèques :

  • Un robot utilise chaque groupe qui le nomme, et ne se rabat sur le groupe * que si aucun groupe ne le nomme.
  • La règle correspondante la plus longue l’emporte, et Allow l’emporte en cas d’égalité.
  • Une réponse 4xx signifie qu’il n’y a pas de règles ; une réponse 5xx signifie que tout est interdit.

L’analyseur intégré de Python applique la première règle correspondante plutôt que la plus longue, ce qui conduit à mal interpréter des fichiers courants tels que Disallow: / suivi de Allow: /$, nous avons donc écrit notre propre évaluateur et l’avons testé par rapport aux cas de la norme. Nous avons considéré un robot comme « bloqué » lorsqu’il ne peut pas récupérer la page d’accueil, et avons noté séparément si le fichier nomme le robot ou ne le bloque qu’à travers *.

Sur les 10 000 domaines, 5 877 ont renvoyé un robots.txt analysable et 5 754 d’entre eux étaient des sites distincts ; le reste était principalement des hôtes d’API, des réseaux de diffusion de contenu et d’autres domaines qui ne servent aucun site web. 460 ont répondu avec une page HTML au lieu d’un fichier robots, ce que la norme traite comme l’absence de règles.

Ce que nous avons trouvé

RobotOpérateurObjectifBloqué depuis la page d’accueilNommé dans le fichier
CCBotCommon CrawlArchive web ouverte largement utilisée pour l’entraînement de l’IA16,2%15,2%
BytespiderByteDanceExploration pour les modèles d’IA15,3%13,1%
GPTBotOpenAIEntraînement15,1%17,7%
ClaudeBotAnthropicEntraînement14,0%15,1%
meta-externalagentMetaEntraînement et produits d’IA12,5%10,8%
Google-ExtendedGoogleEntraînement et ancrage de Gemini, distinct de Search12,3%13,5%
anthropic-aiAnthropicAncien jeton Anthropic11,7%9,9%
Applebot-ExtendedAppleEntraînement, distinct d’Applebot11,7%10,1%
AmazonbotAmazonExploration pour les services Amazon11,7%10,3%
cohere-aiCohereProduits d’IA11,7%9,2%
PerplexityBotPerplexityIndex de recherche pour les réponses10,8%12,7%
ChatGPT-UserOpenAIRécupère une page quand un utilisateur demande9,4%11,7%
Perplexity-UserPerplexityRécupère une page quand un utilisateur demande7,7%6,2%
OAI-SearchBotOpenAIRésultats de recherche dans ChatGPT7,5%9,9%
Claude-UserAnthropicRécupère une page quand un utilisateur demande7,3%6,1%
Claude-SearchBotAnthropicRésultats de recherche dans Claude7,2%6,1%
BingbotMicrosoftRecherche web3,3%7,4%
GooglebotGoogleRecherche web2,6%9,1%

Les pourcentages concernent les 5 754 sites. « Nommé » comptabilise les fichiers qui désignent le robot par son nom, que ce soit pour le bloquer ou pour l’autoriser, ce qui explique pourquoi les deux colonnes diffèrent : certains sites nomment un robot uniquement pour l’accueillir, et 153 sites bloquent tous les robots via * sans en nommer aucun.

Trois tendances

Les robots d’IA sont bloqués ; les moteurs de recherche ne le sont pas. 17,3% des sites laissent Googlebot et Bingbot accéder à la page d’accueil tout en bloquant au moins un robot d’IA. Seulement 0,2% bloquent Googlebot par son nom. Les propriétaires de sites tracent une ligne claire entre être indexé pour la recherche et être collecté pour l’IA.

L’entraînement est plus bloqué que la réponse. Les robots qui collectent des données d’entraînement sont nettement plus souvent bloqués que ceux qui récupèrent une page parce qu’une personne a posé une question à son sujet : GPTBot sur 15,1% des sites contre 9,4% pour ChatGPT-User, ClaudeBot sur 14,0% contre 7,3% pour Claude-User. Sur les 871 sites qui bloquent GPTBot, 345 autorisent encore ChatGPT-User, et sur les 806 qui bloquent ClaudeBot, 390 autorisent encore Claude-User. En d’autres termes, de nombreux sites veulent apparaître dans les réponses d’IA sans contribuer à l’entraînement.

Le blocage augmente avec la taille. Parmi les 1 000 premiers sites, 29,5% bloquent au moins un robot d’IA et 21,0% bloquent GPTBot. Parmi les sites classés entre 5 001 et 10 000, ces chiffres tombent à 18,8% et 13,9%. Les grands éditeurs et plateformes, dont le contenu est le plus précieux pour l’entraînement, sont ceux qui se retirent le plus souvent.

Seulement 5,2% des sites bloquent les cinq robots d’IA les plus importants (GPTBot, ClaudeBot, Google-Extended, CCBot et PerplexityBot) tout en continuant d’autoriser Googlebot. La plupart des retraits sont sélectifs : un site bloque certaines entreprises et pas d’autres, ou bloque l’entraînement tout en autorisant la réponse.

Le code

Le module ci-dessous analyse un fichier robots.txt et l’évalue pour n’importe quel robot selon les règles de la RFC 9309. Il n’a aucune dépendance.

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)

Et pour vérifier un site, voici le nôtre :

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)}")

Notre fichier nomme les principaux robots d’IA et les autorise explicitement, si bien que les cinq reviennent autorisés, et Googlebot est autorisé via *. Nous avons testé l’évaluateur sur 16 cas, y compris la préséance de la correspondance la plus longue, la règle d’égalité, les motifs avec caractère générique et fin de chemin, les groupes fusionnés et les fichiers vides.

Ce que cela signifie pour la collecte de données

  • Lisez robots.txt par robot, pas seulement pour *. Un site qui accueille tout le monde via * peut tout de même bloquer un robot nommé, et une part croissante du web fait exactement cela.
  • Identifiez votre collecteur honnêtement. Les règles robots ne fonctionnent que si les robots disent qui ils sont. Si vous collectez sous votre propre nom, vérifiez les règles pour ce nom et pour l’objectif pour lequel vous collectez.
  • Respectez la distinction que tracent les sites. De nombreux sites séparent désormais la recherche, l’entraînement et la récupération à la demande. Un collecteur qui recueille des données d’entraînement devrait considérer qu’un blocage des robots d’entraînement s’applique à lui, même si son propre nom n’est pas listé.
  • Vérifiez régulièrement. Les retraits changent à mesure que les sites mettent à jour leurs fichiers ; une liste construite il y a six mois sera dépassée.

Notre guide sur robots.txt, les retraits d’IA et les signaux de réservation couvre les autres signaux que les sites utilisent et le contexte juridique en Europe, et les bonnes pratiques de web scraping couvre la collecte sans nuire aux sites visités. Les pipelines de données d’entraînement devant respecter les retraits au moment de la récupération sont couverts dans construire des jeux de données d’entraînement à grande échelle.

Limites de la mesure

  • Page d’accueil uniquement. Nous avons évalué le chemin /. De nombreux sites bloquent les robots d’IA depuis des sections spécifiques, comme les articles ou les pages de recherche, tout en laissant la page d’accueil ouverte, de sorte que la part de sites restreignant les robots d’IA quelque part est plus élevée que ces chiffres.
  • robots.txt uniquement. Les sites signalent également via des en-têtes HTTP, des balises meta et des conditions d’utilisation, et appliquent ces règles par la gestion des bots. Un site qui ne bloque pas un robot dans robots.txt peut tout de même le bloquer au niveau du réseau.
  • Un seul instantané. Il s’agit des fichiers tels que servis le 6 octobre 2026, depuis un seul réseau.
  • Sites les plus importants uniquement. Les 10 000 principaux domaines ne représentent pas l’ensemble du web ; les sites plus petits peuvent se comporter différemment.

En résumé

Un site parmi les plus importants sur cinq indique désormais à au moins un robot d’IA de rester à l’écart de sa page d’accueil, alors que presque tous continuent d’accueillir les moteurs de recherche. Les retraits sont sélectifs : les robots d’entraînement sont bloqués plus souvent que ceux qui récupèrent des pages pour les utilisateurs, et les plus grands sites bloquent le plus.

Pour quiconque collecte des données web, la leçon pratique est de lire robots.txt pour le robot et l’objectif spécifiques concernés, avec un évaluateur qui suit la norme, et de le revérifier à mesure que le web continue de redessiner ces lignes.

Sources et références

Prêt à commencer ?

Essayez les proxies résidentiels de Shifter, 205M+ IPs, 195+ pays, à partir de 0,75 $/GB.

Commencer