Robots d'IA
Voyez quels robots IA visitent réellement votre site et comment installer le suivi.
Le suivi des robots d'IA montre quels moteurs IA visitent réellement votre site : GPTBot, ClaudeBot, PerplexityBot, Bingbot et d'autres. Il complète les audits GEO : les audits disent si les bots peuvent atteindre une page ; le suivi dit s'ils le font.
Pourquoi une capture côté serveur
Les robots d'entraînement IA n'exécutent pas JavaScript : un pixel Google Tag Manager ou JavaScript ne voit jamais GPTBot ni ClaudeBot. Citlyze capture les visites côté serveur, là où le vrai User-Agent est visible, donc même les robots sans JavaScript sont comptés.
La moitié humaine est différente : les visiteurs venus des réponses IA exécutent JavaScript ; pour le Trafic IA, un extrait navigateur ou une installation Tag Manager convient donc très bien (voir Installer le suivi du trafic IA). Les installations côté serveur de cette page capturent les deux types à la fois.
Installer le suivi
Allez dans Robots d'IA → Installer le suivi et générez une clé de site. La clé a deux parties, un identifiant de clé et un secret de signature, affichées une seule fois ; copiez les deux. Ajoutez ensuite l'extrait adapté à votre plateforme (pour un guide clic par clic de chaque option, voir Installer le suivi des robots d'IA) :
- Cloudflare (recommandé) : collez l'extrait Worker devant votre site.
- Vercel / reverse proxy : ajoutez l'extrait middleware.
- WordPress : téléchargez AI Crawler Tracker by Citlyze, envoyez-le
dans wp-admin → Extensions, puis dans ses réglages remplissez les trois
champs : Tracker base URL (
https://app.citlyze.com), Key ID et Signing secret. Utilisez Envoyer un événement de test (« Send test event ») pour vérifier la livraison. L'extension n'envoie rien tant que l'URL de base du tracker n'est pas renseignée. - Serveur personnalisé / Node : pour les sites auto-hébergés (AWS, GCP,
Azure, bare metal, conteneurs), ajoutez l'extrait middleware de style
Express (Node 20+). Il s'adapte à Fastify, Koa ou
httppur, et les autres langages peuvent implémenter directement le protocole de beacon signé.
Chaque événement est signé avec votre secret pour rejeter les beacons falsifiés.
Cette signature prouve que le rapport vient de votre site ; elle ne dit rien sur l'identité du visiteur. Confirmer qu'un visiteur était réellement GPTBot est une étape distincte, décrite dans Comment fonctionne la vérification.
Les boutiques Shopify standard ne peuvent pas exécuter de capture côté serveur, et Shopify ne permet pas de placer un proxy (comme Cloudflare) devant une boutique ; le suivi complet des robots n'est donc pas disponible sur Shopify standard. Les vitrines headless Hydrogen ou Oxygen exécutent du code côté serveur et peuvent utiliser l'extrait serveur personnalisé. L'hébergement Webflow ne peut pas non plus exécuter de code serveur ; sur Webflow Enterprise, un reverse proxy autogéré peut exécuter le Worker Cloudflare ou l'extrait serveur personnalisé au niveau du proxy.
Le Worker Cloudflare et le middleware serveur personnalisé rapportent le statut HTTP de chaque requête crawlée, ce qui alimente les insights d'erreurs ci-dessous. Le plugin WordPress s'exécute avant le rendu de la page et ne distingue donc que les 404 du reste ; et le middleware Vercel s'exécute avant que la réponse existe et ne peut donc pas rapporter le statut du tout.
Les caches de page complète et les CDN peuvent répondre sans exécuter le plugin WordPress. Pour les sites fortement mis en cache, utilisez le Worker Cloudflare.
Serveurs personnalisés et autres langages
L'onglet serveur personnalisé fournit un middleware Node, mais n'importe
quelle stack peut rapporter : un beacon est un simple POST HTTPS signé vers
https://app.citlyze.com/api/track avec un corps JSON (32 Ko au maximum) et
Content-Type: application/json.
En-têtes requis :
| En-tête | Valeur |
|---|---|
x-aeo-schema | La chaîne littérale 2. |
x-aeo-key-id | Votre identifiant de clé (l'UUID affiché à la génération de la clé de site). |
x-aeo-ts | Horodatage Unix en secondes ; doit être à moins de 5 minutes de l'horloge du tracker. |
x-aeo-nonce | Unique par événement : 16 à 64 caractères hexadécimaux et tirets. Un UUID sans ses tirets convient. Chaque nonce n'est accepté qu'une fois ; les rejeux sont ignorés. |
x-aeo-signature | HMAC en hexadécimal minuscule, calculé comme ci-dessous. |
Calcul de la signature :
- Dérivez la clé de signature : le SHA-256 hexadécimal minuscule de
64 caractères de votre secret de signature (la chaîne
ctk_...complète). Utilisez les octets UTF-8 de cette chaîne hexadécimale comme clé HMAC ; ne la décodez pas depuis l'hexadécimal. - Construisez le message :
"2\n" + timestamp + "\n" + nonce + "\n" + bodyDigest, oùbodyDigestest le SHA-256 hexadécimal minuscule des octets exacts du corps envoyé. Toute re-sérialisation après signature invalide la signature. x-aeo-signatureest le HMAC-SHA256 hexadécimal minuscule de ce message avec la clé de signature de l'étape 1.
Champs du corps (tous requis sauf mention contraire) :
userAgent: le User-Agent du visiteur, jusqu'à 1024 caractères.path: le chemin de la requête avec un/initial, sans query string ni fragment, jusqu'à 2048 caractères.visitorIp: l'IP du client telle que vue par votre serveur. Derrière un load balancer ou un reverse proxy, prenez-la dans l'en-tête de forwarding défini par votre propre proxy ; c'est ce champ que la vérification d'identité des robots contrôle.referrer: une chaîne vide, ou une URL de referrer enhttps://sans query ni fragment. Utile uniquement pour les visites humaines venant de réponses IA.status: le statut HTTP à trois chiffres de la réponse, ouunknownsi vous rapportez avant que la réponse existe.method: la méthode HTTP en majuscules.
Ne rapportez que les requêtes dont le user agent semble automatisé ou dont le referrer est un moteur de réponses IA, et envoyez le beacon après la réponse, en mode fire-and-forget ; une panne du tracker ne doit jamais ralentir votre site.
Pour vérifier votre intégration, envoyez un beacon avec "test": true, un
userAgent commençant par citlyze-connection-test/ et
"path": "/citlyze-test". Un événement de test correctement signé renvoie
HTTP 200 et ne stocke rien ; les événements réels renvoient toujours 204,
que la visite finisse ou non dans vos rapports.
Renouveler ou révoquer une clé
Si un secret de signature a pu fuiter (par exemple commité dans un dépôt ou partagé dans une capture d'écran), utilisez Renouveler à côté de la clé. Le renouvellement émet un nouveau secret pour la même clé : l'identifiant, le nom, le domaine et tout l'historique enregistré sont conservés, mais l'ancien secret cesse immédiatement de fonctionner ; mettez donc à jour votre extrait ou plugin avec le nouveau secret sans attendre. Révoquer est différent : la clé est désactivée définitivement et le suivi de ce site s'arrête.
Lire les analytics
La page Robots d'IA → Analytics montre, pour la période sélectionnée :
- tuiles de synthèse : visites totales, robots distincts, robot principal et tendance
- visites de robots dans le temps (totaux quotidiens)
- tendances par robot dans le temps (une courbe par robot)
- détail par robot avec organisation, finalité, visites et tendance
- visites humaines depuis les réponses IA : visiteurs venus de ChatGPT, Perplexity, Gemini, Copilot et autres, avec leurs pages d'atterrissage principales ; le rapport de referrals complet, conversions comprises, se trouve sur Trafic IA
- pages les plus crawlées (top 10, avec un lien vers la liste complète)
- bots non reconnus : des user agents de type bot ne correspondant à aucun robot IA connu, regroupés sous « Bot inconnu » pour repérer tôt les nouveaux robots
Utilisez les périodes prédéfinies (7/30/90 jours), la plage de dates personnalisée et le filtre de robots pour affiner la vue. Les espaces de travail suivant plusieurs sites disposent aussi d'un filtre de site.
Comment fonctionne la vérification
N'importe quel client peut écrire GPTBot dans son user agent. Un user agent
est donc une affirmation, pas une preuve, et Citlyze le traite ainsi : les
chiffres principaux ne comptent que le trafic que nous avons pu confirmer de
façon indépendante.
Chaque visite reçoit l'un de trois niveaux de confiance :
- Vérifié : nous avons confirmé l'identité réseau du visiteur face à quelque chose que l'opérateur publie. Seuls ceux-ci comptent dans vos totaux.
- Probable : des éléments corroborants, par exemple votre CDN qui signale la requête comme un bot connu, mais sans confirmation indépendante.
- Non vérifié : le user agent a nommé un robot et rien ne l'a contredit, mais nous n'avons pas pu le confirmer. Affiché à part, jamais ajouté à vos totaux.
La vérification utilise ce que l'opérateur prend en charge :
| Méthode | Ce qu'elle prouve |
|---|---|
| Requête signée | La requête portait une signature cryptographique vérifiée face aux clés publiées par l'opérateur. La preuve la plus solide disponible. |
| Plage d'IP publiée | L'adresse source se trouve dans une plage que l'opérateur publie pour ses robots. |
| DNS inversé | L'adresse source résout vers le domaine de l'opérateur, et ce nom résout à son tour vers la même adresse. |
| Plage d'IP connue | L'adresse source se trouve dans une plage fixe documentée par l'opérateur. |
| Attestation du CDN | Votre CDN a identifié la requête comme un bot connu. Corroborant, pas concluant. |
| User agent seul | Rien d'autre que le nom autodéclaré. Toujours non vérifié. |
Les opérateurs qui ne publient rien de vérifiable ne peuvent atteindre que non vérifié. C'est une caractéristique du robot, pas un problème de votre installation, et c'est pourquoi les vues sont séparées plutôt que fondues en un seul chiffre.
Deux points à retenir :
- Le trafic des agents est compté séparément. Les outils pilotés par des personnes, comme ChatGPT Agent, apparaissent dans l'activité des agents et non dans les totaux de robots : une personne qui clique n'est pas le même signal qu'un robot qui vous indexe.
- Parfois nous ne pouvons pas vérifier : la liste d'IP d'un opérateur peut être temporairement inaccessible. Ces visites restent non vérifiées plutôt que comptées, pour que vos totaux n'incluent jamais rien de non confirmé.
Pages crawlées
Robots d'IA → Pages crawlées est la vue détaillée complète : chaque page récupérée par les robots IA dans la période sélectionnée, avec recherche, tri et pagination. Chaque ligne montre les visites, la part du trafic robot total, la tendance par rapport à la période précédente, les erreurs, le robot principal et la date de dernière visite ; dépliez une ligne pour la répartition par robot.
Deux insights apparaissent au-dessus du tableau quand ils sont pertinents :
- Crawlées mais jamais citées : des pages que les moteurs IA récupèrent mais ne citent jamais dans vos réponses suivies ; candidates à un contenu plus clair et plus citable.
- Pages renvoyant des erreurs : des pages qui ont répondu aux robots avec des codes 4xx/5xx. Une page cassée ne peut être ni lue ni citée. La plage complète nécessite l'installation Cloudflare ou serveur personnalisé ; une installation WordPress détecte les 404, mais pas les 5xx.
Le tableau peut être téléchargé en CSV sur les forfaits incluant l'export de données.
Accéder aux données via API et MCP
Les visites de robots sont disponibles par programme une fois le suivi installé :
- REST :
GET /api/v1/crawler-events; voir la ressource AI Crawler Events. - MCP : l'outil
list_crawler_events; voir la référence des outils MCP.
Les deux sont en lecture seule et limités à votre espace de travail. La
ressource REST filtre par crawler_id, site suivi et path exact ; les
visites humaines depuis les réponses IA sont exposées via
GET /api/v1/ai-referrals.