Installer le suivi des robots d'IA
Guides d'installation pas à pas pour Cloudflare, Vercel, WordPress, serveurs Node personnalisés, Webflow et Shopify.
Cette page détaille chaque parcours d'installation, clic par clic. Pour savoir ce que mesure le suivi des robots et comment fonctionne la vérification, voir Robots d'IA. La même installation rapporte aussi les visites humaines venues des réponses IA ; la réaliser alimente donc aussi Trafic IA. Les options uniquement navigateur pour cette page sont décrites dans Installer le suivi du trafic IA.
Choisissez le guide qui correspond à l'endroit où tourne votre site :
| Votre configuration | Guide à suivre |
|---|---|
| Site derrière Cloudflare (proxy nuage orange) | Worker Cloudflare |
| Application Next.js sur Vercel (ou Next.js auto-hébergé) | Middleware Vercel / Next.js |
| Site WordPress | Extension WordPress |
| Site codé sur mesure sur vos propres serveurs (AWS, GCP, Azure, VPS, conteneurs) | Serveur personnalisé / Node |
| Site Webflow | Webflow |
| Boutique Shopify | Shopify |
Avant de commencer : générer une clé de site
Chaque installation nécessite une clé de site, quelle que soit la plateforme :
- Dans l'application, allez dans Paramètres → Connexions → Suivi du site web.
- Cliquez sur Générer une clé de site. Donnez un nom à la clé et, idéalement, le domaine pour lequel elle rapportera ; le domaine renforce aussi la vérification des robots signés pour ce site.
- Copiez les deux valeurs du dialogue de confirmation : l'identifiant de
clé et le secret de signature (il commence par
ctk_). Le secret n'est affiché qu'une seule fois ; si vous le perdez, utilisez Renouveler sur la clé pour en générer un nouveau.
Gardez le secret de signature privé : quiconque le détient peut soumettre de
faux rapports de trafic pour votre site. Les extraits Cloudflare, Vercel et
serveur personnalisé le lisent dans la variable d'environnement
CITLYZE_SIGNING_SECRET, il n'apparaît donc jamais dans votre code ; le
plugin WordPress le conserve dans ses réglages. Ne le commitez jamais dans un
dépôt et ne le collez jamais dans du code côté client.
Worker Cloudflare
À utiliser quand votre DNS est chez Cloudflare et que le site est proxifié (le bouton nuage orange). C'est l'option la plus complète : elle voit chaque requête à la périphérie, rapporte les vrais codes de statut HTTP et fonctionne quoi qu'il y ait derrière Cloudflare.
- Sur Paramètres → Connexions → Suivi du site web → Installer le script, ouvrez l'onglet Cloudflare et copiez l'extrait.
- Remplacez
SITE_KEY_IDdans l'extrait par votre identifiant de clé. Le secret de signature ne va pas dans le code ; vous l'ajoutez comme secret du Worker à l'étape 5. - Dans le tableau de bord Cloudflare, allez
dans Workers & Pages → Create → Create Worker. Donnez-lui un nom (par
exemple
ai-crawler-tracker) et cliquez sur Deploy pour créer le worker vide. - Cliquez sur Edit code, remplacez l'exemple généré par votre extrait, puis cliquez à nouveau sur Deploy.
- Ajoutez le secret de signature : dans le worker, ouvrez Settings →
Variables and Secrets → Add, choisissez le type Secret, nommez-le
CITLYZE_SIGNING_SECRET, collez votre secret de signature et cliquez sur Deploy. Cloudflare le stocke chiffré, et il n'apparaît jamais dans le code du worker. - Connectez le worker à votre site : ouvrez Settings → Domains & Routes →
Add → Route du worker, choisissez votre zone et ajoutez la route
example.com/*. Si votre site est aussi servi surwww.example.com, ajoutez une seconde route pourwww.example.com/*. - Terminé : aucun changement de code sur votre site. Le worker transmet chaque requête à votre origine sans la modifier et rapporte les visites correspondantes en arrière-plan.
Deux points à vérifier :
- La route doit couvrir tous les chemins (
/*), sinon les visites de robots sur les pages non routées sont invisibles. - Si vous exécutez déjà un worker sur ces routes, Cloudflare n'exécute qu'un seul worker par route ; fusionnez la logique de l'extrait dans votre worker existant au lieu d'en ajouter un second.
Middleware Vercel / Next.js
À utiliser pour une application Next.js déployée sur Vercel. Le même fichier fonctionne aussi sur un Next.js auto-hébergé.
- Sur Paramètres → Connexions → Suivi du site web → Installer le script, ouvrez l'onglet Vercel / reverse proxy et copiez l'extrait.
- Dans votre dépôt Next.js, créez
middleware.tsà la racine du projet (ou danssrc/si votre application y vit) et collez l'extrait. - Remplacez
SITE_KEY_IDpar votre identifiant de clé. Le secret de signature ne va pas dans le fichier. - Dans votre projet Vercel, ouvrez Settings → Environment Variables et
ajoutez
CITLYZE_SIGNING_SECRETavec votre secret de signature pour chaque environnement à suivre. Marquez-la Sensitive. Vous hébergez Next.js vous-même ? Définissez la même variable dans l'environnement de votre serveur. - Si vous avez déjà un
middleware.ts, n'ajoutez pas un second fichier : Next.js n'en exécute qu'un. Copiez le bloc utilitaire de l'extrait dans votre fichier existant, appelez sa logique de rapport au début de votre fonction middleware, et vérifiez que votre configmatchercouvre toujours tous les chemins. - Commitez et déployez.
Remarques :
- Le middleware s'exécute avant que la réponse existe, donc les événements
rapportent leur statut HTTP comme
unknown. C'est normal. Pour obtenir les codes de statut, utilisez le log drain Vercel à la place de ce middleware (les deux ensemble comptent chaque visite deux fois), ou l'installation Cloudflare ou serveur personnalisé, qui rapportent aussi les redirections. - Sur Vercel, l'IP du visiteur provient d'un en-tête défini par la plateforme et est fiable. Si vous auto-hébergez Next.js derrière votre propre proxy, assurez-vous que l'en-tête d'IP transférée lu par l'extrait est défini par votre proxy, et non transmis tel quel depuis le client.
Extension WordPress
À utiliser pour tout site WordPress où vous pouvez installer des extensions.
La même extension vérifie aussi, gratuitement, quels crawlers IA votre robots.txt laisse passer et ce qui bloque les autres ; voir Extension WordPress.
-
Dans l'admin WordPress, allez dans Extensions → Ajouter et cherchez AI Crawler Control by Citlyze, puis cliquez sur Installer maintenant et sur Activer. L'extension est publiée sur le répertoire officiel WordPress.org, aucun téléversement de zip n'est donc nécessaire.
-
Vous préférez une installation manuelle ? Sur Paramètres → Connexions → Suivi du site web → Installer le script, ouvrez l'onglet WordPress, cliquez sur Télécharger l'extension, puis téléversez le zip via Extensions → Ajouter → Téléverser une extension.
-
Allez dans Citlyze → Connect Citlyze et remplissez les trois champs :
- Tracker base URL :
https://app.citlyze.com - Key ID : votre identifiant de clé
- Signing secret : votre secret
ctk_...L'extension n'envoie rien tant que l'URL de base n'est pas renseignée.
- Tracker base URL :
-
Cliquez sur Envoyer un événement de test. Vous devriez voir une confirmation « connecté », ce qui prouve vos identifiants et la connectivité de bout en bout.
-
Derrière un proxy ou un répartiteur de charge autre que Cloudflare ? Dans Visitor IP behind a proxy, choisissez l'en-tête que définit votre proxy et indiquez les adresses du proxy, afin que les robots soient vérifiés par leur IP réelle. Derrière Cloudflare, rien à faire.
Le plugin rapporte après l'envoi de chaque page, avec le code de statut exact, y compris pour les requêtes qu'un autre plugin redirige avant le rendu de la page. Les événements attendent dans votre base de données WordPress et sont envoyés par lots ; l'écran Connect Citlyze indique combien sont en attente et quand ils ont été livrés pour la dernière fois.
Mise en garde : les pages servies depuis un cache de page complète, les redirections faites par votre serveur web ou votre CDN et les requêtes qu'un pare-feu bloque avant le chargement de WordPress n'atteignent jamais le plugin. L'écran Connect Citlyze vous signale quand il détecte un cache de page. Si votre site est fortement mis en cache, préférez l'installation par Worker Cloudflare ou importez les logs de votre serveur.
Serveur personnalisé / Node
À utiliser pour les sites codés sur mesure que vous hébergez vous-même : AWS, Google Cloud, Azure, un VPS ou des conteneurs. L'extrait est un middleware de style Express pour Node 20 ou plus récent (il fonctionne aussi sur Bun et Deno).
- Sur Paramètres → Connexions → Suivi du site web → Installer le script, ouvrez l'onglet Serveur personnalisé / Node et copiez l'extrait.
- Enregistrez-le sous
aeo-tracker.mjsà côté du point d'entrée de votre serveur. - Remplacez
SITE_KEY_IDpar votre identifiant de clé, et définissez sur le serveur la variable d'environnementCITLYZE_SIGNING_SECRETavec votre secret de signature : dans les réglages de secrets de votre hébergeur, ou dans un fichier.envjamais commité. Le secret ne va jamais dans le fichier lui-même. - Enregistrez le middleware avant vos routes :
import { aeoCrawlerTracker } from "./aeo-tracker.mjs"; app.use(aeoCrawlerTracker()); - Si votre serveur est derrière un load balancer ou un reverse proxy
(nginx, ALB), configurez Express pour lui faire confiance (par exemple
app.set("trust proxy", 1)) afin que le middleware rapporte la vraie IP du client au lieu de celle du proxy. La vérification d'identité des robots contrôle cette IP. - Déployez. Le middleware rapporte après la fin de chaque réponse : il n'ajoute donc aucune latence et inclut les vrais codes de statut HTTP.
Pas sur Express ? Le handler renvoyé prend de simples arguments
(req, res, next) et s'adapte à Fastify, Koa ou au serveur http de Node.
Pour d'autres langages (Python, Go, PHP, Ruby, ...), implémentez le
protocole de beacon signé ;
chaque POST HTTPS signé transporte un lot de jusqu'à 50 requêtes
correspondantes.
Webflow
L'hébergement de Webflow ne peut pas exécuter de code côté serveur, et les scripts côté navigateur ne voient pas les robots d'entraînement IA : le suivi s'installe donc au niveau d'un proxy placé devant Webflow :
- Webflow prend en charge les reverse proxies autogérés sur les forfaits Enterprise ; organisez-le avec votre contact Webflow et faites passer votre domaine par votre proxy (Cloudflare, CloudFront, Fastly ou votre propre nginx).
- Installez le tracker au niveau de ce proxy :
- Proxy sur Cloudflare → suivez le guide Worker Cloudflare.
- Votre propre proxy Node → suivez le guide Serveur personnalisé / Node.
- Toute autre solution → implémentez le protocole de beacon signé dans votre proxy.
- Vérifiez comme décrit ci-dessous.
Les applications Webflow Cloud ne permettent pas de suivre tout le site : elles ne servent que les requêtes sous leur chemin de montage et ne voient donc jamais les visites de robots sur vos pages normales.
Shopify
Les vitrines Shopify standard ne peuvent pas exécuter ce tracker : Shopify ne permet pas aux marchands d'exécuter du code côté serveur sur les requêtes de la vitrine et ne prend pas en charge la mise en place d'un proxy (comme Cloudflare) devant une boutique. Les scripts côté navigateur ne sont pas une solution de contournement : les robots d'entraînement IA n'exécutent jamais JavaScript, et un script navigateur exposerait votre secret de signature.
Ce que vous pouvez faire :
- Les vitrines headless construites sur Hydrogen et hébergées sur Oxygen (ou toute configuration auto-hébergée) exécutent du code côté serveur ; branchez la logique de l'extrait Serveur personnalisé / Node dans le gestionnaire de requêtes serveur de votre vitrine.
- Pour les boutiques standard, vos autres mesures Citlyze (suivi des prompts, citations, audits GEO) fonctionnent quel que soit l'hébergement de la boutique.
Vérifier votre installation
- Sur Paramètres → Connexions → Suivi du site web, le tableau des clés de site a une colonne Dernier événement. Elle se met à jour dès que votre installation livre son premier rapport accepté ; les visites de robots et les clics humains venant de réponses IA comptent tous les deux.
- Les utilisateurs WordPress peuvent confirmer la livraison immédiatement avec Envoyer un événement de test (les événements de test vérifient les identifiants et la connectivité mais ne mettent pas à jour Dernier événement).
- Laissez du temps : sur les sites à faible trafic, la première vraie visite de robot peut prendre des heures, voire quelques jours. Une fois les événements arrivés, Diagnostiquer → Activité des robots d'IA → Vue d'ensemble se remplit.
- Si rien n'arrive après quelques jours, revérifiez que l'identifiant de clé
de votre extrait (ou des réglages du plugin) appartient à une clé active,
non révoquée, que
CITLYZE_SIGNING_SECRETcontient le secret de signature actuel de cette clé, et que votre route ou middleware couvre tous les chemins. Sans secret valide, l'extrait ne rapporte rien et journalise une fois « Citlyze crawler tracking is off ». - Le tableau des clés de site indique aussi quelle version de collecteur rapporte avec chaque clé, et vous signale quand une version plus récente de l'extrait ou du plugin est disponible, ou quand le plugin WordPress a détecté un cache de page.