Audit gratuit 48 h
Technique13 min de lecture

Cloudflare, WAF et pare-feu anti-bots : les blocages involontaires qui vous effacent des IA.

Personne n'a décidé de sortir de ChatGPT. Quelqu'un a coché « bloquer les robots IA » dans l'interface du CDN, activé un défi pour le trafic automatisé, ou serré une limite de débit après une attaque. Trois gestes de bon sens, et le site cesse d'exister pour les moteurs génératifs, sans qu'aucun rapport ne le signale. Cet article décrit les trois mécanismes, la manière de les diagnostiquer en une heure, et les correctifs qui protègent le site sans l'effacer.

Sommaire de l'article

Le blocage involontaire, première cause d'absence sur des sites bien référencés

Dans nos audits, quand un site bien positionné sur Google n'apparaît dans aucune réponse de ChatGPT, de Claude ou de Perplexity, la cause la plus fréquente n'est ni le contenu ni le robots.txt. C'est une couche de protection, placée entre le robot et le serveur, qui traite les robots de recherche IA comme des menaces. Le robots.txt dit « bienvenue », le pare-feu dit « non », et c'est le pare-feu qui a le dernier mot, parce qu'il répond avant que la page ne soit servie.

Ces protections ne sont pas absurdes. Les robots IA ont généré, depuis 2023, un volume de requêtes que beaucoup de sites n'avaient pas anticipé, des extracteurs anonymes se font passer pour eux, et les fournisseurs de CDN ont répondu par des outils simples : une case à cocher, un mode de défi, une règle de débit. Le problème est que ces outils ont d'abord traité « les robots IA » comme une catégorie unique, alors que les quatre conditions d'une citation décrites dans notre méthode pour être cité commencent par l'accès des robots de recherche, et non des robots d'entraînement. Les interfaces se sont affinées depuis, mais les réglages pris à l'époque restent en place.

Schéma 1Le parcours d'une requête de robot entre l'internet et votre serveur : chaque couche peut la refuser avant que le robots.txt ou la page ne soient lus.
  1. 01Bordure du CDNLa requête arrive sur le réseau du CDN, qui l'évalue avant tout contact avec votre serveur.
  2. 02Règles géréesListes d'agents, catégorie « robots IA », mode de lutte contre les robots. C'est ici que la plupart des blocages involontaires se produisent.
  3. 03DéfiLe trafic jugé automatisé reçoit une page de vérification qui exige l'exécution de JavaScript.
  4. 04Limitation de débitAu-delà d'un seuil de requêtes par minute, la réponse devient 429 ou 403.
  5. 05Hébergeur et CMSRègles de l'hébergeur, module de sécurité du CMS, fichier .htaccess.
  6. 06OrigineLe serveur lit le robots.txt, sert la page. Seules les requêtes arrivées ici comptent.

Trois mécanismes, trois symptômes

Les blocages involontaires se ramènent à trois mécanismes. Chacun laisse une trace différente dans les journaux et dans la réponse HTTP, ce qui permet de les distinguer sans accès à la configuration.

Schéma 2Les trois mécanismes de blocage, le geste qui les déclenche et le symptôme qu'ils laissent dans les réponses aux robots.
  1. 1Règle par catégorieUne case « bloquer les robots IA », une liste d'agents interdits, un mode de lutte contre les robots réglé sur « bloquer ».Symptôme : 403 net, sans page de défi, sur toutes les URL.
  2. 2Défi JavaScriptUne page de vérification servie au trafic jugé automatisé. Un robot qui n'exécute pas de script ne la franchit jamais.Symptôme : 403 ou 503 avec une page « vérification en cours » de quelques kilooctets.
  3. 3Limitation de débitUn seuil de requêtes par adresse et par minute, réglé pour des humains. Les robots explorent par rafales.Symptôme : des 200 puis des 429 en série, sur une même adresse.

Le premier mécanisme est le plus répandu, parce qu'il est le plus simple à activer. Cloudflare a proposé dès 2024 un blocage en un clic des robots d'IA et, d'après ses annonces de 2025, l'applique par défaut aux nouveaux domaines, avec depuis un contrôle robot par robot qui classe les agents selon leur finalité. Les autres fournisseurs, comme AWS, Akamai, Fastly ou Vercel, proposent des règles gérées comparables. Le réglage n'est donc pas une erreur en soi ; il le devient quand il englobe OAI-SearchBot, Claude-SearchBot et PerplexityBot avec les robots d'entraînement, ou quand il a été fait avant que l'interface ne permette de les distinguer.

Le deuxième mécanisme est le plus sournois. Un défi géré est conçu pour laisser passer les humains sans les déranger et pour arrêter les automates ; il exige l'exécution de JavaScript. Les robots de recherche IA n'en exécutent pas, comme l'explique notre article sur le rendu JavaScript. Ils reçoivent donc la page de défi à la place du contenu, souvent avec un code 403, parfois avec un 200 trompeur. Le troisième mécanisme, la limitation de débit, ne bloque pas le site mais le rend inexplorable : le robot lit vingt pages, reçoit des 429, et passe à un autre site.

Diagnostiquer en une heure

Le diagnostic commence par les journaux, parce qu'ils montrent ce qui s'est réellement passé, et non ce que la configuration laisse supposer. Il continue par des requêtes de test, qui reproduisent la chaîne User-Agent d'un robot et lisent la réponse. Il se termine dans la configuration, quand on sait ce que l'on cherche.

Réponse observéeCause probableOù chercher
403 avec en-tête cf-mitigated: challengeDéfi imposé par CloudflareParamètres des robots, règles WAF, niveau de sécurité
403 sans page de défiRègle de blocage par agent ou par catégorieRègles gérées, règles personnalisées, fichier .htaccess
429Limitation de débitRègles de débit du CDN, module de sécurité du CMS
503 sur toutes les URLMode « sous attaque » ou saturationNiveau de sécurité, capacité du serveur
200 de quelques kilooctetsPage de défi ou coquille vide servie en 200Corps de la réponse ; rendu JavaScript
Redirection vers une page de vérificationRègle de redirection pour le trafic non reconnuRègles de redirection, bannière de consentement

Tableau : faites défiler horizontalement.

Dans les journaux du serveur ou dans le journal des événements de sécurité du CDN, filtrez sur les agents de recherche IA et regardez la répartition des codes de réponse sur trente jours. Un agent absent des journaux d'origine mais présent dans les événements du CDN est bloqué à la bordure ; un agent absent des deux n'a jamais atteint le site, ou ne l'a jamais découvert. Les requêtes de test complètent cette lecture : la commande ci-dessous affiche les en-têtes de réponse, où se lit la signature d'un défi.

# En-têtes de réponse pour un robot de recherche IA
curl -s -D - -o /dev/null \
  -A "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko); compatible; PerplexityBot/1.0; +https://perplexity.ai/perplexitybot" \
  https://www.exemple.fr/guide/

# Ce que l'on cherche dans la sortie :
HTTP/2 403
cf-mitigated: challenge        # défi Cloudflare : le robot ne passera pas
server: cloudflare
cf-ray: 8c1f…-CDG              # identifiant à donner au support
Schéma 3Anatomie d'une réponse de défi telle que la reçoit un robot : le code, l'en-tête qui signe le mécanisme, et le corps que le robot ne peut pas exécuter.
Statut
403 Forbidden, parfois 503, rarement 200
En-tête
cf-mitigated: challenge. Documenté par Cloudflare, c'est la preuve qu'un défi a été servi et non la page. D'autres CDN utilisent un en-tête ou un cookie propre.
Corps
Une page HTML de quelques kilooctets, un titre du type « vérification en cours », et un script qui doit s'exécuter pour obtenir le contenu.
Lecture du robot
Aucun texte citable, aucune donnée structurée. Pour le moteur, la page est vide ou interdite ; elle n'est pas retenue comme source.

Une précaution d'interprétation : vos tests partent de votre adresse IP, pas de celles des éditeurs. Une règle fondée sur la réputation de l'adresse, sur sa géographie ou sur le statut de robot vérifié ne se reproduit pas depuis un poste de travail. Un test qui passe ne prouve donc pas que le robot passe ; un test qui échoue, lui, désigne à coup sûr une règle fondée sur la chaîne d'agent. Le juge de paix reste le journal, dont l'exploitation détaillée fait l'objet de notre article sur les logs serveur.

Corriger sans ouvrir la porte à tous

La correction ne consiste pas à désactiver la protection, mais à la rendre discriminante. Le principe : les robots de recherche IA authentifiés passent sans défi ni limite, les robots d'entraînement suivent la politique exprimée dans le robots.txt, et tout le reste du trafic automatisé reste soumis aux règles existantes. Trois réglages y suffisent dans la plupart des CDN.

  • Une règle d'exemption placée avant les règles de blocage. Elle reconnaît les agents de recherche IA voulus et les fait sauter les règles gérées, le défi et la limitation de débit. L'ordre compte : une exemption placée après un blocage ne s'applique jamais.
  • L'authentification par le statut de robot vérifié. Les grands CDN tiennent un annuaire de robots dont ils vérifient l'origine ; celui de Cloudflare recense les agents d'OpenAI, d'Anthropic et de Perplexity. Conditionner l'exemption à ce statut, et non à la seule chaîne d'agent, ferme la porte aux imitateurs.
  • Le contrôle robot par robot, quand il existe. Là où l'interface classe les agents par finalité, la bonne configuration se lit en une ligne : entraînement selon votre politique, recherche et consultation à la demande autorisées.
# Cloudflare, règle WAF personnalisée, placée en premier
# Action : ignorer (règles gérées, défi, limitation de débit)
(cf.client.bot and http.user_agent contains "OAI-SearchBot")
or (cf.client.bot and http.user_agent contains "Claude-SearchBot")
or (cf.client.bot and http.user_agent contains "PerplexityBot")
or (cf.client.bot and http.user_agent contains "ChatGPT-User")
or (cf.client.bot and http.user_agent contains "Perplexity-User")

# Nginx, sans CDN : aucune limitation de débit pour ces agents
# (une clé vide exclut la requête de la zone)
map $http_user_agent $limite_cle {
    default              $binary_remote_addr;
    ~OAI-SearchBot       "";
    ~Claude-SearchBot    "";
    ~PerplexityBot       "";
}
limit_req_zone $limite_cle zone=generale:10m rate=10r/s;

Le champ cf.client.bot de l'exemple est vrai quand Cloudflare a vérifié l'origine de la requête ; la condition sur la chaîne d'agent précise ensuite lesquels des robots vérifiés sont concernés. Sans CDN, l'équivalent consiste à combiner la chaîne d'agent avec les plages d'adresses que publient OpenAI, Perplexity, Google et Microsoft, faute de quoi l'exemption par chaîne seule devient une porte ouverte aux extracteurs qui l'imitent. Dans ce cas, mieux vaut une exemption limitée à la limitation de débit, qui coûte peu si elle est abusée, qu'une exemption totale.

Point de vigilance

Le défi JavaScript n'est jamais la bonne réponse pour un robot déclaré. Ou bien vous voulez qu'il lise le site, et il faut l'autoriser ; ou bien vous ne le voulez pas, et un 403 franc, ou mieux une règle robots.txt, est plus honnête et plus lisible dans vos journaux. Un défi servi à un robot est un blocage qui ne dit pas son nom.

Les couches que l'on oublie : hébergeur, CMS, géoblocage

Le CDN n'est pas la seule couche. Un site sans Cloudflare peut être tout aussi fermé par des règles plus anciennes, écrites pour d'autres menaces et jamais relues. Les cas suivants reviennent dans nos audits, souvent cumulés.

  • Une règle .htaccess qui refuse tout agent contenant « bot », écrite contre les extracteurs il y a des années ; elle bloque OAI-SearchBot, PerplexityBot et, à l'occasion, Googlebot.
  • Un module de sécurité du CMS réglé pour bloquer les « faux robots » ou pour limiter les requêtes par adresse, avec des seuils pensés pour des visiteurs humains.
  • Un jeu de règles de pare-feu applicatif qui refuse les clients HTTP sans en-têtes de navigateur complets, alors que les robots n'envoient ni cookies ni en-têtes d'acceptation de langue.
  • Un blocage géographique qui n'admet que le trafic européen : les adresses publiées par les éditeurs de moteurs sont, pour l'essentiel, situées aux États-Unis au moment où nous écrivons.
  • Une protection contre les attaques par déni de service laissée en mode élevé après un incident, qui impose un défi à toute requête non reconnue.
  • Une bannière de consentement rendue côté serveur, qui remplace le contenu par une demande d'accord tant qu'aucun cookie n'est présent.

Chacune de ces couches se teste de la même manière : la requête avec chaîne d'agent, la lecture du code de réponse et de la taille, puis les journaux. La difficulté n'est pas technique, elle est organisationnelle : l'hébergeur, l'agence web, le prestataire de sécurité et le service marketing ne se parlent pas, et personne n'a la vue complète de la chaîne. L'inventaire des couches, de la bordure jusqu'au CMS, est le premier livrable d'un audit d'accès.

Bloquer volontairement, mais au bon endroit

Rien n'interdit de refuser certains robots ; ce qui coûte, c'est de le faire au mauvais endroit et avec le mauvais périmètre. La répartition que nous recommandons est simple. Le robots.txt exprime la politique envers les robots déclarés, qui le respectent : c'est là que se décide le sort de GPTBot, de ClaudeBot ou de Google-Extended, selon la stratégie décrite dans notre article sur le robots.txt en deux niveaux. Le pare-feu s'occupe de ce que le robots.txt ne peut pas régler : les extracteurs anonymes, les imitateurs, les rafales anormales. Chaque outil fait ce pour quoi il est conçu, et les journaux restent lisibles.

Schéma 4Répartition des codes de réponse servis aux robots de recherche IA sur un même site, avant et après la correction des règles du CDN.
200, page servie
31 %
96 %
403, défi ou blocage
53 %
1 %
429, limitation de débit
14 %
2 %
5xx
2 %
1 %
Avant correctionAprès correction

Données illustratives. Ce qu'il faut y lire : avant correction, deux requêtes sur trois n'atteignaient pas la page ; le site était lisible pour Google et invisible pour les autres moteurs, avec un robots.txt irréprochable.

Le cas des robots d'entraînement mérite une précision. Si votre politique les refuse, le robots.txt suffit pour les éditeurs qui le respectent, et le pare-feu n'a pas à s'en mêler ; les bloquer aussi au CDN ne fait que brouiller les journaux, et n'arrête pas davantage les imitateurs, qui ne portent pas ces noms. Si votre politique les autorise, le pare-feu ne doit pas les contredire. Dans les deux cas, la règle du CDN qui « bloque les robots IA » en bloc n'a plus de raison d'être.

Vérifier, puis surveiller

Un correctif se valide dans les journaux, pas dans l'interface. Après modification des règles, les robots de recherche IA doivent réapparaître dans les journaux d'origine avec des réponses 200 de taille normale, en général sous quelques jours ; s'ils ne reviennent pas, une autre couche les arrête, ou ils n'ont pas de raison de revenir parce que le site ne leur a jamais été présenté. Quelques semaines plus tard, la part de citation sur le panel de questions doit bouger, moteur par moteur.

La surveillance est ensuite hebdomadaire, parce que les réglages changent sans prévenir : un collègue active un mode de protection après une alerte, le fournisseur de CDN modifie un comportement par défaut, un module du CMS se met à jour avec de nouvelles options cochées. Deux indicateurs suffisent : la part de réponses autres que 200 servies à chaque agent de recherche IA, et le nombre de pages distinctes qu'il a lues. Une hausse des 403 ou des 429, ou une chute brutale du nombre de pages, déclenche le diagnostic décrit plus haut. Une règle d'exemption documentée, avec sa raison et son auteur, évite qu'elle ne soit supprimée au prochain nettoyage.

Ce qu'il faut retenir

L'essentiel
  • Le pare-feu répond avant le robots.txt : un site peut dire « bienvenue » et refuser en même temps, sans qu'aucun rapport ne le signale.
  • Trois mécanismes : la règle par catégorie (403 net), le défi JavaScript (page de vérification qu'un robot ne résout jamais), la limitation de débit (429 en rafale).
  • Le diagnostic tient en trois gestes : journaux filtrés par agent, requêtes de test avec lecture des en-têtes, inventaire des couches jusqu'au CMS.
  • La correction rend la protection discriminante : exemption des robots de recherche IA vérifiés, placée avant les blocages, jamais de défi pour un robot déclaré.
  • Le robots.txt exprime la politique envers les robots déclarés, le pare-feu traite les imitateurs ; le bloc « bloquer les robots IA » n'a plus de raison d'être.

Questions fréquentes

Cloudflare bloque-t-il les robots IA par défaut ?

D'après les annonces de Cloudflare, oui pour les domaines créés depuis 2025, et sur option pour les autres, par une règle « robots d'IA » activable en un clic. Le réglage est modifiable robot par robot dans l'interface dédiée, qui classe les agents selon leur finalité. Vérifiez la configuration de votre zone plutôt que de supposer : le comportement par défaut a changé plusieurs fois, et un réglage ancien peut englober les robots de recherche IA.

Comment savoir si mon pare-feu bloque OAI-SearchBot ou PerplexityBot ?

Filtrez les journaux du serveur et les événements de sécurité du CDN sur ces agents et regardez les codes de réponse : des 403, des 429 ou une absence totale signalent un blocage. Complétez par une requête de test qui déclare la chaîne d'agent et affiche les en-têtes de réponse ; un en-tête cf-mitigated: challenge prouve qu'un défi est servi. Un test qui échoue est concluant ; un test qui passe ne prouve rien, car votre adresse IP n'est pas celle de l'éditeur.

Faut-il autoriser tous les robots IA dans le pare-feu ?

Non. Autorisez les robots de recherche IA et les agents de consultation à la demande, dont dépend la citation, en conditionnant l'exemption au statut de robot vérifié. Les robots d'entraînement relèvent de votre politique robots.txt, que les éditeurs déclarés respectent, et n'ont pas besoin d'une règle de pare-feu. Le reste du trafic automatisé, extracteurs et imitateurs, reste soumis aux protections existantes.

Un défi JavaScript est-il un blocage ?

Pour un robot de recherche IA, oui. Le défi exige l'exécution d'un script, et ces robots n'en exécutent pas ; ils reçoivent une page de vérification de quelques kilooctets au lieu du contenu, parfois avec un code 200 qui masque le problème dans les rapports. Pour un robot déclaré, la seule configuration cohérente est l'autorisation ou le refus explicite ; le défi ne convient qu'au trafic dont on ne sait rien.

Le blocage géographique concerne-t-il les robots IA ?

Oui, et c'est un cas fréquent sur les sites français qui n'admettent que le trafic européen pour réduire les tentatives d'intrusion. Les adresses IP publiées par OpenAI, Anthropic et Perplexity sont, au moment où nous écrivons, situées pour l'essentiel aux États-Unis. Une exemption des robots vérifiés, placée avant la règle géographique, conserve la protection pour le reste du trafic tout en laissant passer les moteurs.

Portrait de Kamel Malek
Kamel Malek
Fondateur & directeur de l'agence

Praticien du référencement depuis 2001, Kamel Malek dirige SEO360 (Alicante, Valence, Madrid, Paris). Il a publié trois ouvrages sur la visibilité dans les moteurs génératifs, dont Generative Engine Optimization et Rétablir les faits.