[{"data":1,"prerenderedAt":96},["ShallowReactive",2],{"guide-ai-crawler-logs-fr":3},{"copy":4,"related":83},{"name":5,"question":6,"title":7,"description":8,"h1":9,"lede":10,"panelTitle":11,"end":12,"sections":15},"Journaux des crawlers IA","Quels crawlers IA visitent vraiment mon site ?","Voir quels crawlers IA visitent votre site","Repérez GPTBot, ClaudeBot, PerplexityBot et les autres crawlers IA dans vos journaux d’accès, vérifiez qu’ils sont authentiques et quelles pages échouent.","Voyez quels crawlers IA visitent vraiment votre site","Votre robots.txt dit quels crawlers IA peuvent lire votre site. Votre journal d’accès dit lesquels l’ont fait, à quelle fréquence et ce qu’ils ont reçu en retour. Ce guide montre où trouver ce journal, comment compter les visites des crawlers IA avec quelques commandes shell, et comment distinguer un vrai crawler d’un autre qui ne fait qu’emprunter son nom.","Sur cette page",{"heading":13,"text":14},"Vérifiez qui peut lire votre site","Une analyse gratuite lit votre robots.txt et montre quels crawlers IA il laisse entrer et lesquels il bloque, à côté du reste de la préparation de votre site à l’IA.",{"why":16,"crawlers":22,"find":29,"format":37,"count":48,"verify":57,"errors":67,"limits":75},{"heading":17,"panel":18,"body":19},"Pourquoi compte qui vient vraiment","Pourquoi c’est important",[20,21],"Un assistant IA ne peut citer qu’une page que l’un de ses crawlers a lue. Si aucun d’eux n’a récupéré votre page de tarifs, aucune réponse ne la citera, aussi bien écrite soit-elle.","Votre robots.txt, et le tableau des bots IA d’un rapport SagBot, disent quels crawlers peuvent lire votre site. Ils ne disent pas lesquels sont venus. Le journal d’accès de votre serveur, si : chaque requête, avec l’adresse d’où elle vient, la page, le code de statut et le user agent qui nomme le crawler.",{"heading":23,"panel":24,"body":25},"Quels crawlers IA existent, et pourquoi ils viennent","Qui sont les crawlers",[26,27,28],"Les crawlers IA viennent pour l’une de trois raisons. Les crawlers d’entraînement collectent des pages pour entraîner des modèles. Les crawlers de recherche construisent l’index que l’assistant interroge quand il répond. Les agents d’utilisateurs récupèrent une page en direct parce que quelqu’un vient d’interroger l’assistant à son sujet. Ce sont les visites de ces deux derniers qui peuvent mener à une citation.","OpenAI envoie `GPTBot` pour l’entraînement, `OAI-SearchBot` pour la recherche et `ChatGPT-User` pour les requêtes en direct. Anthropic envoie `ClaudeBot`, `Claude-SearchBot` et `Claude-User` ; Perplexity envoie `PerplexityBot` et `Perplexity-User`. Meta utilise `meta-externalagent`, `meta-webindexer` et `meta-externalfetcher`, Amazon utilise `Amazonbot`, `Amzn-SearchBot` et `Amzn-User`, et Mistral et DuckDuckGo envoient `MistralAI-User` et `DuckAssistBot`. `Bytespider` (ByteDance) et `CCBot` (Common Crawl, une archive ouverte sur laquelle de nombreux modèles sont entraînés) collectent des données d’entraînement.","Deux noms que vous ne trouverez dans aucun journal : `Google-Extended` et `Applebot-Extended` sont des règles robots.txt, pas des crawlers. Google récupère les pages avec `Googlebot` et Apple avec `Applebot` ; les règles Extended décident seulement si ce qu’ils ont récupéré peut servir à l’IA. L’agent de Google pour les requêtes des utilisateurs en direct, `Google-Agent`, apparaît bien sous son nom.",{"heading":30,"panel":31,"body":32},"Trouvez votre journal d’accès","Trouver le journal",[33,34,35,36],"Sur votre propre serveur, le journal est un simple fichier texte. nginx écrit `\u002Fvar\u002Flog\u002Fnginx\u002Faccess.log`. Apache écrit `\u002Fvar\u002Flog\u002Fapache2\u002Faccess.log` sur Debian et Ubuntu, et `\u002Fvar\u002Flog\u002Fhttpd\u002Faccess_log` sur Red Hat, Rocky et Alma. Les jours précédents passent par rotation dans des fichiers numérotés ou datés juste à côté, les plus anciens compressés en `.gz`.","Sur un hébergement mutualisé ou géré, cherchez les journaux d’accès bruts dans le panneau de l’hébergeur et téléchargez-les. Certains hébergeurs ne gardent que quelques jours : sauvegardez-les régulièrement si vous voulez une vue plus longue.","Derrière Cloudflare, ouvrez AI Crawl Control pour votre domaine dans le tableau de bord. Il est inclus dans toutes les offres et affiche les requêtes par crawler IA, leurs codes de statut et les chemins les plus demandés, sans aucun fichier journal ; dans l’offre gratuite, ses métriques couvrent les dernières 24 heures. Pour les lignes de requête brutes, Logpush les exporte vers le stockage de votre choix. Cloudflare ne voit que les noms d’hôte qui passent par son proxy (le nuage orange) ; les enregistrements DNS only vont directement à votre serveur.","Sur Vercel, la page Logs du projet affiche les requêtes récentes avec leur user agent, pendant une heure sur Hobby et un jour sur Pro. Un log drain (Pro et Enterprise) envoie chaque requête, fichiers statiques compris, vers le stockage de votre choix.",{"heading":38,"panel":39,"body":40,"code":44},"Vérifiez que le journal conserve le user agent","Vérifier le format",[41,42,43],"C’est le user agent qui nomme le crawler, chaque ligne doit donc le contenir. nginx et Apache ont tous deux un format appelé `combined` qui termine chaque ligne par le référent et le user agent entre guillemets. nginx l’utilise sauf si vous en choisissez un autre ; Apache le définit, et votre ligne `CustomLog` décide s’il est utilisé.","Affichez les dernières lignes du journal avec la première commande ci-dessous. Si chacune se termine par un nom de navigateur ou de bot entre guillemets, tout est bon. Si les lignes se terminent par le statut et un nombre d’octets, le serveur écrit le Common Log Format, qui n’a pas de user agent : définissez `combined` sur la ligne `access_log` (nginx) ou la ligne `CustomLog` (Apache), comme ci-dessous, puis rechargez le serveur.","Les commandes des étapes suivantes supposent la disposition `combined`. Si vous utilisez votre propre `log_format` ou `LogFormat`, gardez `$http_user_agent` ou `%{User-Agent}i` comme dernier champ entre guillemets, ou adaptez les commandes.",[45,46,47],"tail -n 3 \u002Fvar\u002Flog\u002Fnginx\u002Faccess.log","access_log \u002Fvar\u002Flog\u002Fnginx\u002Faccess.log combined;","LogFormat \"%h %l %u %t \\\"%r\\\" %>s %b \\\"%{Referer}i\\\" \\\"%{User-Agent}i\\\"\" combined\nCustomLog ${APACHE_LOG_DIR}\u002Faccess.log combined",{"heading":49,"panel":50,"body":51,"code":54},"Comptez les visites par crawler IA","Compter les visites",[52,53],"Collez le premier bloc dans un shell sur le serveur. Il place dans `BOTS` les noms de crawlers IA du tableau des bots IA de SagBot et compte les requêtes par crawler dans le journal actuel. Changez le chemin si le vôtre diffère, par exemple `\u002Fvar\u002Flog\u002Fapache2\u002Faccess.log`.","Le second bloc fait de même sur les fichiers archivés, compressés ou non ; lancez-le dans le même shell pour que `BOTS` soit toujours défini. Les crawlers d’entraînement sont souvent en tête de liste. Ce sont les visites des crawlers de recherche et des agents d’utilisateurs qui sont liées aux réponses : mieux vaut remarquer quand elles manquent.",[55,56],"BOTS='GPTBot|OAI-SearchBot|ChatGPT-User|ClaudeBot|Claude-SearchBot|Claude-User'\nBOTS=\"$BOTS|PerplexityBot|Perplexity-User|Google-Agent|Applebot|Bytespider|CCBot\"\nBOTS=\"$BOTS|meta-externalagent|meta-webindexer|meta-externalfetcher|Amazonbot\"\nBOTS=\"$BOTS|Amzn-SearchBot|Amzn-User|MistralAI-Training|MistralAI-Index\"\nBOTS=\"$BOTS|MistralAI-User|DuckAssistBot\"\nawk -F'\"' '{print $6}' \u002Fvar\u002Flog\u002Fnginx\u002Faccess.log \\\n  | grep -Eo \"$BOTS\" | sort | uniq -c | sort -rn","zgrep -hE \"${BOTS:?}\" \u002Fvar\u002Flog\u002Fnginx\u002Faccess.log* \\\n  | awk -F'\"' '{print $6}' | grep -Eo \"$BOTS\" | sort | uniq -c | sort -rn",{"heading":58,"panel":59,"body":60,"code":64},"Vérifiez qu’un crawler est authentique","Vérifier les crawlers",[61,62,63],"N’importe qui peut envoyer une requête dont le user agent dit `GPTBot`, et les scrapers le font. Pour faire confiance à une visite, comparez l’adresse d’où elle vient avec la liste publiée par l’opérateur lui-même. La première commande ci-dessous liste les adresses qui se sont présentées comme `GPTBot` ; remplacez-le par n’importe quel autre nom.","OpenAI, Anthropic, Perplexity, Amazon, Apple et Common Crawl publient les plages d’IP de leurs crawlers dans la documentation de leurs bots. Google et Bing peuvent aussi être vérifiés par DNS inverse : l’adresse doit se résoudre en un nom `googlebot.com`, `google.com` ou `googleusercontent.com` pour Google, ou `search.msn.com` pour Bing, et ce nom doit à son tour se résoudre vers la même adresse. Le second bloc montre la vérification avec l’adresse d’exemple de Google lui-même. Apple (`applebot.apple.com`) et Common Crawl (`crawl.commoncrawl.org`) passent le même test.","Meta et ByteDance ne publient aucune liste d’adresses à l’heure où nous écrivons ces lignes : leurs visites peuvent être comptées, mais pas vérifiées.",[65,66],"awk '\u002FGPTBot\u002F {print $1}' \u002Fvar\u002Flog\u002Fnginx\u002Faccess.log | sort | uniq -c | sort -rn","host 66.249.66.1\nhost crawl-66-249-66-1.googlebot.com",{"heading":68,"panel":69,"body":70,"code":73},"Trouvez les pages en échec pour les crawlers IA","Pages en échec",[71,72],"Un crawler qui reçoit une 404 ou une 500 repart sans rien à citer, et une page qui échoue sans cesse peut sortir de son index.","Le bloc ci-dessous liste les chemins qui ont répondu aux crawlers IA par une 404 ou une 5xx quelconque, les plus fréquents d’abord ; il a besoin de `BOTS` défini à l’étape de comptage, dans le même shell. Redirigez les pages déplacées vers leur nouvelle adresse, corrigez les erreurs et retirez les liens morts de votre sitemap et de vos liens internes.",[74],"awk -F'\"' -v bots=\"${BOTS:?}\" '$6 ~ bots {\n  split($3, f, \" \"); split($2, r, \" \")\n  if (f[1] == 404 || f[1] >= 500) print f[1], r[2]\n}' \u002Fvar\u002Flog\u002Fnginx\u002Faccess.log | sort | uniq -c | sort -rn | head -20",{"heading":76,"panel":77,"body":78},"Ce que les journaux ne montrent pas","Ce qui échappe aux journaux",[79,80,81,82],"Une page servie depuis le cache d’un CDN n’atteint jamais votre serveur : votre propre journal sous-estime donc les visites. Utilisez les journaux ou la vue crawlers du CDN pour avoir une image complète.","Cloudflare ne voit que les noms d’hôte qui passent par son proxy. Un nom d’hôte en DNS only n’affiche aucune visite dans AI Crawl Control, quel que soit le nombre de crawlers qui l’atteignent.","Le user agent seul peut être falsifié, et le Common Log Format ne l’enregistre pas du tout.","Les journaux montrent des visites, pas des citations. Qu’un crawler lise une page ne signifie pas qu’un assistant la citera ; la fréquence à laquelle vous êtes cité est une mesure distincte.",[84,88,92],{"path":85,"name":86,"question":87},"\u002Ffor\u002Fdevelopers","Développeurs","Les crawlers et agents IA peuvent-ils accéder à mon site et le lire ?",{"path":89,"name":90,"question":91},"\u002Fguides\u002Fimprove-geo","Améliorer votre GEO","Comment faire citer mon site par les moteurs de réponse IA ?",{"path":93,"name":94,"question":95},"\u002Fguides\u002Fai-visibility","Visibilité dans l’IA","Que puis-je corriger, et que puis-je seulement suivre, dans la façon dont l’IA voit ma marque ?",1793992963729]