Un fichier robots.txt n’est ni une liste de robots de confiance, ni un pare-feu, ni un outil universel de retrait. Il publie des règles d’accès destinées aux robots qui choisissent de suivre le protocole. Pour l’utiliser correctement avec les services d’IA, il faut commencer par la finalité souhaitée : recherche, entraînement potentiel, action déclenchée par une personne ou refus d’accès.
Réponse en bref
Placez un fichier UTF-8 à l’URL exacte /robots.txt, définissez une politique par agent et testez l’effet réel dans les logs. Pour OpenAI, OAI-SearchBot concerne Search, GPTBot l’exploration susceptible de contribuer aux modèles fondamentaux et ChatGPT-User certaines actions utilisateur. Pour Perplexity, PerplexityBot sert la recherche et Perplexity-User les accès demandés par un utilisateur. Les agents utilisateur peuvent suivre des règles différentes des crawlers automatiques. Et surtout : robots.txt ne protège aucune donnée privée.
Le modèle mental : préférence, accès, indexation, sécurité
Quatre contrôles sont souvent confondus :
| Contrôle | Outil principal | Question |
|---|---|---|
| préférence de crawl | robots.txt | un robot coopératif peut-il demander ce chemin ? |
| accès technique | serveur, CDN, WAF | la requête reçoit-elle effectivement la ressource ? |
| indexation ou affichage | directives et politiques propres au moteur | la ressource peut-elle être conservée ou montrée ? |
| confidentialité | authentification et autorisation | cette personne ou ce service a-t-il le droit d’accéder au contenu ? |
Une fois l’accès autorisé, une application peut encore perdre son contenu ou ses liens pendant le rendu. La recette SEO JavaScript : vérifier le rendu et l’indexation dans Google compare la réponse HTTP, le DOM navigateur, le rendu Google et la version indexée.
Disallow ne chiffre pas une page et ne vérifie pas l’identité du visiteur. Il peut empêcher un robot conforme d’explorer un chemin, mais l’URL peut rester connue par des liens externes ou d’autres sources. Le RFC 9309 précise que robots.txt n’est pas un substitut aux mesures de sécurité et que lister des chemins les rend publiquement découvrables.
Une facture, un espace client, une sauvegarde ou un panneau d’administration doit être protégé même si robots.txt est absent, erroné ou ignoré.
Ce que définit le RFC 9309
Le Robots Exclusion Protocol normalisé décrit l’emplacement, le format et la résolution des règles.
Emplacement exact
Le fichier se trouve à la racine du service, en minuscules :
https://www.exemple.fr/robots.txt
Il doit être servi en UTF-8 et en text/plain. Le schéma et l’autorité comptent : les règles de https://www.exemple.fr/robots.txt ne sont pas automatiquement celles de https://sous-domaine.exemple.fr/robots.txt.
Groupes et agents
Un groupe commence par une ou plusieurs lignes User-agent, suivies de règles Allow et Disallow. La recherche du groupe correspondant au produit est insensible à la casse. Si plusieurs groupes correspondent au même agent, leurs règles sont combinées. Le groupe * sert de repli lorsqu’aucun groupe spécifique ne correspond.
Conséquence importante : une règle générale n’est pas forcément ajoutée à un groupe spécifique. Testez toujours le résultat final au lieu de lire chaque bloc isolément.
La règle la plus spécifique gagne
Pour une URL, le chemin correspondant le plus long est appliqué. Si une règle Allow et une règle Disallow équivalentes s’opposent, le RFC indique que Allow devrait être utilisée.
User-agent: ExampleBot
Disallow: /documents/
Allow: /documents/guides-publics/
Ici, /documents/guides-publics/intro.html correspond aux deux préfixes, mais la règle Allow est plus spécifique. Cela n’ouvre pas le répertoire sur le serveur : le contrôle HTTP reste indépendant.
Les caractères spéciaux
Le protocole standardise notamment :
*pour zéro ou plusieurs caractères ;$pour la fin du motif ;#pour un commentaire.
Les chemins sont en principe comparés de façon sensible à la casse. /Prive/ et /prive/ peuvent donc produire deux résultats différents sur un serveur qui distingue ces chemins.
Les réponses HTTP comptent
Selon le RFC :
- après un téléchargement réussi, le robot suit les règles analysables ;
- avec un statut rendant le fichier « indisponible », par exemple dans la famille 400–499, le robot peut accéder aux autres ressources ;
- avec une erreur serveur ou réseau qui rend le fichier « inaccessible », il doit supposer un refus complet, au moins pendant la période décrite par la norme ;
- le fichier peut être mis en cache, normalement pas plus de vingt-quatre heures sauf indisponibilité.
Les produits peuvent documenter des comportements complémentaires. Surveillez donc le code HTTP de robots.txt lui-même. Un 403 envoyé par erreur au robot n’équivaut pas à un Disallow: / portable.
Les agents OpenAI : trois finalités indépendantes
OAI-SearchBot
OAI-SearchBot est documenté pour faire remonter des sites dans les fonctionnalités de recherche de ChatGPT. OpenAI recommande de l’autoriser dans robots.txt et d’autoriser les requêtes provenant des plages IP officielles si l’éditeur souhaite être éligible à Search.
Un refus écarte le site des réponses Search selon la documentation actuelle, avec la possibilité qu’un lien de navigation apparaisse encore. Une autorisation ne promet pas que le robot passera, que la page sera retenue ou qu’elle sera citée.
GPTBot
GPTBot explore du contenu susceptible d’être utilisé pour rendre les modèles fondamentaux d’OpenAI plus utiles et plus sûrs. Refuser GPTBot exprime que le contenu ne doit pas être utilisé dans ce cadre. Cette décision est indépendante de Search.
Il est donc cohérent d’écrire :
User-agent: OAI-SearchBot
Allow: /
User-agent: GPTBot
Disallow: /
Cette politique ouvre le crawl automatique de recherche et refuse l’usage indiqué pour l’entraînement. Elle ne dit rien, à elle seule, sur les actions déclenchées par un utilisateur.
ChatGPT-User
ChatGPT-User peut accéder à une page pour certaines demandes effectuées dans ChatGPT ou dans un GPT personnalisé. Il n’est pas utilisé pour le crawl automatique ni pour déterminer l’éligibilité Search. OpenAI indique que, parce que ces accès sont déclenchés par un utilisateur, robots.txt peut ne pas s’appliquer.
Si une ressource ne doit être consultée que par des personnes autorisées, exigez une authentification et contrôlez les droits côté serveur. Une ligne Disallow n’est pas un substitut.
Les agents Perplexity : recherche et demande utilisateur
PerplexityBot
PerplexityBot sert à faire remonter et relier des sites dans les résultats de recherche de Perplexity. La documentation indique qu’il n’est pas utilisé pour explorer du contenu destiné aux modèles fondamentaux. Perplexity recommande de l’autoriser, ainsi que ses plages IP publiées, lorsque l’éditeur souhaite rendre son site accessible à cette recherche.
Perplexity-User
Perplexity-User prend en charge des accès provoqués par les demandes des utilisateurs. Il n’est pas présenté comme un crawler automatique ni comme un collecteur pour l’entraînement des modèles fondamentaux. La documentation précise que cet accès ignore généralement robots.txt puisqu’un utilisateur l’a demandé.
Ne combinez pas les deux identités dans les statistiques. L’une peut indiquer une exploration de recherche ; l’autre, une consultation ponctuelle demandée par une personne.
Et Googlebot ou Google-Extended ?
Les noms proches ne signifient pas des finalités identiques. Google publie une liste de ses crawlers courants et documente Googlebot pour l’exploration de Search. Google-Extended est un contrôle distinct décrit dans cette documentation ; il ne faut pas le traiter comme un alias de Googlebot.
La règle générale s’applique à tous les fournisseurs : consultez la fiche officielle actuelle de chaque agent, écrivez la finalité dans votre registre, puis configurez le produit exact. Une liste communautaire ou une capture ancienne peut être utile pour démarrer un inventaire, pas comme source de vérité durable.
Le registre ACCÈS
ACCÈS est un modèle original de décision. Une ligne par agent suffit pour rendre la politique explicite et auditable.
| Lettre | Champ | Question à documenter |
|---|---|---|
| A : Agent | identité technique | quel produit-token et quelle source officielle ? |
| C : Cas d’usage | finalité | recherche, entraînement potentiel, action utilisateur, autre ? |
| C : Contenu | périmètre | quelles sections publiques sont concernées ? |
| È : Effet attendu | résultat contrôlable | autoriser ou refuser le crawl, sans promesse aval |
| S : Surveillance | preuve | quels logs, IP, alertes et dates de revue ? |
Exemple de registre
| Agent | Cas d’usage | Contenu | Décision | Surveillance |
|---|---|---|---|---|
| OAI-SearchBot | recherche ChatGPT | guides publics | autoriser | logs HTTP + plages officielles revues mensuellement |
| GPTBot | amélioration de modèles fondamentaux | tout le site | refuser selon politique éditoriale | test robots.txt après chaque livraison |
| ChatGPT-User | action utilisateur | pages publiques ; privé sous authentification | laisser la sécurité serveur décider | journal d’accès minimisé |
| PerplexityBot | recherche Perplexity | guides publics | autoriser | logs HTTP + plages officielles actuelles |
| Perplexity-User | demande utilisateur | public seulement sans compte | sécurité serveur | alertes sur erreurs et accès refusés |
Le registre indique une décision d’exemple, pas celle que chaque organisation devrait adopter. Les usages acceptables doivent être décidés par l’éditeur et, lorsque nécessaire, par les responsables juridiques, sécurité et données.
Trois configurations courantes
1. Recherche autorisée, entraînement OpenAI refusé
User-agent: OAI-SearchBot
Allow: /
User-agent: GPTBot
Disallow: /
User-agent: PerplexityBot
Allow: /
Sitemap: https://www.exemple.fr/sitemap.xml
Cette configuration sépare les finalités. Le sitemap est une indication supplémentaire comprise par certains robots ; il ne fait pas partie des règles Allow et Disallow du cœur du protocole.
2. Une section publique, le reste refusé à un agent
User-agent: ExampleBot
Disallow: /
Allow: /centre-aide/public/
La règle Allow plus longue ouvre ce préfixe pour un robot conforme. Le serveur doit malgré tout appliquer ses propres contrôles. Testez les URL avec et sans slash, paramètres et variations de casse.
3. Refus global d’un agent précis
User-agent: GPTBot
Disallow: /
User-agent: *
Allow: /
Le groupe spécifique s’applique à GPTBot ; le groupe générique sert de repli aux agents sans groupe spécifique. N’inversez pas l’ordre logique en supposant que la dernière règle gagne : robots.txt utilise la correspondance de groupes et de chemins, pas une cascade CSS.
Arbre de décision avant d’écrire une règle
Une ressource est-elle destinée au public ?
│
├─ non
│ └─ authentification + autorisation + absence des sitemaps
│ robots.txt peut compléter, jamais protéger
│
└─ oui
│
├─ quelle finalité est acceptée ?
│ ├─ recherche → agent de recherche officiel
│ ├─ entraînement potentiel → agent documenté pour cet usage
│ └─ action utilisateur → politique serveur distincte
│
├─ l’agent possède-t-il une documentation et des IP officielles ?
│ ├─ non → ne pas ouvrir une exception WAF sur le seul nom déclaré
│ └─ oui → enregistrer les sources et leur date
│
└─ le résultat est-il vérifié de bout en bout ?
├─ non → tester robots.txt, HTTP, WAF et logs
└─ oui → surveiller les changements sans promettre l’affichage
Tester la configuration
Une revue sérieuse couvre le fichier, le parseur, le serveur et les journaux.
1. Contrôler le fichier livré
curl -i https://www.exemple.fr/robots.txt
Vérifiez le statut, le type de contenu, l’encodage, les redirections et le corps. Évitez de conclure à partir du fichier source local si le CDN sert une autre version.
2. Construire une table d’attentes
| Agent | URL | Attendu |
|---|---|---|
| OAI-SearchBot | /guides/intro/ | autorisé |
| OAI-SearchBot | /espace-prive/ | robots refusé + accès HTTP protégé |
| GPTBot | /guides/intro/ | refusé selon politique exemple |
| PerplexityBot | /guides/intro/ | autorisé |
Testez le motif avec un parseur conforme, puis testez la réponse réelle. Un résultat « autorisé » dans le parseur suivi d’un 403 au niveau WAF est un échec de la chaîne, pas du protocole.
3. Observer les logs sans exposer de secrets
Conservez au minimum : horodatage, chemin normalisé, statut, agent déclaré, volume servi et résultat de la vérification réseau si elle est utilisée. Évitez d’exporter cookies, paramètres sensibles, corps de requête ou identifiants personnels dans un tableau d’audit.
4. Rejouer après chaque changement
Une migration d’hébergeur, une nouvelle règle CDN ou un framework qui génère robots.txt peut modifier le résultat sans toucher au fichier édité. Automatisez les attentes critiques dans les tests de livraison.
Les erreurs les plus fréquentes
Croire que Disallow retire une URL déjà connue
Empêcher le crawl et empêcher l’indexation sont deux objectifs différents. Pour un moteur qui le documente, utilisez le mécanisme de retrait ou la directive d’indexation adaptée, en laissant éventuellement le robot accéder à la page pour lire cette directive. Une page réellement confidentielle doit retourner un contrôle d’accès, pas seulement noindex.
Bloquer le robot dans le WAF après l’avoir autorisé
Le fichier exprime « autorisé », mais l’infrastructure répond 403 ou présente un défi. Comparez la règle WAF aux plages IP officielles actuelles et au User-Agent. N’autorisez pas n’importe quelle requête qui usurpe un nom connu.
Copier tous les agents trouvés dans une liste
Une politique devient illisible et périmée. Enregistrez seulement les agents utiles à une décision explicite, avec leur documentation et une date de revue.
Lister des répertoires secrets
Disallow: /backup-juillet/ révèle le chemin. Retirez les sauvegardes de la racine publique, exigez une authentification et corrigez les permissions.
Supposer que l’ordre des lignes tranche tout
La règle la plus spécifique compte. Des groupes correspondants peuvent être combinés, tandis que * ne sert que lorsqu’aucun groupe spécifique ne correspond. Utilisez des cas de test au lieu d’une lecture intuitive.
Confondre agents automatiques et actions utilisateur
ChatGPT-User et Perplexity-User correspondent à des accès déclenchés par une personne et peuvent ne pas appliquer robots.txt comme les crawlers automatiques. La sécurité serveur reste la barrière fiable.
Checklist de mise en production
- décision écrite pour chaque finalité ;
- source officielle et date pour chaque agent ;
-
/robots.txten minuscules, UTF-8,text/plain; - statut HTTP et redirections contrôlés sur le domaine réel ;
- règle la plus spécifique testée sur une table d’URL ;
- OAI-SearchBot séparé de GPTBot et ChatGPT-User ;
- PerplexityBot séparé de Perplexity-User ;
- WAF cohérent avec la politique et les IP actuelles ;
- espaces privés protégés par authentification et autorisation ;
- sitemap limité aux URL publiques souhaitées ;
- logs minimisés et procédure de revue planifiée ;
- aucune promesse de crawl, d’indexation ou de citation.
Pour les URL générées par les visiteurs, la recette recherche interne et SEO : que faire des pages de résultats ? complète cette checklist avec neuf requêtes de test. Elle aide à distinguer une page de recherche libre d’une page éditoriale avant de choisir une directive d’exploration ou d’indexation.
Limites
Robots.txt est un protocole déclaratif suivi par des robots coopératifs. Les fournisseurs peuvent modifier les noms, chaînes complètes, plages IP et comportements de leurs produits. Les accès déclenchés par un utilisateur ne suivent pas toujours les mêmes règles que les crawlers automatiques. Ce guide ne remplace ni une analyse juridique des usages, ni une politique de sécurité, ni les documentations actuelles de chaque fournisseur.
Articles liés
- Guide GEO : rendre un contenu utile aux moteurs de réponse
- Apparaître dans ChatGPT : éligibilité, preuves et mesure
- Mesurer sa présence dans les moteurs de réponse
- Protéger les données sensibles lors de l’usage d’un assistant IA
Prochaine étape
Remplissez une ligne ACCÈS pour chaque agent réellement concerné, transformez-la en table de tests, puis comparez le résultat au site livré. Pour une revue technique limitée, partager les URL publiques et la politique souhaitée permet de préparer le diagnostic sans ouvrir d’espace privé.
Sources vérifiées
- Source externe, rfc-editor.org , consultée le 12 juillet 2026
- Source externe, developers.openai.com , consultée le 12 juillet 2026
- Source externe, docs.perplexity.ai , consultée le 12 juillet 2026
- Source externe, developers.google.com , consultée le 12 juillet 2026
- Source externe, developers.google.com , consultée le 12 juillet 2026
- Source externe, developers.google.com , consultée le 12 juillet 2026