Agents IA anonymes : ce que vos logs serveur ne voient pas
Un agent doté de son propre navigateur laisse la même trace qu'un humain. Ce que prouvent les logs, ce que changent les signatures, et le cas Perplexity.
Autant l'admettre d'entrée : PSentry ne sait pas quel agent IA a lu votre site hier. L'outil mesure ce que répondent quatre assistants quand on leur pose une question, pas qui a téléchargé quelle page. Les logs serveur semblent l'endroit naturel pour combler ce manque, mais ils ont leur propre angle mort, et il est structurel : un agent IA qui ne se présente pas laisse dans les logs la même ligne qu'une personne devant son navigateur.
Notre article sur ce à quoi ressemble un crawler d'IA dans vos logs traitait des robots qui s'annoncent. Celui-ci traite des autres : ce qu'un fichier de logs prouve à leur sujet, ce qu'il ne prouve pas, et pourquoi la frontière a bougé en 2025.
Perplexity et Cloudflare : deux récits, aucune preuve dans vos logs
Le cas le plus parlant date du 4 août 2025. Ce jour-là, Cloudflare a publié un billet où l'entreprise affirme qu'après avoir bloqué PerplexityBot et Perplexity-User sur des sites de test, elle a observé des requêtes d'un crawler non déclaré qui se présentait comme Chrome sous macOS, depuis des adresses IP hors des plages publiées par Perplexity. Dans le même billet, Cloudflare écrit avoir retiré Perplexity de sa liste de robots vérifiés. Le texte note aussi que, lors du même test, ChatGPT-User a lu le fichier robots.txt et s'est arrêté là où l'accès était interdit.
Perplexity a répondu publiquement et a contesté ce récit. Selon sa réponse, un assistant qui consulte une page parce qu'un utilisateur le lui demande n'est pas un crawler, et Cloudflare lui aurait attribué le trafic d'un service tiers de navigateurs dans le cloud. Au 20 octobre 2026, ni PerplexityBot ni Perplexity-User ne figurent dans l'annuaire public des robots de Cloudflare.
Nous n'avons aucune donnée pour trancher, et cet article ne tranche pas. La leçon utile est plus modeste. Deux entreprises qui voient infiniment plus de trafic qu'un site isolé se sont publiquement opposées sur l'origine de ces requêtes. Une ligne de votre access log qui annonce Chrome et provient d'un centre de données ne réglera pas la question mieux qu'elles. Attribuer un trafic non signé relève du jugement, pas de la mesure.
Une ligne de log est une déclaration
Un journal d'accès enregistre ce que le client a choisi d'envoyer. Dans le format combiné qu'Apache et nginx utilisent par défaut, cela se résume à l'adresse IP, l'heure, la requête, le code de statut, la taille de la réponse, le référent et le user agent.
Le user agent est une phrase que le visiteur écrit sur lui-même. GPTBot dans ce champ signifie que le client s'est dit GPTBot, rien de plus. L'adresse IP est plus difficile à falsifier dans une connexion qui fonctionne, mais elle indique à qui appartient le réseau, pas qui a envoyé la requête. OpenAI et Google publient les plages d'adresses de leurs robots déclarés : une requête qui se dit GPTBot et vient d'une plage OpenAI est très probablement GPTBot. Une requête qui se dit Chrome sur Mac et vient d'un hébergeur cloud peut être une personne derrière un VPN, un outil de supervision, un scraper ou un agent IA. Le log ne le sait pas.
Trois façons dont l'IA arrive sur votre serveur
Par agent IA, on entend ici un logiciel qui navigue pour le compte d'une personne : il ouvre des pages, les lit, clique parfois ou remplit un formulaire, pour accomplir une tâche qu'on lui a confiée. C'est l'une des trois formes du trafic IA.
- Le crawler déclaré. GPTBot, ClaudeBot, OAI-SearchBot, Claude-SearchBot. Nom fixe, documentation publique, adresses vérifiables.
- La lecture déclenchée par une question. ChatGPT-User et Claude-User. Déclarés eux aussi, mais ils arrivent parce que quelqu'un vient de poser une question. L'annuaire public de Cloudflare les classe dans la catégorie Agent, distincte de Search et de Training.
- L'agent doté de son propre navigateur. Une tâche comme « comparer trois fournisseurs de vannes inox et demander un devis au moins cher » est menée par un agent qui pilote un navigateur complet, le plus souvent sur une machine distante. Pour votre serveur, c'est un navigateur, puisque c'en est un : il exécute le JavaScript, charge images et feuilles de style, conserve les cookies pendant la session.
Les deux premières se comptent avec une confiance raisonnable. La troisième produit des lignes qui ressemblent à une visite humaine, et rien ne l'oblige à inscrire le nom d'un service d'IA dans son user agent.
Les agents signés : un progrès, avec trois réserves
La réponse du secteur consiste à rendre l'identité cryptographique plutôt que déclarative. Web Bot Auth, proposé par Cloudflare le 15 mai 2025, repose sur la norme HTTP Message Signatures (RFC 9421). L'agent signe chaque requête avec une clé privée, un en-tête Signature-Agent indique où l'opérateur publie ses clés publiques, et le site vérifie. Le 28 août 2025, Cloudflare a créé la catégorie des signed agents, et ChatGPT agent faisait partie du premier groupe.
- Votre log ne conserve probablement pas l'en-tête. Le format combiné n'a aucun champ pour
Signature-Agent. Sans configuration, la preuve disparaît à l'arrivée. - La signature est volontaire. Un agent qui ne signe pas ressemble toujours à un navigateur.
- Elle nomme la plateforme, pas l'intention. Elle dit par quel service la requête est passée, pas qui a donné l'instruction ni dans quel but.
L'opposition à la fouille de textes suppose d'être lu
En France, la question a une dimension juridique que les lecteurs anglophones n'ont pas en tête de la même façon. L'exception de fouille de textes et de données, transposée dans le Code de la propriété intellectuelle à l'article L122-5-3, permet au titulaire de droits de s'y opposer de manière appropriée, « notamment par des procédés lisibles par machine » pour les contenus publiés en ligne. Le robots.txt est le procédé le plus courant.
Le mécanisme décrit plus haut en montre la limite pratique. Une opposition lisible par machine n'est lue que par les machines qui la lisent. Les robots déclarés consultent le robots.txt ; un agent qui navigue comme un navigateur ordinaire n'a pas de raison technique de le faire, et vos logs ne vous diront pas s'il l'a fait. Savoir si la consultation d'une page à la demande d'un utilisateur relève de la fouille de textes est une question que nous laissons aux juristes. Ce qui relève de la technique, c'est que vos journaux ne suffisent pas à démontrer qui a respecté votre opposition et qui l'a ignorée.
Ce que vos logs disent encore
- Ne comptez comme robots que les robots vérifiés, en confrontant le user agent aux plages publiées ou au DNS inverse. Les autres vont sur une ligne à part.
- Journalisez les signatures. Dans nginx, chaque en-tête est accessible comme variable :
$http_signature_agents'ajoute à unlog_formatpersonnalisé, et les agents signés deviennent comptables sur votre propre serveur. - Nommez « inconnu » ce qui est inconnu. Des requêtes de type navigateur venues de réseaux cloud, qui lisent une page et repartent, forment une catégorie, pas une identité.
- Séparez visites et visibilité. Un assistant peut répondre sur vos produits depuis son index ou un moteur de recherche sans visiter votre site à ce moment-là.
Les logs disent qui est venu lire, pas ce que l'assistant a ensuite répondu à l'acheteur, dans quelle langue, ni si votre nom y figurait. Cette seconde question, c'est celle que mesure PSentry : les réponses de ChatGPT, Claude, Gemini et Perplexity aux questions de vos clients, deux fois par mois, par langue et par marché. L'outil ne voit pas les visites, vos logs ne voient pas les réponses. Et si vous comptez tout régler par le robots.txt, gardez en tête que seuls les robots déclarés le lisent, comme l'explique notre article Crawlers IA et llms.txt.