Audit gratuit 48 h
Technique13 min de lecture

Logs serveur : détecter et analyser le passage des robots IA.

Un rapport de positions ne montre pas les robots IA, et un outil d'analyse d'audience ne les voit pas non plus. Le journal d'accès de votre serveur, lui, enregistre chaque requête de OAI-SearchBot, de Claude-SearchBot ou de Perplexity-User : quand ils viennent, ce qu'ils lisent, ce qu'on leur répond. Voici les requêtes à lancer, les ordres de grandeur à comparer et la méthode pour relier ces passages aux citations que vous obtenez.

Sommaire de l'article

Les journaux serveur sont la seule preuve directe qu'un robot IA lit vos pages

Un outil d'analyse d'audience ne voit pas les robots. Google Analytics et ses équivalents reposent sur un script JavaScript que les robots de recherche IA n'exécutent pas ; un rapport de positions ne les voit pas davantage. Le seul endroit où le passage de OAI-SearchBot, de Claude-SearchBot ou de PerplexityBot laisse une trace vérifiable est le journal d'accès de votre serveur web, ou celui de votre CDN lorsqu'un intermédiaire répond à leur place.

Cette trace tranche trois questions que rien d'autre ne permet de trancher. Le robot vient-il, et à quelle fréquence ? Quelles pages lit-il, et lesquelles ignore-t-il ? Que lui répond votre serveur : une page complète, une redirection, une erreur 403 posée par un pare-feu ? Dans nos audits, la lecture des journaux est l'étape qui transforme une hypothèse (« nous sommes probablement bloqués ») en constat daté, et c'est souvent elle qui explique l'absence d'un site bien référencé dans les réponses génératives. Elle vérifie la première des quatre conditions d'une citation, l'accessibilité, avec des faits plutôt qu'avec des suppositions.

Deux précautions avant de commencer. Lisez les journaux au bon endroit : si un CDN ou un pare-feu applicatif filtre le trafic en amont, une requête bloquée n'atteint jamais le serveur d'origine, et son absence dans les journaux d'origine ne prouve rien ; il faut alors exporter les journaux du CDN, où la requête apparaît avec son code de refus. Conservez ensuite au moins trente jours d'historique : les robots de recherche IA passent bien moins souvent que Googlebot, et une fenêtre d'une semaine conduit à des conclusions fausses, dans un sens comme dans l'autre.

Quels agents chercher, et ce que leur présence signifie

Chaque éditeur exploite plusieurs robots, identifiés par un jeton distinct dans l'en-tête User-Agent, et ces jetons n'ont pas la même valeur pour vous. Un robot d'entraînement qui lit votre site ne dit rien de votre visibilité dans les réponses. Un robot d'index de recherche indique que vos pages entrent dans un index consultable au moment d'une question. Un agent déclenché à la demande signale qu'une conversation réelle a conduit le moteur jusqu'à votre page, pendant que l'utilisateur attendait sa réponse. Le guide des robots IA décrit chaque agent et sa syntaxe robots.txt ; le tableau ci-dessous se limite à leur lecture dans un journal.

AgentFamilleCe que sa présence indiqueCe que son absence suggère
GPTBotEntraînement (OpenAI)Collecte pour l'entraînement des modèlesRien, pour la recherche ChatGPT
OAI-SearchBotIndex de recherche (OpenAI)Vos pages entrent dans l'index de la recherche ChatGPTBlocage en amont, ou site jamais découvert
ChatGPT-UserÀ la demande (OpenAI)Un utilisateur de ChatGPT a déclenché la lecture de la pageAucune conversation ne mène à vos pages
ClaudeBotEntraînement (Anthropic)Collecte pour l'entraînement des modèlesRien, pour la recherche Claude
Claude-SearchBotIndex de recherche (Anthropic)Vos pages entrent dans l'index de la recherche ClaudeBlocage en amont, ou site jamais découvert
Claude-UserÀ la demande (Anthropic)Une conversation Claude a conduit à la pageAucune conversation ne mène à vos pages
PerplexityBotIndex de recherche (Perplexity)Vos pages entrent dans l'index de PerplexityBlocage en amont, ou site jamais découvert
Perplexity-UserÀ la demande (Perplexity)Une requête Perplexity a déclenché la lecture de la pageAucune conversation ne mène à vos pages
GooglebotIndex Google, AI Overviews, AI ModeExploration classique, qui alimente aussi les réponses IA de GoogleProblème d'indexation grave, bien au-delà du GEO
BingbotIndex Bing, CopilotExploration qui alimente Copilot et les partenaires de BingSite absent de Bing et de Copilot

Tableau : faites défiler horizontalement.

Un cas particulier mérite d'être signalé : Google-Extended n'apparaîtra jamais dans vos journaux. D'après la documentation de Google, ce jeton ne correspond à aucun agent distinct ; il sert uniquement, dans le fichier robots.txt, à contrôler l'usage de vos contenus pour l'entraînement de Gemini, tandis que l'exploration reste effectuée par Googlebot. Chercher Google-Extended dans un journal, ne pas le trouver et en conclure quelque chose est une erreur que nous rencontrons régulièrement.

Schéma 1Les trois familles d'agents, et l'indicateur à suivre pour chacune dans les journaux.
  1. 1EntraînementGPTBot, ClaudeBot. Suivre le volume et les pages lues, pour vérifier que votre politique robots.txt est respectée.Sinon : un refus d'entraînement resté lettre morte passe inaperçu.
  2. 2Index de rechercheOAI-SearchBot, Claude-SearchBot, PerplexityBot, Googlebot, Bingbot. Suivre la couverture : la part de vos pages importantes lues au moins une fois en trente jours.Sinon : une page jamais lue ne peut pas être retenue comme source.
  3. 3À la demandeChatGPT-User, Claude-User, Perplexity-User. Suivre les URL demandées et l'heure : chaque requête correspond à une conversation en cours.Sinon : aucune conversation n'atteint vos pages ; le problème est en amont.

Lire une ligne de journal : les cinq champs qui comptent

Les serveurs Apache et Nginx écrivent par défaut un format voisin, dit « combiné », dans lequel chaque requête occupe une ligne. Cinq champs suffisent à l'analyse : l'adresse IP d'origine, l'horodatage, la ligne de requête (méthode, URL, protocole), le code de statut renvoyé et l'en-tête User-Agent. La taille de la réponse est un sixième indice utile : quelques centaines d'octets servis à un robot, là où un navigateur reçoit cinquante kilo-octets, signalent une page vidée, une redirection ou un défi anti-robot.

Schéma 2Une ligne de journal au format combiné, champ par champ, et ce que chacun apporte au diagnostic.
Adresse IP
203.0.113.42 — à confronter aux plages d'adresses publiées par l'éditeur avant toute conclusion.
Horodatage
[04/May/2026:09:14:27 +0200] — la fréquence de passage et l'heure, à rapprocher de l'exécution de votre panel de questions.
Requête
GET /guides/robots-ia HTTP/1.1
Statut
200 : la page a été servie. Un 403, un 429 ou un 503 signalent un refus, une limitation de débit ou une indisponibilité.
Taille
48213 octets — cohérent avec une page complète ; quelques centaines d'octets trahissent un contenu vidé ou une page de défi.
User-Agent
Mozilla/5.0 … compatible; OAI-SearchBot/1.0; +https://openai.com/searchbot — le jeton qui identifie l'agent, et l'adresse de sa documentation.

Si votre hébergeur ne donne pas accès à ces fichiers bruts, demandez-lui un export sur trente jours, ou activez la journalisation de votre CDN : la plupart proposent un export vers un stockage externe, ou un tableau de bord filtrable par agent. Un journal tronqué à quelques jours, ou expurgé de l'en-tête User-Agent pour des raisons de volume, ne permet pas l'analyse ; c'est un point à régler avec l'hébergeur avant l'audit.

Les requêtes qui donnent une réponse en dix minutes

Quelques commandes suffisent pour obtenir un premier diagnostic sur un fichier de journal standard, sans outil spécialisé. Les exemples ci-dessous supposent le format combiné ; adaptez les numéros de champs si votre serveur en utilise un autre. L'option -i rend la recherche insensible à la casse, ce qui évite de manquer Bingbot, dont le jeton s'écrit en minuscules dans l'en-tête réel.

# 1. Combien de requêtes par agent sur la période ?
grep -oiE 'GPTBot|OAI-SearchBot|ChatGPT-User|ClaudeBot|Claude-SearchBot|Claude-User|PerplexityBot|Perplexity-User|Googlebot|bingbot' access.log | sort | uniq -c | sort -rn

# 2. Quelles pages OAI-SearchBot lit-il le plus ?
grep 'OAI-SearchBot' access.log | awk '{print $7}' | sort | uniq -c | sort -rn | head -30

# 3. Que répond le serveur à Claude-SearchBot ? (codes de statut)
grep 'Claude-SearchBot' access.log | awk '{print $9}' | sort | uniq -c

# 4. Passage de PerplexityBot, jour par jour
grep 'PerplexityBot' access.log | awk -F'[' '{print substr($2,1,11)}' | sort | uniq -c

# 5. Pages demandées par les agents à la demande, avec l'heure et le statut
grep -E 'ChatGPT-User|Claude-User|Perplexity-User' access.log | awk '{print $4, $7, $9}'

Lisez les résultats dans cet ordre. La première commande dit si les agents viennent : un compte nul sur trente jours pour OAI-SearchBot et PerplexityBot, alors que Googlebot passe chaque jour, oriente vers un blocage ou vers un site jamais découvert. La troisième dit ce qu'on leur répond : une majorité de codes 403 ou 429 désigne une règle de pare-feu ou une limitation de débit, à corriger avant tout travail de contenu ; l'article sur les blocages involontaires des pare-feu et des CDN détaille les correctifs. La deuxième et la cinquième disent ce qu'ils lisent, et c'est là que la stratégie commence.

Fréquence de passage et pages consultées : ce qu'il faut comparer

Aucun éditeur de moteur génératif ne publie de fréquence d'exploration, et les volumes varient fortement d'un site à l'autre. Deux repères se dégagent néanmoins des journaux que nous analysons. Le premier : les robots d'index de recherche IA passent beaucoup moins souvent que Googlebot, et se concentrent sur un sous-ensemble de pages ; un site de deux mille URL peut n'en voir que quelques dizaines lues par OAI-SearchBot dans le mois. Le second : les agents à la demande sont rares, quelques requêtes par jour sur un site B2B de taille moyenne, mais chacune correspond à une conversation réelle et vaut donc davantage qu'un passage d'indexation.

La comparaison la plus instructive n'oppose pas les agents entre eux, mais les sections du site. Répartissez par répertoire les requêtes des robots d'index d'un côté, celles des agents à la demande de l'autre. Vous découvrez alors quelles pages entrent dans l'index sans jamais servir dans une réponse, et lesquelles sont réellement lues pendant qu'un utilisateur attend.

Schéma 3Répartition des requêtes par section du site sur trente jours : robots d'index de recherche IA d'un côté, agents à la demande de l'autre.
/guides
34 %
63 %
/blog
29 %
21 %
/produits
17 %
11 %
/a-propos, /equipe
6 %
4 %
/mentions-legales, /cgv
14 %
1 %
Robots d'index (OAI-SearchBot, PerplexityBot, Claude-SearchBot)Agents à la demande (ChatGPT-User, Perplexity-User, Claude-User)

Données illustratives. Ce qu'il faut y lire : les guides concentrent les lectures en conversation, alors que les pages légales consomment une part de l'exploration sans jamais servir ; on renforce les guides, et l'on écarte les pages légales de l'exploration IA.

Ce type de lecture révèle aussi les absences. Une page pilier jamais demandée par un agent à la demande, alors qu'elle est indexée et bien positionnée sur Google, est une page que les moteurs génératifs ne retiennent pas comme source. Le problème n'est plus l'accès, mais la citabilité de son contenu, et c'est un autre chantier.

Authentifier un agent avant d'en tirer une conclusion

L'en-tête User-Agent est déclaratif : n'importe quel script peut se présenter comme GPTBot ou comme Googlebot. Avant de conclure qu'un éditeur lit votre site, ou de bloquer une adresse qui se prétend robot officiel, vérifiez l'origine de la requête. Deux méthodes existent, documentées par les éditeurs eux-mêmes. La première est la résolution DNS inverse : Google et Microsoft indiquent que leurs robots proviennent d'hôtes dont le nom se termine par googlebot.com ou google.com pour l'un, search.msn.com pour l'autre, et qu'une résolution directe du nom obtenu doit ramener à l'adresse initiale. La seconde est la liste d'adresses publiée : OpenAI, Perplexity, Google et Microsoft mettent à disposition des fichiers listant les plages utilisées par chacun de leurs agents.

# Résolution inverse d'une adresse qui se présente comme Googlebot
host 66.249.66.1
# → crawl-66-249-66-1.googlebot.com ; confirmer par la résolution directe
host crawl-66-249-66-1.googlebot.com

# Adresses distinctes qui se présentent comme OAI-SearchBot, par volume
grep 'OAI-SearchBot' access.log | awk '{print $1}' | sort | uniq -c | sort -rn | head

Pour les éditeurs qui publient une liste, comparez les adresses relevées dans vos journaux aux plages annoncées ; pour les autres, tenez-vous à la documentation la plus récente, car ces listes évoluent. Une adresse qui ne figure dans aucune plage et se présente sous un jeton officiel est presque toujours un outil tiers, un aspirateur de contenu ou un concurrent qui teste votre site. Elle ne doit ni fausser votre lecture, ni déclencher un blocage du jeton lui-même : bloquez l'adresse, jamais l'agent.

Relier les passages aux citations que vous obtenez

Les journaux prennent tout leur sens rapprochés de la mesure de la part de citation. Le principe est simple : vous exécutez votre panel de questions dans les moteurs, vous relevez les URL citées, puis vous cherchez ces mêmes URL dans les journaux, en particulier dans les requêtes des agents à la demande autour de l'heure d'exécution. Le croisement produit quatre situations, et chacune appelle une décision différente.

Schéma 4Le croisement d'un panel de questions avec les journaux, et les quatre situations qu'il fait apparaître.
  1. 01Panel exécutéLes questions sont passées dans ChatGPT, Perplexity et Claude à heure connue ; les URL citées sont relevées.
  2. 02Extraction des journauxRequêtes des agents à la demande et des robots d'index sur la même fenêtre, avec URL, heure et statut.
  3. 03RapprochementChaque URL est classée : citée et visitée, citée sans visite, visitée sans citation, ni l'une ni l'autre.
  4. 04DécisionVisitée sans citation : réécrire le passage. Ni visitée ni citée : vérifier l'accès et la découverte. Citée sans visite : la réponse vient de l'index.

Deux nuances empêchent de lire ce croisement de manière mécanique. D'abord, une citation n'implique pas toujours une requête à la demande : le moteur peut répondre à partir de son index, alimenté plus tôt par OAI-SearchBot ou PerplexityBot, sans relire la page pendant la conversation. Ensuite, une requête à la demande ne garantit pas une citation : le moteur a lu la page, puis l'a écartée au profit d'une autre source, ce qui désigne un problème de contenu plutôt que d'accès. Ce sont précisément ces pages, lues mais non retenues, qui constituent la meilleure liste de réécriture prioritaire.

Point de vigilance

Les journaux enregistrent aussi les visites humaines qui suivent une citation, reconnaissables au référent ou aux paramètres d'URL ajoutés par les moteurs. Ne les confondez pas avec le passage des robots : les premières mesurent l'effet d'une citation, les seconds sa cause. Le suivi du trafic venu de ChatGPT, Perplexity et Gemini dans GA4 traite des premières.

Ce qu'il faut retenir

L'essentiel
  • Les journaux d'accès sont la seule trace vérifiable du passage des robots de recherche IA ; les outils d'audience ne les voient pas.
  • Trois familles à distinguer : robots d'entraînement, robots d'index de recherche, agents à la demande ; seules les deux dernières concernent vos citations.
  • Cinq commandes grep et awk suffisent à établir volumes, pages lues et codes de statut par agent sur trente jours.
  • Authentifiez un agent par résolution DNS inverse ou par les plages d'adresses publiées avant toute conclusion ou tout blocage.
  • Le croisement des URL citées avec les requêtes des agents à la demande désigne les pages lues mais non retenues : ce sont celles à réécrire en priorité.

Questions fréquentes

Les robots IA apparaissent-ils dans Google Analytics ?

Non. Google Analytics et les outils comparables mesurent l'audience par un script JavaScript exécuté dans le navigateur, et les robots de recherche IA n'exécutent pas ce script. Leur passage n'est visible que dans les journaux d'accès du serveur web ou du CDN, qui enregistrent chaque requête HTTP avec son en-tête User-Agent, son adresse d'origine et le code de statut renvoyé.

Que conclure si OAI-SearchBot n'apparaît jamais dans mes journaux sur trente jours ?

Deux explications dominent. Soit une règle de CDN ou de pare-feu refuse l'agent en amont, et la requête apparaît alors dans les journaux du CDN avec un code 403 sans jamais atteindre votre serveur ; soit l'index de recherche d'OpenAI n'a pas découvert votre site. Vérifiez d'abord le robots.txt et les règles anti-robots, puis la présence de liens externes et d'un sitemap à jour.

Peut-on faire confiance à l'en-tête User-Agent d'un robot ?

Non, cet en-tête est déclaratif et n'importe quel script peut l'imiter. Avant de conclure ou de bloquer, vérifiez l'origine de la requête : résolution DNS inverse pour Googlebot et Bingbot, comparaison avec les plages d'adresses publiées par OpenAI, Perplexity, Google et Microsoft pour leurs agents. Une adresse hors de ces plages qui se présente sous un jeton officiel est un outil tiers, à bloquer par son adresse et non par le jeton.

À quelle fréquence les robots de recherche IA passent-ils sur un site ?

Aucun éditeur ne publie de fréquence, et elle varie selon la taille et la notoriété du site. Dans les journaux que nous analysons, les robots d'index comme OAI-SearchBot ou PerplexityBot passent bien moins souvent que Googlebot et se concentrent sur un sous-ensemble de pages ; les agents à la demande ne génèrent que quelques requêtes par jour, chacune liée à une conversation réelle. D'où la nécessité d'une fenêtre d'au moins trente jours.

Faut-il analyser les journaux du serveur d'origine ou ceux du CDN ?

Les deux, en commençant par le CDN s'il filtre le trafic. Une requête refusée par le CDN n'atteint jamais l'origine et n'y laisse aucune trace ; inversement, une page servie depuis le cache du CDN n'est pas non plus enregistrée à l'origine. Les journaux d'origine restent indispensables pour savoir ce que l'application a réellement servi : code de statut, taille de la réponse, redirections.

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.