Un robots.txt est une déclaration d'intention. C'est un fichier texte que vous publiez, que personne n'est obligé de respecter, et qui dit ce que vous souhaitez voir arriver. Il n'ouvre aucune porte et n'en ferme aucune. Il affiche une consigne à l'entrée.

Le code 403 n'est pas une consigne. C'est un refus exécuté. Le serveur a compris la demande, il a identifié le demandeur, et il répond non.

Entre les deux, il y a une couche que presque personne ne regarde : le pare-feu applicatif, la protection anti-robot, le réseau de diffusion de contenu. Cette couche est réglée par une équipe technique ou par le réglage d'usine d'un prestataire. Elle ne lit pas votre robots.txt. Elle peut refuser un robot que vous avez pris la peine d'autoriser, et elle le fait sans rien vous dire.

Ce blog tourne autour de ce cas depuis des mois. L'article sur le robots.txt et les crawlers d'IA l'écrit noir sur blanc, sans le mesurer : « Vous pouvez donc autoriser explicitement OAI-SearchBot dans votre fichier et rester totalement inaccessible. » L'article sur la page 404 compte cinq hôtes sur vingt-deux où une protection remplace le code attendu. Celui sur les PDF va plus loin et mesure la chose directement : trois documents sur trente reçoivent un 403 quand PerplexityBot les demande, et arrivent normalement quand un Chrome récent les demande, sur banque-france.fr, bpifrance.fr et cdr-copdl.fr.

Le phénomène est donc déjà établi, et je ne le découvre pas. Ce qui manquait tient en deux points. Personne n'avait confronté ces refus au robots.txt du même site, pour voir si la machine obéit au fichier. Et personne n'avait cherché sur quoi la règle se déclenche exactement. Le 18 septembre 2026, j'ai fait les deux.

Ce que la SERP « erreur 403 » raconte

Relevé du 18 septembre 2026 sur Google France. Le champ sémantique du refus d'accès est volumineux : « erreur 403 » à 5 400 recherches par mois, « 403 forbidden » à 3 600, « erreur 401 » à 2 400, « erreur 429 » à 720, « site inaccessible » à 480, « too many requests » à 390, « accès refusé » à 30. Le cumul dépasse 13 000.

C'est la deuxième famille de termes par le volume que ce blog ait visée, derrière celle des codes 5xx traitée la veille, qui cumulait environ 13 800. En valeur unitaire, « erreur 403 » à 5 400 se situe derrière « rgaa » à 8 100 et « erreur 404 » à 6 600, et à égalité avec « erreur 500 ». La concurrence publicitaire est à l'indice 1 sur les deux plus gros termes, le plancher de l'échelle.

La SERP compte huit résultats organiques, un Aperçu IA, un bloc de questions associées, un bloc vidéo et des recherches connexes.

Le classement : la base d'aide de l'hébergeur Infomaniak en rang 1, un fil Reddit de r/computer en rang 2, MDN en rang 3, puis une page de Services Publics + sur une erreur 403 rencontrée sur impots.gouv.fr, Wikipédia, Codeur.com, l'agence datashake, et l'aide de Smartsheet sur un échec d'authentification Google.

Les huit traitent la même question, et c'est une question de dépannage vue du visiteur. Videz votre cache, supprimez vos cookies, désactivez votre bloqueur de publicité, vérifiez l'URL. Aucun des huit ne traite du référencement, de l'indexation ou des robots.

L'Aperçu IA compte sept références : Infomaniak, Wikipédia, une vidéo YouTube, MDN, Abondance, Codeur et Kinsta. Abondance y figure sans être classé dans les huit organiques, ce qui fait une divergence entre classement et citation. Et l'Aperçu se termine par une question posée à l'utilisateur : « Est-ce un site que vous visitez ou un site que vous gérez vous-même ? »

C'est exactement la question que posait déjà l'Aperçu « erreur 503 » le 17 septembre. Le moteur ne sait pas à qui il parle, parce que le corpus disponible ne distingue pas les deux publics. Le trou éditorial est le même, et il est franc.

Le protocole

Trente hôtes français, choisis dans huit secteurs : presse, commerce en ligne, banque et assurance, administration, santé, petites annonces, logiciel en ligne, et un média spécialisé. La liste complète des trente figure plus bas, parce qu'un tableau de résultats sans sa liste d'entrée ne se vérifie pas.

Sept agents utilisateur, envoyés sur la page d'accueil, avec relevé du code HTTP final après redirections :

GPTBot/1.2           collecte d'entrainement, OpenAI
OAI-SearchBot/1.0    recherche, OpenAI
ClaudeBot/1.0        Anthropic
PerplexityBot/1.0    Perplexity
Googlebot/2.1        Google
Chrome 140 (macOS)   TEMOIN : navigateur ordinaire
curl/8.7.1           TEMOIN : client anonyme, sans nom de robot

Les deux témoins sont le coeur du protocole et non un ornement. Un 403 renvoyé à GPTBot ne veut rien dire tant qu'on ignore ce que le même serveur renvoie à un navigateur banal, depuis la même adresse de sortie, à la même minute. Sans ce contrôle, on confond une politique éditoriale avec un filtrage réseau qui vise votre fournisseur d'accès.

Deux passages complets ont été faits. Sur les 210 cases du tableau, 209 sont identiques d'un passage à l'autre. La seule qui bouge est la colonne curl de blablacar.fr, passée de 200 à 403. Les résultats qui suivent sont donc stables, pas des tirages.

Ce que les trente hôtes répondent

Le tableau se range en cinq familles.

famille                                        hotes
-----------------------------------------------------
A. tout ouvert (robots et navigateur en 200)     14
B. refus general, navigateur compris             10
C. les 5 robots refuses, navigateur admis         2
D. refus cible sur 1 robot, les autres admis      2
E. inversion : robots admis, navigateur refuse    1
F. echec reseau                                   1
-----------------------------------------------------
TOTAL                                            30

La famille A est la plus nombreuse et c'est une bonne nouvelle : quatorze hôtes sur trente laissent passer les cinq robots comme ils laissent passer un navigateur. Le compte par secteur : les cinq banques et assureurs du corpus, trois des cinq sites d'administration, les trois éditeurs de logiciel, Cdiscount pour le commerce, plus Le Monde et Abondance.

La famille B compte dix hôtes qui renvoient 403 à tout le monde, robots et navigateur confondus. Je n'en conclus rien. Un test complémentaire le confirme : une chaîne d'agent absurde, Wgzptmv/9.9 (Zzz; Qqq), reçoit elle aussi 403 sur les cinq que j'ai retestés, liberation.fr, fnac.com, leboncoin.fr, decathlon.fr et seloger.com. Quand un serveur refuse un navigateur ordinaire, une chaîne inventée et un robot avec le même code, le refus ne porte pas sur le robot. Il porte sur mon adresse de sortie, ou sur une signature de connexion. Ces dix hôtes sortent de l'analyse, et c'est précisément le rôle d'un témoin que de les en sortir.

Restent les cinq cas où le serveur traite un robot autrement qu'un navigateur. Ce sont les seuls qui parlent.

Le cas Le Figaro : neuf portes ouvertes, neuf portes murées

Le robots.txt du Figaro n'est pas un fichier bâclé. C'est un document négocié, rubrique par rubrique, où quelqu'un s'est assis et a décidé quelles parties du site chaque agent peut lire.

User-agent: OAI-SearchBot
Allow: /voyages
Allow: /culture
Allow: /style
Allow: /beaute
Allow: /joaillerie
Allow: /mode-homme
Allow: /horlogerie
Allow: /bons-plans
Allow: /elections/resultats
Disallow: /

Neuf rubriques ouvertes au robot de recherche d'OpenAI, le reste fermé. Claude-User et ChatGPT Agent reçoivent chacun un bloc du même genre, plus restreint : voyages, bons plans, résultats des élections. Le fichier refuse par ailleurs GPTBot, ClaudeBot, anthropic-ai et CCBot par un Disallow: / sans exception.

La partie fermée est respectée par l'infrastructure. La partie ouverte ne l'est pas.

chemin autorise par robots.txt   OAI-SearchBot  Claude-User  Chrome
-------------------------------------------------------------------
/voyages                              403           403        200
/culture                              403           403        200
/style                                403           403        200
/beaute                               403           403        200
/joaillerie                           403           403        200
/mode-homme                           403           403        200
/horlogerie                           403           403        200
/bons-plans                           403           403        200
/elections/resultats                  403           403        200

Neuf sur neuf. Chaque rubrique que Le Figaro a explicitement ouverte à OAI-SearchBot répond 403 à OAI-SearchBot, et 200 à un navigateur interrogé depuis la même machine dans la même minute.

Le travail éditorial a bien eu lieu. La décision a bien été prise, écrite, publiée. Elle est annulée par une couche que la personne qui a rédigé ce fichier ne contrôle probablement pas, et dont elle ignore peut-être l'existence. La seule porte que l'éditeur a ouverte est murée par sa propre maison.

La règle est un nom, pas une réputation

Il reste une explication concurrente à écarter, et c'est la plus sérieuse. Les grands fournisseurs de protection vérifient les robots par leur adresse IP : un agent qui se déclare OAI-SearchBot sans venir des plages publiées par OpenAI est un imposteur, et le refuser est légitime. Mon curl ne vient pas de chez OpenAI. Le 403 pourrait donc viser l'usurpation et non le robot.

Un test tranche la question. Sur trois hôtes, j'ai envoyé huit agents différents depuis la même machine.

agent envoye                    lefigaro   ameli    doctolib
             (chemin)          /voyages      /          /
------------------------------------------------------------
Chrome 140 (temoin)               200       200        200
curl/8.7.1 (anonyme)              200       200        200
Wgzptmv/9.9 (chaine absurde)      200       200        200
OAI-SearchBot/1.0                 403       200        200
ClaudeBot/1.0                     403       403        200
Googlebot/2.1                     403       200        403
Chrome 140 + « ClaudeBot/1.0 »    403       403        200
Chrome 140 + « OAI-SearchBot »    403       200        200

Deux lectures s'imposent.

La chaîne absurde reçoit 200 partout. Il n'existe donc pas de liste blanche de navigateurs reconnus : un agent inconnu passe sans difficulté. Ce qui est refusé n'est pas l'inconnu, c'est le connu.

Et la dernière paire de lignes clôt le dossier. J'ai pris une chaîne Chrome parfaitement valide, celle qui reçoit 200, et je lui ai collé ClaudeBot/1.0 à la fin. Sur ameli.fr, la réponse bascule de 200 à 403. Même machine, même adresse, même seconde, même début de chaîne. Un seul mot a changé.

La règle cherche un nom en sous-chaîne dans l'agent utilisateur. Elle ne vérifie ni l'adresse IP, ni le DNS inverse, ni la signature de connexion : si elle le faisait, la chaîne absurde tomberait et le Chrome maquillé passerait. La réputation n'entre pas en jeu. Le nom suffit.

Deux règles que personne n'a publiées

Les deux cas de refus ciblé sont les plus instructifs, parce que leur robots.txt ne contient pas la moindre trace de la règle qui s'applique.

ameli.fr refuse ClaudeBot et lui seul. Les quatre autres robots entrent, le navigateur entre. Huit essais sur deux chemins, / et /assure/ : huit fois 403 pour ClaudeBot, seize fois 200 pour les témoins. Le robots.txt du site ne nomme ni ClaudeBot, ni GPTBot, ni PerplexityBot, ni aucun robot d'IA. Il contient un User-agent: * avec un Crawl-delay: 10 et une liste de chemins techniques. Rien, nulle part, n'annonce qu'un éditeur en particulier est écarté.

doctolib.fr refuse Googlebot et lui seul. Quatre essais, quatre fois 403, pendant que les quatre robots d'IA et le navigateur reçoivent 200. Le fichier ne nomme pas Googlebot davantage. L'inversion mérite d'être relue : sur ce site, les robots des moteurs génératifs passent et celui du moteur de recherche historique est refoulé.

Je ne sais pas si ces deux règles sont délibérées. Une règle anti-robot posée par défaut par un prestataire produit exactement la même trace qu'une décision mûre. C'est le problème : de l'extérieur comme de l'intérieur, rien ne distingue les deux, et le robots.txt n'en dit pas un mot.

Le cinquième cas est le miroir des autres. laredoute.fr admet les cinq robots et refuse le navigateur ainsi que curl. Le robot déclaré entre, le client humain reste dehors. La configuration existe donc dans les deux sens, ce qui achève de montrer que ces réglages sont des réglages, pas une loi de la nature.

Le cas cohérent, et il faut le citer

Un hôte du corpus fait les choses proprement, et il serait malhonnête de ne pas le dire.

francetvinfo.fr refuse les cinq robots et admet le navigateur, comme Le Figaro. La différence est que son robots.txt l'annonce. Sous un commentaire # LLM, le fichier empile 72 lignes User-agent: successives, de AI2Bot à YouBot en passant par GPTBot, ClaudeBot, OAI-SearchBot, PerplexityBot et Google-Extended, et les termine par un unique Disallow: /.

La déclaration et l'exécution disent la même chose. Un éditeur qui veut refuser les robots d'IA peut le faire, et le faire lisiblement. C'est ce qui rend le cas du Figaro gênant : la contradiction n'y est pas une fatalité technique, puisque le voisin du même secteur n'y tombe pas.

Ce relevé contredit le mien de la veille

Il faut le dire avant d'en tirer quoi que ce soit. L'article publié ici le 17 septembre sondait lui aussi trente sites français, avec GPTBot, ClaudeBot, PerplexityBot et un Chrome de bureau, et il concluait : « dix hôtes sur trente refusent l'accès, et ils le refusent à l'identique, pour un robot comme pour un navigateur. Zéro divergence sur les quatre agents. » Il ajoutait que le tri par nom de robot n'était pas ce qui était à l'oeuvre.

Vingt-quatre heures plus tard, je trouve cinq divergences, et le tri par nom est précisément ce qui est à l'oeuvre. Ameli était nommément dans le panel de la veille.

J'ai cherché la cause mécanique, sans la trouver. Le relevé du 17 septembre comptait les redirections dans une catégorie séparée, donc il ne les suivait pas, alors que celui-ci les suit. Rejouer ameli.fr avec les quatre agents de la veille et sans suivi de redirection donne le même résultat qu'aujourd'hui : 403 à ClaudeBot, 200 à GPTBot, à PerplexityBot et au navigateur. La méthode n'explique donc pas l'écart.

Restent deux possibilités que je ne peux pas départager. Soit la règle d'ameli.fr est apparue entre les deux relevés, soit le zéro de la veille était faux. Les panels ne sont pas identiques non plus : celui du 17 couvrait les télécoms, celui-ci la santé et les petites annonces, et la liste complète de la veille n'a pas été publiée, ce qui interdit une comparaison hôte par hôte.

Je penche pour la première hypothèse sans pouvoir la démontrer, et c'est un argument de plus pour le propos de cet article : une règle qui peut apparaître en vingt-quatre heures sur un site public est exactement ce qu'un fichier robots.txt ne vous dira jamais.

Ce que ça change pour vous

Votre robots.txt ne vous renseigne pas sur votre accessibilité réelle. Il dit ce que vous demandez, pas ce que votre serveur fait. Les cinq cas mesurés ici montrent les deux écarts possibles, le refus non déclaré et l'autorisation non appliquée.

Le test tient en une ligne et ne demande aucun outil. Un curl avec l'option -A suffit à savoir ce qu'un robot reçoit chez vous :

curl -s -o /dev/null -w '%{http_code}\n' \
  -A 'OAI-SearchBot/1.0' https://votresite.fr/

Lancez toujours un témoin. La même commande avec une chaîne Chrome, depuis la même machine, dans la même minute. Un 403 seul ne prouve rien : dix hôtes sur trente en renvoyaient un qui ne visait pas les robots. C'est la comparaison qui porte l'information, jamais le code isolé.

Ajoutez une chaîne inventée au protocole. Elle sépare en un appel le filtrage par liste noire de noms, où un agent inconnu passe, du filtrage par liste blanche de navigateurs, où il tombe. Les trois hôtes testés ici sont dans le premier cas.

Testez les chemins que vous avez ouverts, pas la page d'accueil. Si votre robots.txt contient des Allow: pour un agent, ce sont ces URL qu'il faut interroger. Le Figaro passe le test sur la partie qu'il ferme et le rate sur les neuf rubriques qu'il ouvre.

La réponse définitive est dans vos journaux serveur. Un sondage depuis l'extérieur montre ce que reçoit un agent qui se déclare. Seuls les journaux montrent ce que reçoivent les vrais robots, qui arrivent depuis des plages d'adresses publiées et peuvent être traités autrement. Si vos journaux ne contiennent aucune ligne de GPTBot ou de PerplexityBot alors que votre fichier les autorise, vous tenez votre réponse.

Ce que cet article n'établit pas

Cinq limites, qu'il vaut mieux nommer que laisser deviner.

Je n'ai pas interrogé ces sites depuis les plages d'adresses publiées par OpenAI, Anthropic, Perplexity ou Google. Mes requêtes viennent d'une adresse ordinaire. Un pare-feu qui vérifie les robots par leur adresse pourrait donc traiter différemment le vrai OAI-SearchBot et mon curl qui en porte le nom. Le test de la chaîne Chrome maquillée montre que la règle rencontrée ici s'applique sur le nom et non sur l'adresse, ce qui rend cette explication peu probable sur ces trois hôtes, mais il ne l'élimine pas pour l'ensemble du corpus.

Je ne sais pas qui a posé ces règles ni pourquoi. Un blocage décidé en comité de direction et un réglage d'usine laissé tel quel produisent le même 403. Je décris des effets observables, pas des intentions, et le mot « décision » employé plus haut désigne l'effet, pas le geste.

Le sondage est un instantané, pris un jour, depuis une seule origine réseau, principalement sur des pages d'accueil. Les deux passages complets et les essais répétés sur les trois cas notables écartent le hasard, ils n'écartent pas un changement de réglage la semaine prochaine.

La contradiction avec le relevé du 17 septembre reste non tranchée. Je ne dispose pas des réponses brutes de ce jour-là, seulement de leur total publié, et je ne peux donc pas dire si ameli.fr y répondait 200 à ClaudeBot ou si la divergence y est passée inaperçue. Les deux relevés sont datés, la question reste ouverte.

Enfin, les dix hôtes de la famille B restent une zone d'ombre assumée. Ils refusent tout ce qui vient de chez moi, donc je ne peux rien dire de leur politique envers les robots. Ce n'est pas un résultat nul, c'est une absence de mesure, et les deux ne se valent pas.

La liste des trente hôtes sondés

lemonde.fr          lefigaro.fr       liberation.fr
lesechos.fr         francetvinfo.fr   ouest-france.fr
cdiscount.com       fnac.com          darty.com
laredoute.fr        decathlon.fr      sephora.fr
boursorama.com      qonto.com         creditmutuel.fr
axa.fr              maif.fr           ameli.fr
service-public.fr   impots.gouv.fr    francetravail.fr
urssaf.fr           doctolib.fr       seloger.com
leboncoin.fr        blablacar.fr      payfit.com
swile.co            ovhcloud.com      abondance.com

Ce qu'il faut retenir

Le 403 est un refus exécuté, là où le robots.txt n'est qu'une consigne affichée. Les deux vivent à des étages différents de votre installation, et rien ne garantit qu'ils disent la même chose.

Sur trente hôtes français, cinq traitent un robot déclaré autrement qu'un navigateur. Le Figaro ouvre neuf rubriques à OAI-SearchBot dans son fichier et répond 403 sur les neuf. ameli.fr écarte ClaudeBot seul, doctolib.fr écarte Googlebot seul, et ni l'un ni l'autre ne le mentionne dans son robots.txt. La Redoute fait l'inverse et laisse entrer les robots en refusant le navigateur. francetvinfo.fr montre qu'on peut refuser les robots d'IA en le déclarant, en empilant 72 agents devant un Disallow: /.

La règle qui produit ces refus cherche un nom dans la chaîne d'agent utilisateur. Sur les trois hôtes passés au banc d'essai, une chaîne inventée passe sans encombre, et la même chaîne Chrome bascule de 200 à 403 dès qu'on lui colle ClaudeBot/1.0 à la fin.

La conséquence opérationnelle tient en une phrase : tant que vous n'avez pas lancé la commande, vous ne savez pas ce que votre site répond aux robots, et votre robots.txt ne vous le dira pas. L'article sur les PDF avait déjà mesuré le refus sélectif ; ce qu'ajoutent les neuf URL du Figaro, c'est qu'un fichier peut dire oui pendant que la machine dit non.

Chez Orbite, nous vérifions ce que vos protections renvoient réellement aux robots des moteurs génératifs, agent par agent et chemin par chemin, avant de toucher à la moindre ligne de contenu. Si vous voulez savoir ce que les vôtres répondent : parlons de votre visibilité générative. Les termes employés ici sont définis dans le glossaire GEO.