Vous voyez passer GPTBot dans vos journaux et la question tombe : faut-il le bloquer ? Impossible d'y répondre tant qu'on n'a pas séparé trois choses que le mot « crawler IA » confond systématiquement.
Trois familles, trois décisions distinctes
- Les robots d'entraînement. Ils collectent du texte pour constituer des jeux de données. Ils ne vous envoient aucun trafic et ne vous citent pas dans l'immédiat ; ils alimentent la mémoire des futurs modèles. Bloquer, c'est protéger son contenu et sortir du chemin long.
- Les robots d'indexation. Ils construisent l'index dans lequel un assistant va chercher au moment de répondre. Les bloquer revient à demander à ne pas être trouvé lorsqu'une réponse se construit.
- Les récupérations déclenchées par un humain. Un utilisateur colle votre lien ou pose une question dont votre page est la réponse candidate ; l'assistant va la chercher sur-le-champ. Ce n'est pas un robot d'aspiration, c'est votre prospect avec un intermédiaire. Le bloquer est presque toujours une erreur.
Le tableau de référence
Les opérateurs marqués « documenté » publient eux-mêmes la liste de leurs agents et la manière de les contrôler : OpenAI, Anthropic, Perplexity et Google.
| User-Agent | Opérateur | Famille | Effet du blocage |
|---|---|---|---|
| GPTBot | OpenAI | Entraînement | Sort des futurs jeux d'entraînement |
| OAI-SearchBot | OpenAI | Indexation | Absent des recherches de ChatGPT |
| ChatGPT-User | OpenAI | Déclenché par un humain | L'utilisateur reçoit une erreur à votre place |
| ClaudeBot | Anthropic | Entraînement | Sort des futurs jeux d'entraînement |
| Claude-SearchBot | Anthropic | Indexation | Absent des recherches de Claude |
| Claude-User | Anthropic | Déclenché par un humain | La demande de l'utilisateur échoue |
| PerplexityBot | Perplexity | Indexation | Absent de l'index Perplexity |
| Perplexity-User | Perplexity | Déclenché par un humain | La demande de l'utilisateur échoue |
| Google-Extended | Contrôle d'usage IA | Contenu écarté de certains usages IA de Google, sans effet sur le classement | |
| Googlebot | Indexation | Disparition de Google Search — à ne pas toucher | |
| Applebot-Extended | Apple | Contrôle d'usage IA | Écarte le contenu des usages IA d'Apple |
| Bytespider | ByteDance | Entraînement | Sort des collectes ByteDance |
| CCBot | Common Crawl | Archive publique | Sort d'un corpus réutilisé par de nombreux acteurs |
Deux précisions qui évitent des décisions à l'aveugle. Google-Extended n'est pas un robot : c'est un jeton de contrôle d'usage — le contenu est toujours exploré par Googlebot, mais son emploi dans certains produits d'IA de Google est écarté, et le classement dans Search n'en dépend pas. Et CCBot alimente une archive publique dont beaucoup d'acteurs se servent : le bloquer a un effet bien plus large que son nom ne le suggère.
Comment robots.txt fonctionne réellement
Le format est normalisé par la RFC 9309. Trois règles suffisent à éviter la quasi-totalité des erreurs constatées :
- Un robot n'obéit qu'à un seul groupe : celui dont le
User-agentcorrespond le plus précisément à son nom. SiGPTBota son propre groupe, il ignore entièrement le groupe*— y compris les règles que vous pensiez générales. - La correspondance ne tient pas compte de la casse et porte sur un jeton, pas sur la chaîne complète du User-Agent.
- Le fichier n'a aucun pouvoir contraignant. C'est une demande polie. Les opérateurs sérieux la respectent ; un aspirateur anonyme ne la lira même pas. Un blocage réel se fait au niveau du serveur ou du CDN.
Trois configurations à copier
Choisissez selon la décision que vous prenez, pas selon la mode.
User-agent: *
Allow: /
Sitemap: https://votre-domaine.com/sitemap.xml# Récupérations déclenchées par un humain : toujours autorisées.
User-agent: ChatGPT-User
Allow: /
User-agent: Claude-User
Allow: /
User-agent: Perplexity-User
Allow: /
# Indexation pour les moteurs de réponse : autorisée, c'est ainsi qu'on est cité.
User-agent: OAI-SearchBot
Allow: /
User-agent: Claude-SearchBot
Allow: /
User-agent: PerplexityBot
Allow: /
# Collecte pour l'entraînement : refusée.
User-agent: GPTBot
Disallow: /
User-agent: ClaudeBot
Disallow: /
User-agent: Bytespider
Disallow: /
User-agent: CCBot
Disallow: /
User-agent: Google-Extended
Disallow: /
User-agent: Applebot-Extended
Disallow: /
User-agent: *
Allow: /
Sitemap: https://votre-domaine.com/sitemap.xmlUser-agent: Googlebot
Allow: /
User-agent: Bingbot
Allow: /
User-agent: GPTBot
Disallow: /
User-agent: OAI-SearchBot
Disallow: /
User-agent: ChatGPT-User
Disallow: /
User-agent: ClaudeBot
Disallow: /
User-agent: Claude-User
Disallow: /
User-agent: PerplexityBot
Disallow: /
User-agent: Perplexity-User
Disallow: /
User-agent: Google-Extended
Disallow: /
User-agent: *
Allow: /La configuration C a un coût qu'il faut assumer en connaissance de cause : vous n'êtes plus une réponse possible, y compris pour un utilisateur qui vous cherche nommément. Elle se justifie pour des contenus dont la valeur tient à leur exclusivité — bases documentaires payantes, archives sous licence — rarement pour un site commercial.
Content-Signal : dire l'usage autorisé, pas seulement l'accès
robots.txt exprime une permission binaire : entrer ou non. Il ne dit rien de ce qu'on peut faire du contenu une fois lu. L'en-tête Content-Signal, proposé pour combler ce vide, sépare trois usages et se place dans le même fichier :
Content-Signal: search=yes, ai-input=yes, ai-train=no
# search=yes — indexez et faites un lien
# ai-input=yes — citez dans une réponse générée, avec attribution
# ai-train=no — n'utilisez pas ce contenu comme donnée d'entraînementUne réserve honnête : il s'agit d'une convention, pas d'une norme adoptée, et elle n'a aucune force exécutoire. Son intérêt est double — elle exprime une intention non ambiguë, et elle laisse une trace datée de cette intention. C'est peu, mais c'est plus qu'une absence de déclaration. Notre propre robots.txt la porte, parce qu'un produit qui audite ce point chez les autres doit le tenir chez lui.
Vérifier qu'un robot est bien celui qu'il prétend être
Un User-Agent est une chaîne de caractères libre : n'importe quel script peut s'annoncer comme GPTBot pour contourner un filtre, et un aspirateur agressif le fait souvent. Avant de tirer la moindre conclusion d'une ligne de journal — et surtout avant de bloquer une adresse — vérifiez l'origine. Les opérateurs sérieux publient soit leurs plages d'adresses IP, soit un DNS inverse vérifiable.
# 1. À quel nom d'hôte appartient l'adresse vue dans le journal ?
host 203.0.113.42
# 2. Ce nom d'hôte renvoie-t-il bien à la même adresse ?
host le-nom-obtenu.exemple.com
# Les deux doivent concorder. Sinon, le User-Agent est usurpé.Ce contrôle en deux temps est le même que celui recommandé de longue date pour authentifier Googlebot. Il évite l'erreur symétrique la plus coûteuse : bloquer un vrai robot d'indexation sur la foi d'un journal, ou laisser entrer un aspirateur parce qu'il a écrit le bon nom.
Quand robots.txt ne suffit pas
Face à un client qui ignore le fichier, la seule réponse efficace se situe au niveau du serveur ou du CDN. Sur nginx, un refus par User-Agent tient en trois lignes ; il s'applique avant toute exécution applicative, donc il coûte quasiment rien.
map $http_user_agent $bloque_ia {
default 0;
~*(Bytespider|ClaudeBot|GPTBot) 1;
}
server {
if ($bloque_ia) { return 403; }
}Deux réserves avant de généraliser ce réglage. Un blocage trop large finit toujours par attraper un agent que vous vouliez garder — relisez la liste avant de l'appliquer. Et un refus servi avec un code 200 et une page d'erreur stylée n'est pas un refus : renvoyez un vrai 403, sinon les deux camps se trompent sur ce qui s'est passé.
Les erreurs qui coûtent le plus
- Le
Disallow: /de préproduction remis en ligne. Toujours le premier suspect quand une visibilité s'effondre du jour au lendemain. - Bloquer les CSS et le JavaScript. Les moteurs qui rendent la page ne peuvent plus la comprendre, et vous perdez sur les deux tableaux.
- Bloquer les fichiers
.md. Ils sont précisément la version propre que vous vouliez faire lire aux agents. - Croire qu'un blocage retire l'existant. robots.txt agit sur les visites futures ; il ne supprime rien de ce qui a déjà été collecté ni de ce qu'un modèle a déjà mémorisé.
- Interdire l'accès puis s'étonner de l'absence. C'est le cas le plus fréquent que nous voyons à l'audit : le site interdit ce qu'il souhaite voir cité, souvent par un réglage laissé par une extension.