robots.txt pour les robots d'IA : quoi autoriser, quoi bloquer
Donnez à chaque robot d'IA qui vous intéresse son propre groupe User-agent. Autorisez les robots de recherche comme OAI-SearchBot, Claude-SearchBot et PerplexityBot si vous voulez être cité, et décidez séparément pour les jetons d'entraînement comme GPTBot, ClaudeBot, Google-Extended et Applebot-Extended. Un groupe nommé remplace le groupe * pour ce robot.
Le robots.txt est un simple fichier texte qui remonte à 1994 et qui est devenu une norme officielle, la RFC 9309, en 2022. La plupart des éditeurs d'IA affirment que leurs robots le respectent, et plusieurs publient des jetons distincts pour la recherche et pour l'entraînement. C'est donc l'endroit le plus simple pour énoncer une politique vis-à-vis de l'IA, à condition que les règles signifient bien ce que vous croyez.
Sur cette page
- Quels jetons robots.txt les robots d'IA utilisent-ils ?
- À quoi ressemble un bon robots.txt pour l'IA ?
- Comment les robots choisissent-ils les règles qui les concernent ?
- Quelles sont les erreurs de robots.txt les plus courantes ?
- Peut-on énoncer une politique d'usage de l'IA au-delà de allow et disallow ?
- Combien de temps prennent les changements, et comment les vérifier ?
Quels jetons robots.txt les robots d'IA utilisent-ils ?
Voici les jetons documentés par les éditeurs. La comparaison ne tient pas compte de la casse selon la RFC 9309.
- OpenAI :
OAI-SearchBot(recherche ChatGPT),GPTBot(entraînement),ChatGPT-User(visites demandées par l'utilisateur ; OpenAI indique que le robots.txt peut ne pas s'appliquer). - Anthropic :
Claude-SearchBot(recherche),ClaudeBot(entraînement),Claude-User(visites demandées par l'utilisateur). - Perplexity :
PerplexityBot(recherche),Perplexity-User(visites demandées par l'utilisateur ; Perplexity indique qu'il ignore en général le robots.txt). - Google :
Googlebot(Search, y compris ses fonctions d'IA) etGoogle-Extended, un jeton sans robot propre qui contrôle l'utilisation pour l'entraînement et l'ancrage de Gemini. - Apple :
Applebot(Spotlight, Siri, recherche Safari) etApplebot-Extended, qui n'explore pas mais contrôle l'utilisation pour l'entraînement des modèles de fondation d'Apple. - Meta :
meta-externalagent(entraînement et indexation de produits) etmeta-webindexer(recherche Meta AI). - Common Crawl :
CCBot, qui constitue l'archive publique et gratuite de données du web de Common Crawl.
À quoi ressemble un bon robots.txt pour l'IA ?
Cet exemple laisse entrer la recherche IA et les récupérations à la demande, refuse les principaux jetons d'entraînement et garde fermée pour tous une zone privée :
User-agent: OAI-SearchBot
User-agent: Claude-SearchBot
User-agent: PerplexityBot
User-agent: ChatGPT-User
User-agent: Claude-User
Allow: /
Disallow: /account/
User-agent: GPTBot
User-agent: ClaudeBot
User-agent: Google-Extended
User-agent: Applebot-Extended
User-agent: meta-externalagent
User-agent: CCBot
Disallow: /
User-agent: *
Allow: /
Disallow: /account/
Sitemap: https://example.com/sitemap.xml
Plusieurs lignes User-agent consécutives forment un seul groupe : les règles qui suivent s'appliquent donc à chacun de ces robots. Si vous voulez que votre contenu serve à l'entraînement, il suffit de supprimer le deuxième groupe. Bloquer Google-Extended n'affecte pas Google Search : Google indique que cela n'influe pas sur l'inclusion dans Search et n'est pas un signal de classement. De même, Apple précise que les pages qui interdisent Applebot-Extended peuvent quand même apparaître dans ses résultats de recherche.
Comment les robots choisissent-ils les règles qui les concernent ?
La RFC 9309 le définit avec précision, et ces détails expliquent la plupart des surprises :
- Un robot cherche le groupe dont le
User-agentcorrespond à son jeton de produit, sans tenir compte de la casse. Si plusieurs groupes correspondent, leurs règles sont fusionnées en une seule. - Ce n'est que si aucun groupe ne correspond que le robot suit le groupe
User-agent: *. Un groupe nommé n'hérite de rien de*. - Dans le groupe, la règle dont le chemin correspondant est le plus long l'emporte.
Allow: /blog/l'emporte surDisallow: /pour/blog/post. - Si une règle
Allowet une règleDisallowcorrespondent avec la même longueur, c'estAllowqui doit être appliquée. *dans un chemin correspond à n'importe quels caractères et$marque la fin, doncDisallow: /*.pdf$couvre tous les PDF.
Quelles sont les erreurs de robots.txt les plus courantes ?
- S'attendre à ce qu'un groupe nommé hérite de
*. Un groupe pourOAI-SearchBotavec seulementAllow: /ouvre tous les chemins, y compris ceux que vous avez interdits sous*. - Une adresse robots.txt qui renvoie une page HTML, souvent une page 404 servie avec le statut 200. Les robots n'y trouvent aucune règle valide.
- Un robots.txt qui renvoie une erreur serveur. La RFC 9309 dit qu'un robot doit alors considérer que tout le site est interdit. Un 404 est différent : il signifie qu'il n'y a aucune restriction.
- Bloquer un jeton de recherche en croyant bloquer l'entraînement, par exemple en interdisant
PerplexityBotouClaude-SearchBotpour éviter l'entraînement des modèles. - Compter sur le robots.txt pour empêcher les récupérations demandées par un utilisateur. OpenAI et Perplexity indiquent tous deux que leurs user-agents peuvent ne pas le respecter.
- Oublier les sous-domaines. Chaque hôte a son propre robots.txt ; la documentation d'Anthropic rappelle aux propriétaires de sites d'ajouter des règles pour chaque sous-domaine.
Peut-on énoncer une politique d'usage de l'IA au-delà de allow et disallow ?
Cloudflare a proposé une ligne Content-Signal pour le robots.txt, avec trois signaux : search (construire un index de recherche et afficher des liens et de courts extraits), ai-input (utiliser le contenu en temps réel pour les réponses d'IA) et ai-train (entraîner ou affiner des modèles). Le robots.txt géré de Cloudflare peut l'ajouter pour vous.
User-agent: *
Content-Signal: search=yes, ai-input=yes, ai-train=no
Allow: /
Comme tout ce qui figure dans le robots.txt, ce sont des préférences, pas des contrôles techniques. Cloudflare note lui-même que le respect du robots.txt est volontaire. Cette ligne est facultative et sans danger, mais elle ne remplace pas les groupes par robot présentés plus haut.
Combien de temps prennent les changements, et comment les vérifier ?
La RFC 9309 indique que les robots ne devraient pas utiliser un robots.txt en cache pendant plus de 24 heures, et OpenAI comme Perplexity disent que les changements peuvent prendre environ une journée. Rappelez-vous aussi que le robots.txt n'est pas un contrôle d'accès : un pare-feu peut encore bloquer un robot que vos règles autorisent.
AISeeWhy analyse votre robots.txt selon la RFC 9309 pour chaque robot qu'il teste, signale les fichiers inaccessibles ou servis en HTML, montre où vos règles et votre serveur se contredisent et fournit un diff prêt à appliquer pour la modification.
Questions fréquentes
Bloquer GPTBot ou ClaudeBot nuit-il à ma visibilité dans les réponses d'IA ?
Pas directement. Les deux éditeurs utilisent des robots de recherche distincts, OAI-SearchBot et Claude-SearchBot, pour la recherche. Bloquer le robot d'entraînement est un choix de politique.
Google-Extended empêche-t-il les AI Overviews ?
Non. Google indique que les fonctions d'IA de Search utilisent Googlebot et les contrôles habituels de Search, comme nosnippet et noindex. Google-Extended concerne l'entraînement de Gemini et l'ancrage dans d'autres produits Google, et n'affecte pas Search.
Les robots d'IA prennent-ils en charge Crawl-delay ?
Il ne fait pas partie de la RFC 9309. Anthropic indique qu'il prend en charge Crawl-delay comme extension non standard ; pour les autres éditeurs, consultez leur documentation.
Où doit se trouver le robots.txt ?
À la racine de chaque hôte, par exemple https://example.com/robots.txt. Un fichier placé dans un sous-dossier est ignoré, et chaque sous-domaine a besoin du sien.
Sources
- RFC 9309 : protocole d'exclusion des robots
- OpenAI : présentation des robots d'exploration OpenAI
- Google : robots d'exploration courants, dont Google-Extended
- Apple : à propos d'Applebot
- Cloudflare : robots.txt géré et Content Signals