Utilisateur Agent
Ce que a utilisateur agent est — le HTTP header robots d’exploration et navigateurs utiliser à identifier themselves, le robots.txt token vs. le complet string, et comment vérifier a bot est réel.
2 indices probants sur cette page
- Données sources liéescommon-crawlers.json
- Outil en ligne associéGooglebot Verifier
A utilisateur agent est le HTTP header chaque client — navigateur, robot d’exploration, or bot — sends à identifier itself. Deux choses obtenir confused: le complet utilisateur-agent *string* dans la requête header, et le court utilisateur-agent *token* (Googlebot, bingbot, Google-Extended) vous cible dans robots.txt. Le token est a substring de le string (RFC 9309); some tokens, comme Google-Extended, ont aucun requête string à tout. Le string est trivially spoofed — Google dit son propre est 'souvent spoofed' — donc jamais confiance il pour accès contrôler. Vérifier Googlebot/Bingbot par reverse DNS plus a forward lookup, or contre publié IP ranges. Et watch le gotchas: AdsBot et Google-Safety ignore `User-agent: *`, version numbers et wildcards dans le token line sont ignored, matching est case-insensitive, et diffusion différent contenu à a bot UA que à utilisateurs est cloaking.
Preuve à l’appui de cette affirmation HTTP User-Agent is a request field containing product information supplied by the client; it is descriptive text and not proof of identity. Portée : HTTP semantics for User-Agent. Niveau de confiance : élevé · Vérifié : IETF RFC 9110: User-Agent Preuve à l’appui de cette affirmation robots.txt User-agent matching is defined by the Robots Exclusion Protocol and controls crawler access, not authentication or general HTTP content negotiation. Portée : RFC 9309 robots matching behavior. Niveau de confiance : élevé · Vérifié : IETF RFC 9309: Robots Exclusion ProtocolTL;DR — A utilisateur agent est a little line de texte chaque navigateur et chaque bot sends avec chaque requête à dire “here’s who I am.” Google’s robot d’exploration dit c’est Googlebot; Bing’s dit bingbot. Dans
robots.txtvous ne pas écrire le entier line — vous utiliser a court nom (a “token”) commeGooglebot. Et ici’s le catch: que line est simplement texte, donc anyone peut fake il. Le seulement réel façon à know a bot est qui il claims à être est à vérifier où son requête en réalité came depuis.
Ce que a utilisateur agent is
Chaque temps votre navigateur charge une page, il sends along a court texte étiquette que dit Ce que c’est — quelque chose comme “I’m Chrome on a Mac.” Que étiquette est le utilisateur agent, et il travels dans an HTTP header on chaque requête. Serveurs peut lire il et react à il.
Important catch up front: le client fills dans que étiquette itself. Rien vérifications il. c’est a claim, pas a credential — donc a utilisateur agent que dit “Googlebot” n’est pas le même chose as une requête c’est en réalité verified as Googlebot.
Robots d’exploration faire le même chose. Quand Googlebot récupère votre page, il sends a utilisateur agent
que inclut Googlebot. Quand Bingbot récupère il, le utilisateur agent inclut
bingbot. c’est comment a bot announces itself dans votre serveur logs.
The string vs. the short nom
Là sont vraiment deux choses personnes signifier par “utilisateur agent,” et mixing les up causes a lot de confusion:
- Le utilisateur-agent string est le complet line dans la requête header. Googlebot’s est long et semble a lot comme a navigateur.
- Le utilisateur-agent token est le court nom vous utiliser dans
robots.txtà cible a bot — commeGooglebotorbingbot. Le token est simplement a piece de le complet string, pas le entier chose.
So quand vous écrire a rule in robots.txt, vous utiliser the short token:
User-agent: Googlebot
Disallow: /private/Vous ne pas paste le giant navigateur-looking string dans là.
Vous pouvez’t trust the string
Ce est le un chose à remember. Le utilisateur-agent line est plain texte, donc n’importe quoi peut fake il. Quelconque script peut claim à être Googlebot dans a unique line de code — et plenty faire, à sneak past bloque. Google itself dit le Googlebot header est “souvent spoofed.”
Que signifie vous devez jamais decide qui obtient accès à votre site fondé seulement on le utilisateur agent. Si vous en réalité besoin à confirmer a visitor est le réel Googlebot (dire, vous êtes reading votre logs), vous vérifier par checking où la requête came depuis — pas ce que il dit il est. Le Avancé tab walks via exactly comment.
A few gotchas
robots.txtutilisateur-agent noms sont case-insensitive —Googlebotetgooglebotsont le même.- Blocking tout avec
User-agent: *fait pas bloquer tout de Google’s bots — son ad robots d’exploration et safety robot d’exploration ignore le wildcard. - Showing un version de une page à a robot d’exploration et a différent un à réel personnes est cloaking, et Google treats il as spam.
Vouloir le complet picture — le token tables, chaque Google et Bing robot d’exploration, le exact verification commands, et le cloaking règles — switch à le Avancé tab.
Preuve à l’appui de cette affirmation HTTP User-Agent is a request field containing product information supplied by the client; it is descriptive text and not proof of identity. Portée : HTTP semantics for User-Agent. Niveau de confiance : élevé · Vérifié : IETF RFC 9110: User-Agent Preuve à l’appui de cette affirmation robots.txt User-agent matching is defined by the Robots Exclusion Protocol and controls crawler access, not authentication or general HTTP content negotiation. Portée : RFC 9309 robots matching behavior. Niveau de confiance : élevé · Vérifié : IETF RFC 9309: Robots Exclusion ProtocolTL;DR — A utilisateur agent est le HTTP requête header quelconque client sends à identifier itself; c’est optional, client-filled metadata, pas authenticated identity. Son valeur est le utilisateur-agent string. Séparé depuis que est le utilisateur-agent token (produit token) utilisé dans
robots.txt— RFC 9309 dit il DEVRAIT être a substring de le string, a strong convention avec documented exceptions (Google-Extended a aucun requête string à tout). Matching est case-insensitive, version numbers/wildcards dans le token line sont ignored, le la plupart-spécifique groupe wins, et même-token groupes merge mais jamais merge avec*. Le string est trivially spoofed — Google calls son propre “often spoofed” — donc vérifier par reverse + forward DNS (behind quelconque proxy/CDN, utiliser le réel client IP) contregooglebot.com/google.com/googleusercontent.compour Google orsearch.msn.compour Bing, or match publié IP ranges — et même a verified requête seulement proves une requête arrived, pas que lune page était indexé, retrieved, or utilisé pour AI training. AdsBot et Google-Safety ignoreUser-agent: *. Chrome est aussi freezing detail out de navigateur UA strings (Utilisateur-Agent reduction); Client Hints sont le structured mais opt-dans replacement, et aucun substitutes pour robot d’exploration verification. Utilisateur-agent adaptation peut être legitimate, mais deceptively showing robots d’exploration materially différent contenu peut être cloaking.
Le header, le string, et le token
Three choses, and keeping les straight is la plupart of ce topic.
- Le header.
User-Agentest an HTTP requête header. Chaque client sends il: votre navigateur,curl, a robot d’exploration, a bot. Per RFC 9110 (le core HTTP semantics standard), c’est an optional champ le client fills dans — client-supplied descriptive metadata, pas an authenticated identity le serveur a verified. - Le string. Le header’s valeur — a freeform line describing le software, version, rendu moteur, et parfois le OS.
- Le token. Le court identifier utilisé dans
robots.txtUser-agent:lines à cible a robot d’exploration —Googlebot,bingbot,Google-Extended.
«The relationship is the part that trips people up. RFC 9309 (the formal Robots
Exclusion Protocol standard) says the token “SHOULD be a substring of the
identification string that the crawler sends… in the case of HTTP, the product token
SHOULD be a substring in the User-Agent header.” That’s a SHOULD, not a MUST —
a strong convention the standard recommends, not a hard requirement every crawler is
mechanically bound to. Google-Extended (below) is the clearest example of a
documented exception to it. Don’t read the substring rule as universal just because
Google follows it for most of its own tokens. The token is part of the string when
a provider does supply one; you target the token in robots.txt and read the string
in your logs.
» (Traduction) (Résumé en français de la section vingt-six, sous-partie un : le texte source est conservé pour vérification lors de la relecture francophone.)
«Google’s own framing of how its bots identify themselves is useful here: “Google’s
crawlers identify themselves through three things: the HTTP user-agent request
header, the source IP address of the request, and the reverse DNS hostname of the
source IP.” Note that the user-agent is only one of the three — the other two are
how you actually verify it.
» (Traduction) (Résumé en français de la section vingt-sept, sous-partie un : le texte source est conservé pour vérification lors de la relecture francophone.)
Google-Extended: a token with aucun string
Le cleanest illustration de token ≠ string est Google-Extended. Il contrôle
si Google peut utiliser votre contenu pour Gemini training et grounding — et il a
aucun dedicated HTTP requête utilisateur-agent string à tout. Le exploration itself est fait
avec existing Googlebot strings; Google-Extended exists seulement as a robots.txt
contrôler token. Vous’ll jamais voir “Google-Extended” dans une requête header dans votre logs.
Le practical consequence: blocking Google-Extended affecte seulement AI-training utiliser
de votre contenu — il fait pas arrêter Googlebot depuis exploration et indexation vous pour
Recherche. ils sont séparé decisions controlled par séparé tokens. (Pour le broader
picture de le bots reading votre site, voir AI robots d’exploration et robot d’exploration.)
Googlebot’s user-agent strings
Googlebot est “evergreen” — il exécute on a recent version de Chrome, et le Chrome
version dans son string mises à jour periodically (il a since December 2019). c’est pourquoi
le version apparaît as a W.X.Y.Z placeholder:
Googlebot Smartphone (mobile):
Mozilla/5.0 (Linux; Android 6.0.1; Nexus 5X Build/MMB29P) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/W.X.Y.Z Mobile Safari/537.36 (compatible; Googlebot/2.1; +http://www.google.com/bot.html)Googlebot Desktop:
Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; Googlebot/2.1; +http://www.google.com/bot.html) Chrome/W.X.Y.Z Safari/537.36Deux choses à internalize. Premier, ne pas hardcode le version — W.X.Y.Z changements,
et matching on il va break. Match le stable token Googlebot à la place. Deuxième,
vous pouvez’t séparé mobile depuis desktop dans robots.txt. Les deux variants share le un
Googlebot token, donc a robots.txt règle s’applique à les deux.
Google’s robot d’exploration tokens
Google exécute a entier family de robots d’exploration et fetchers, chaque avec son propre token. Le ones vous’ll meet la plupart:
| Robot d’exploration | robots.txt token | Notes |
|---|---|---|
| Googlebot | Googlebot | Recherche, Images, Video, News, Découvrir — mobile + desktop share ce token |
| Googlebot Image | Googlebot-Image | Google Images |
| Googlebot Video | Googlebot-Video | Video Recherche |
| Googlebot News | Googlebot-News | Utilise various Googlebot strings |
| Google StoreBot | Storebot-Google | Shopping |
| Google-InspectionTool | Google-InspectionTool | Powers Recherche testing outils |
| GoogleAutre | GoogleOther | Internal research/fetching |
| Google-Extended | Google-Extended | robots.txt-seulement — Gemini training, aucun requête string |
Et le ones que break le usual règles — le special-case robots d’exploration que ignore
User-agent: *:
- AdsBot (
AdsBot-Google) et AdsBot Mobile (AdsBot-Google-Mobile) — ils ne pas obey le wildcard. À bloquer les vous doit nom les explicitly. - AdSense (
Mediapartners-Google) — même; ignores le mondial*. - Google-Safety — utilisé pour malware/abuse detection; il ignores robots.txt entirely.
Le implication est le un personnes miss: User-agent: * ne fait pas bloquer AdsBot or
Google-Safety. Si vous “block all bots” avec a wildcard et assume AdsBot est gone,
il n’est pas. (Ce est exactly le kind de surprise que lands une page dans indexé though
bloqué par robots.txt territory — voir robots.txt pour le complet contrôler story.)
Bingbot’s user-agent strings
Bing rebuilt Bingbot’s string dans 2022 à reflect que il renders avec Microsoft Edge. Le actuel strings:
Bingbot Desktop:
Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; bingbot/2.0; +http://www.bing.com/bingbot.htm) Chrome/W.X.Y.Z Safari/537.36Bingbot Mobile:
Mozilla/5.0 (Linux; Android 6.0.1; Nexus 5X Build/MMB29P) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/W.X.Y.Z Mobile Safari/537.36 (compatible; bingbot/2.0; +http://www.bing.com/bingbot.htm)Le robots.txt token est simplement bingbot. Le chose à watch: post-2022, Bingbot’s
string semble presque exactly comme a réel Chrome/Edge navigateur — le seulement tell est le
bingbot/2.0 fragment à l’intérieur il. Si vous ont quelconque logic que filters or detects bots
par UA, que modifier matters.
How robots.txt en réalité matches a token
A quelques règles govern qui groupe de règles a robot d’exploration obeys (per Google’s robots.txt spec et RFC 9309):
- La plupart-spécifique match wins. Google “determines le correct groupe de règles par
finding… le groupe avec le la plupart spécifique utilisateur agent que matches le robot’s
utilisateur agent.” A
Googlebotgroupe beats a*groupe pour Googlebot. - Même-token groupes merge — mais jamais avec
*. Plusieurs groupes naming le même agent sont combined dans un. A spécifique-agent groupe et le*groupe sont pas merged;*est seulement le fallback quand rien spécifique matches. - Case-insensitive. Champ nom et valeur les deux —
Googlebot,googlebot,GOOGLEBOTsont equivalent. - Version numbers et wildcards dans le token line sont ignored. Per Google,
“les deux
googlebot/1.2etgooglebot*sont equivalent àgooglebot.” Vous ne peut pas écrireUser-agent: Googlebot*à match a family — le*là fait rien.
So a User-agent: line takes a token and matches it as a plain (case-insensitive)
substring of the crawler’s identity — aucun version pinning, aucun wildcards à l’intérieur it.
Pourquoi vous pouvez’t confiance le string — et comment vérifier
«The user-agent string is freeform text. Anything can set it. One line of curl
will claim to be Googlebot, and plenty of tools and malicious bots do exactly that to
slip past blocks. Google says so in its own Googlebot docs: “the HTTP user-agent
request header used by Googlebot is often spoofed by other crawlers.” As I’ve put it
in my Googlebot guide, “Many SEO tools and some malicious bots will pretend to be
Googlebot. This may allow them to access websites that try to block them.”
» (Traduction) (Résumé en français de la section cinquante-six, sous-partie un : le texte source est conservé pour vérification lors de la relecture francophone.)
So jamais faire an accès or content decision on the string alone. Vérifier à la place.
Un prerequisite avant soit méthode: obtenir le réel source IP. Si votre site sits
behind a reverse proxy, charger balancer, or CDN, le adresse dans votre par défaut accès log
peut être le proxy’s IP, pas le robot’s — vous besoin le original client IP (généralement
forwarded dans a header comme X-Forwarded-For, configuré correctement à votre proxy) or
aucun verification méthode ci-dessous signifie n’importe quoi.
Méthode 1 — reverse + forward DNS (meilleur pour spot checks). Google’s two steps:
«1. “Run a reverse DNS lookup on the accessing IP address from your logs, using the
host command. Verify that the domain name is either googlebot.com,
google.com, or googleusercontent.com.”
2. “Run a forward DNS lookup on the domain name retrieved in step 1… Verify that
it’s the same as the original accessing IP address from your logs.”
» (Traduction) (Résumé en français de la section soixante, sous-partie un : le texte source est conservé pour vérification lors de la relecture francophone.)
Pour Bingbot, le même deux-étape dance, mais le hostname doit fin dans search.msn.com
(pas a Bing-branded domain — a courant surprise). Commands sont dans le Scripts tab.
«Method 2 — published IP ranges (best at scale). Google doesn’t publish a static allowlist for hardcoding (“these IP address ranges can change”), but it does publish machine-readable CIDR JSON files you can match against (common-crawlers.json and the broader crawler files). Bing now publishes its ranges too. I built a Googlebot IP verification tool for exactly this — paste in IPs and it classifies them. Bing Webmaster Tools has a built-in “Verify Bingbot” tool as well. » (Traduction) (Résumé en français de la section soixante-deux, sous-partie un : le texte source est conservé pour vérification lors de la relecture francophone.)
DNS est meilleur pour a un-off log vérifier; IP-range matching est meilleur pour verifying à volume. Utiliser whichever fits — mais utiliser un de les. Et treat les deux le attendu hostnames et le range fichiers as actuel as de aujourd’hui, pas permanent — Google et Bing ont modifié ces paths avant (le IP-range JSON fichiers déplacé et étaient renamed since ce article était premier written), donc re-vérifier le actif verification doc si a lookup que utilisé à fonctionner arrête matching.
A UA match n’est pas proof of downstream outcomes
Même a entièrement verified requête — réel Googlebot IP, forward-confirmed reverse DNS, everything checks out — seulement proves un chose: que requête reached votre serveur. It’s tempting to round que up into a beaucoup bigger claim, but chaque of ces is a separate fact requiring separate evidence:
- Requête reçu — une requête avec que utilisateur agent hit votre serveur. (Ce que log verification en réalité proves.)
- Identity confirmed — la requête vraiment came depuis le robot d’exploration il claims à être. (Ce que reverse DNS / IP-range matching ajoute on top.)
- Contenu récupéré et rendu — le robot d’exploration successfully rendu lune page (aucun erreurs, aucun bloqué resources). Pas guaranteed simplement parce que une requête landed.
- Indexé — l’URL fait il dans le recherche indexer. A successful récupérer ne fait pas guarantee indexation.
- Utilisé pour retrieval, citation, or training — pour AI robots d’exploration surtout (Google-Extended, GPTBot, et le rest), a explorer n’est pas proof votre contenu était retrieved pour a spécifique réponse, cited, or utilisé dans model training. Ceux sont séparé, mostly unobservable étapes downstream de le explorer.
A verified Googlebot hit in votre logs is réel signal — simplement don’t stretch it plus loin que ce que it en réalité montre.
Web Bot Auth: où verification is heading
Dans 2026 Google began experimenting avec Web Bot Auth — “an experimental
cryptographic protocol utilisé à authenticate requêtes sent par bots.” Le idea est à
“déplacer au-delà easily spoofed headers à a verified identity et decouple agent
identity depuis IP addresses.” Bots cryptographically sign leur requêtes; sites vérifier
le signature contre Google’s publié public keys, et signed requêtes carry a
Signature-Agent header. Google’s propre caveat matters: “Nous ne pas sign chaque requête
de a particulier agent. Être certain que vous fall back à le established méthodes de bot
verification.” Donc c’est additive, pas a replacement — reverse DNS et IP ranges remain
votre baseline aujourd’hui.
Navigateurs sont getting harder à parse depuis le UA string aussi
«Everything above is about crawlers, but the same “don’t over-trust the string” lesson applies to browsers, and it’s getting stronger. Chrome has been rolling out User-Agent reduction: freezing or coarsening parts of its UA string (full browser version, OS version, device model) instead of reporting them exactly, so the string can’t be used to fingerprint a specific user. Google’s own framing: “The granularity and abundance of detail can lead to user identification. The default availability of this information can lead to covert tracking.” Practically, that means UA-string parsing for exact browser/OS/device version — analytics, device detection, bug triage — is increasingly unreliable and will only get more so. » (Traduction) (Résumé en français de la section soixante-douze, sous-partie un : le texte source est conservé pour vérification lors de la relecture francophone.)
«The replacement Chrome recommends is User-Agent Client Hints (UA-CH): structured
data the browser sends only when a server explicitly asks for it. Low-entropy hints
(browser brand, major version, mobile flag) go out by default; high-entropy hints
(exact version, platform version, device model) require the server to opt in via an
Accept-CH response header first — an explicit negotiation, not a broadcast. Two
caveats before you lean on it: it’s a Chrome/Chromium-family mechanism, not something
every browser sends, and even where it’s supported, “the value may be blank, not
returned, or populated with a varying value.” Client Hints solve the browser-string
problem; they are not a crawler-verification mechanism — Google and Bing still
verify their own crawlers via DNS and IP ranges, not Client Hints.
» (Traduction) (Résumé en français de la section soixante-treize, sous-partie un : le texte source est conservé pour vérification lors de la relecture francophone.)
User-agent targeting and cloaking
Le tempting déplacer — “detect Googlebot par son UA et servir il quelque chose special” — est les deux technically fragile et a policy violation.
Fragile, parce que Google ne fait pas explorer avec un UA. Vous’d ont à correctement handle Googlebot (mobile et desktop), Google-InspectionTool, AdsBot, GoogleAutre, et plus, depuis rotating IPs — practically impossible à whitelist cleanly.
A policy violation, parce que diffusion différent contenu à a robot d’exploration que à utilisateurs est cloaking: “presenting différent contenu à utilisateurs et moteur de recherches avec le intent à manipulate recherche rankings et mislead utilisateurs.” Le penalty ranges depuis algorithmic demotion à complet deindexing. Remarque le line: legitimate adaptation (responsive layouts, contenu negotiation) est fine — c’est swapping le contenu itself entre bots et utilisateurs que crosses dans cloaking.
Pour où le utilisateur agent sits dans le bigger pipeline, voir exploration (le hub) et robot d’exploration. Pour controlling ce que ceux bots sont allowed à récupérer, voir robots.txt.
AI summary
A condensed prendre on the Avancé version:
- Three choses, kept straight: le
User-Agentrequête header — optional, client-filled metadata per RFC 9110, pas authenticated identity; son valeur, le utilisateur-agent string; et le token utilisé dansrobots.txt. Per RFC 9309 le token DEVRAIT être a substring de le string — a strong convention, pas a universal règle. - Some tokens ont aucun string.
Google-Extendedest le documented exception: il exists seulement as a robots.txt contrôler (Gemini training); exploration utilise normal Googlebot strings. Blocking il ne fait pas affecter Recherche indexation. - Googlebot/Bingbot strings sont evergreen — le Chrome version montre as
W.X.Y.Zet changements; match le stable token (Googlebot,bingbot), jamais le version. Mobile et desktop Googlebot share un token. Post-2022 Bingbot semble comme a réel navigateur except pour lebingbot/2.0fragment. - robots.txt matching: la plupart-spécifique groupe wins; même-token groupes merge mais jamais
avec
*; matching est case-insensitive; version numbers et wildcards dans leUser-agent:line sont ignored (Googlebot*=Googlebot). - AdsBot et Google-Safety ignore
User-agent: *— bloquer les par nom or pas à tout. - Le string est trivially spoofed (Google calls son propre “often spoofed”). Obtenir le
réel client IP premier (proxies/CDNs peut mask il dans votre logs), alors vérifier par
reverse + forward DNS (
googlebot.com/google.com/googleusercontent.com; Bing →search.msn.com) or publié IP ranges — fichiers Google a renamed/déplacé avant, donc re-vérifier le actif doc si a lookup arrête matching. Jamais confiance le string pour accès contrôler. - A verified requête encore n’est pas proof de tout downstream. Requête reçu, identity confirmed, contenu rendu, page indexé, et contenu retrieved/cited/trained-on sont séparé claims needing séparé evidence — a log hit proves le premier, rien sinon automatiquement.
- Web Bot Auth (2026, experimental) signs requêtes cryptographically — additive, avec DNS/IP encore le fallback.
- Navigateur UA strings sont getting harder à parse aussi: Chrome’s Utilisateur-Agent reduction freezes exact version/OS/device detail out de le string; Client Hints sont le structured, opt-dans replacement — mais ils sont Chrome-spécifique et ne pas substitute pour robot d’exploration verification.
- Diffusion différent contenu par UA est cloaking — a spam-policy violation, et fragile parce que Google explore avec nombreux UAs.
Documentation officielle
Primary-source documentation depuis le moteur de recherches et le standard.
- Overview de Google robots d’exploration et fetchers (utilisateur agents) — le three identification signaux et le complet robot d’exploration liste.
- Google’s courant robots d’exploration — le token + utilisateur-agent-string tableau.
- Google Special-Case Robots d’exploration — AdsBot, Mediapartners-Google, Google-Safety et le
*exceptions. - Vérifier Requêtes depuis Google Robots d’exploration et Fetchers — le deux-étape DNS méthode et le IP-range fichiers.
- Ce que Est Googlebot — le Googlebot strings et le “often spoofed” remarque.
- Comment Google Interprets le robots.txt Specification — token matching, case-insensitivity, ignored wildcards.
- Authenticating Requêtes avec Web Bot Auth (Experimental) — le cryptographic signing protocol.
- Updating le utilisateur agent de Googlebot (2019) — pourquoi le string montre
W.X.Y.Z. - Spam Policies — Cloaking — le definition et le penalty.
Bing / Microsoft
- Announcing utilisateur-agent modifier pour Bingbot (Apr 2022) — le actuel desktop + mobile strings (Fabrice Canel).
- Comment Vérifier que Bingbot est Bingbot (Aug 2012) — le
*.search.msn.comreverse-DNS méthode. - Bing Webmaster Outils — Vérifier Bingbot — le built-dans verification outil.
Le standard
- RFC 9110 — HTTP Semantics, §10.1.5 Utilisateur-Agent — le core HTTP spec:
User-Agentest an optional, client-supplied champ, pas authenticated identity. - RFC 9309: Robots Exclusion Protocol — le formal
SHOULD-level definition de le produit token as a substring de le utilisateur-agent string. - MDN — Utilisateur-Agent header — le HTTP syntax de le header itself.
Navigateur UA strings
- Chrome Privacy Sandbox — Utilisateur-Agent reduction — ce que obtient frozen/coarsened dans Chrome’s UA string, et pourquoi.
- Chrome pour Developers — Utilisateur-Agent Client Hints — faible- vs. élevé-entropy hints et le
Accept-CHopt-dans.
Quotes from the source
On-le-record statements depuis Google, Bing, et le RFC. Chaque lien est a deep lien que jumps à le quoted passage on le page source.
Google — how robots d’exploration identifier themselves
«- “Google’s crawlers identify themselves through three things: the HTTP user-agent request header, the source IP address of the request, and the reverse DNS hostname of the source IP.”
— Google Search Central docs.
Jump to quote
» (Traduction) (Résumé en français de la section quatre-vingt-dix-sept, sous-partie un : le texte source est conservé pour vérification lors de la relecture francophone.)
Google — le string est spoofed
- “Le HTTP utilisateur-agent requête header utilisé par Googlebot est souvent spoofed par autre robots.” — Recherche Google Central docs. Jump à citation
Google — verifying by DNS
«- “Run a reverse DNS lookup on the accessing IP address from your logs, using the host command. Verify that the domain name is either googlebot.com, google.com, or googleusercontent.com.”
Jump to quote
» (Traduction) (Résumé en français de la section cent un, sous-partie un : le texte source est conservé pour vérification lors de la relecture francophone.)
«- “Google doesn’t post a public list of IP addresses for website owners to allowlist because these IP address ranges can change.”
Jump to quote
» (Traduction) (Résumé en français de la section cent un, sous-partie deux : le texte source est conservé pour vérification lors de la relecture francophone.)
«Google — robots.txt token matching » (Traduction) (Résumé en français de la section cent deux, sous-partie un : le texte source est conservé pour vérification lors de la relecture francophone.)
«- “All non-matching text is ignored (for example, both googlebot/1.2 and googlebot* are equivalent to googlebot).”
— Google’s robots.txt spec.
Jump to quote
» (Traduction) (Résumé en français de la section cent trois, sous-partie un : le texte source est conservé pour vérification lors de la relecture francophone.)
Google — Web Bot Auth
«- “An experimental cryptographic protocol used to authenticate requests sent by bots.” Jump to quote » (Traduction) (Résumé en français de la section cent cinq, sous-partie un : le texte source est conservé pour vérification lors de la relecture francophone.) «- “We don’t sign every request of a particular agent. Be sure that you fall back to the established methods of bot verification.” Jump to quote » (Traduction) (Résumé en français de la section cent cinq, sous-partie deux : le texte source est conservé pour vérification lors de la relecture francophone.)
Google — cloaking
«- “Cloaking refers to the practice of presenting different content to users and search engines with the intent to manipulate search rankings and mislead users.” — Google Search Essentials, Spam Policies. Jump to quote » (Traduction) (Résumé en français de la section cent sept, sous-partie un : le texte source est conservé pour vérification lors de la relecture francophone.)
RFC 9309 — token est a substring de le string
- “Le produit token Devrait être a substring de le identification string ce le robot sends à le service. Par exemple, dans le case de HTTP, le produit token Devrait être a substring dans le Utilisateur-Agent header.” Jump à citation
Patrick Stox — on spoofing
- “Beaucoup SEO outils et some malicious bots va pretend à être Googlebot. Ce peut autoriser les à access sites web ce try à bloquer les.” — depuis mon Googlebot guide on Ahrefs. Lire il
Robot d’exploration → token → string → vérifier
Le référence tableau. Le token est ce que vous put dans robots.txt; le vérifier
hostname est ce que a genuine requête reverse-resolves à.
| Robot d’exploration | robots.txt token | UA string contient | Vérifier hostname (reverse DNS) |
|---|---|---|---|
| Googlebot (Recherche) | Googlebot | Googlebot/2.1 | googlebot.com / google.com / googleusercontent.com |
| Googlebot Image | Googlebot-Image | Googlebot-Image/1.0 | même as Googlebot |
| Googlebot Video | Googlebot-Video | Googlebot-Video/1.0 | même as Googlebot |
| Google StoreBot | Storebot-Google | Storebot-Google/1.0 | même as Googlebot |
| Google-InspectionTool | Google-InspectionTool | Google-InspectionTool/1.0 | même as Googlebot |
| GoogleAutre | GoogleOther | GoogleOther | varies (voir Google’s IP fichiers) |
| Google-Extended | Google-Extended | none — robots.txt-seulement token | n/a (aucun requête string) |
| AdsBot | AdsBot-Google | AdsBot-Google | ignores User-agent: * |
| AdSense | Mediapartners-Google | Mediapartners-Google | ignores User-agent: * |
| Google-Safety | (ignores robots.txt) | Google-Safety | ignores robots.txt entirely |
| Bingbot | bingbot | bingbot/2.0 | search.msn.com |
robots.txt matching rules En un coup d’œil
| Règle | Ce que cela signifie |
|---|---|
| La plupart-spécifique groupe wins | A Googlebot groupe beats * pour Googlebot |
| Même-token groupes merge | Plusieurs Googlebot groupes combine dans un |
…mais jamais merge avec * | * est seulement le fallback quand rien spécifique matches |
| Case-insensitive | Googlebot = googlebot = GOOGLEBOT |
| Version/wildcards dans token ignored | Googlebot/1.2 et Googlebot* les deux = Googlebot |
Rapide facts
- Token = substring de le UA string (RFC 9309). Pas le entier string.
- Mobile et desktop Googlebot share un token — vous pouvez’t split les dans robots.txt.
- Le Chrome version dans le string est
W.X.Y.Z— il changements; jamais hardcode il. - Le UA string est trivially spoofed — vérifier par DNS or IP, jamais confiance le string.
Vérifier a bot by reverse + forward DNS
Le utilisateur-agent string peut être faked dans un line de curl. Confirmer a bot est genuine par
checking le IP il en réalité came depuis. Le modèle est le même pour Google et Bing —
seulement le attendu hostname differs.
Obtenir le correct IP premier: si requêtes réussir via a reverse proxy, charger balancer, or CDN avant hitting votre serveur, votre par défaut logs peut montrer le proxy’s adresse, pas le robot’s. Utiliser le vrai client IP (depuis a correctement configuré forwarding header) avant running soit vérifier ci-dessous.
macOS / Linux
# --- Googlebot ---
# 1) Reverse DNS the IP from your logs — must end in googlebot.com, google.com, or googleusercontent.com
host 66.249.66.1
# → 1.66.249.66.in-addr.arpa domain name pointer crawl-66-249-66-1.googlebot.com
# 2) Forward DNS that hostname back — it must resolve to the same IP
host crawl-66-249-66-1.googlebot.com
# → crawl-66-249-66-1.googlebot.com has address 66.249.66.1
# --- Bingbot ---
# Reverse DNS must end in search.msn.com, then forward-confirm back to the IP
host 157.55.39.1
host <the-hostname-it-returned>Windows
:: Googlebot
nslookup 66.249.66.1
nslookup crawl-66-249-66-1.googlebot.com
:: Bingbot
nslookup 157.55.39.1
nslookup <the-hostname-it-returned>Si le reverse lookup ne fait pas fin dans le attendu domain — googlebot.com /
google.com / googleusercontent.com pour Google, search.msn.com pour Bing — or le
forward lookup ne fait pas match le original IP, il n’est pas le réel bot, aucun matter ce que le
utilisateur-agent string dit.
Match contre publié IP ranges (at scale)
Pour verifying lots de hits, skip per-requête DNS et match le IP contre le moteur’s publié CIDR ranges à la place. Google publishes machine-readable JSON:
https://developers.google.com/static/crawling/ipranges/common-crawlers.json
https://developers.google.com/static/crawling/ipranges/special-crawlers.json
https://developers.google.com/static/crawling/ipranges/user-triggered-fetchers.jsonPull le fichier, construire le CIDR définir, et tester chaque logged IP pour membership. (Je construit a Googlebot IP verification outil que fait ce pour vous.) Bing publishes son ranges aussi, et Bing Webmaster Outils a a built-dans “Vérifier Bingbot” vérifier.
User-agent sanity checklist
Avant vous écrire UA rules or act on a bot in votre logs:
- vous êtes targeting le token dans
robots.txt(e.g.Googlebot), pas pasting le complet UA string. - Aucun version numbers or
*à l’intérieur leUser-agent:line — ils sont ignored (Googlebot*ne fait pashing). - Vous haven’t assumed
User-agent: *bloque AdsBot or Google-Safety — il ne fait pas; nom les explicitly si vous devez. - Si vous bloqué
Google-Extended, vous comprendre il seulement affecte AI-training utiliser — Googlebot encore explore et indexes pour Recherche. - vous êtes pas keying accès contrôler or contenu on le raw UA string — c’est spoofable.
- Quelconque “est ce vraiment Googlebot?” vérifier goes via reverse + forward DNS
(
googlebot.com/google.com/googleusercontent.com) or le publié IP ranges — Bing viasearch.msn.com. - Aucun version-pinned UA matching anywhere — le Chrome
W.X.Y.Zportion changements. - vous êtes pas diffusion différent contenu à a bot UA que à utilisateurs (c’est cloaking).
Outils pour working with utilisateur agents
Three de mon propre gratuit outils cover le three tasks personnes en réalité come à ce topic pour: confirming a claimed bot est réel, seeing qui utilisateur agents sont en réalité hitting votre site, et checking ce que AI robots d’exploration sont allowed à faire.
Googlebot Verifier — le outil pour le exact problème ce article garde coming back à: le utilisateur-agent string est simplement texte, donc vous pouvez’t confiance il on son propre. Paste dans an IP adresse depuis votre logs, pick qui robot d’exploration il claims à être (Googlebot, Bingbot, et others), et il exécute le reverse + forward DNS vérifier et le published-IP-range match pour vous, alors renvoie a tiered verdict — reverse-DNS confirmed, dans publié ranges, spoofed, unverifiable, or pas a connu robot d’exploration. Obtenu a entier day de hits à vérifier au lieu de un IP? Paste up à 500 IPs or raw log lines dans le bulk box.
Log Fichier Analyzer — pour le question “qui utilisateur agents sont en réalité exploration mon site?” Drop dans a serveur accès log (nginx, Apache, IIS/W3C, or JSON) et il parses il entirely dans votre navigateur, breaking explorer activity bas par bot et par section, flagging status-code waste, splitting AI robots d’exploration depuis recherche robots d’exploration, et — le partie que matters la plupart pour ce topic — running a spoofer rapport que noms requêtes claiming à être a connu robot’s utilisateur-agent token sans le IP à back il up.
AI-Robot Accès Checker — pour le newer
family de tokens que ne pas behave comme Googlebot or bingbot. Enter une URL et
il vérifications votre robots.txt contre chaque major AI-robot utilisateur-agent token
(GPTBot, ClaudeBot, PerplexityBot, Google-Extended, et plus), montre le exact
règle que wins pour chaque, et flags si an llms.txt exists. Utile pour
confirming a token comme Google-Extended est doing ce que vous think c’est doing —
since, as covered ci-dessus, il a aucun requête string de son propre à spot dans votre
logs.
Prompts pour user-agent tasks
Deux prompts construit autour le spécifique traps ce topic sets — spoofing et
robots.txt token syntax — pas générique “audit mon SEO” filler. Paste votre propre
données dans le placeholders.
Prompt 1 — triage a batch of user-agent strings from votre logs pour signs of spoofing
Paste a column de raw utilisateur-agent strings pulled depuis votre accès log (pas IPs — ce prompt ne peut pas vérifier identity, seulement spot inconsistencies dans le string itself):
Here is a list of raw User-Agent strings from my server access log, one per
line. For each one:
1. Say which crawler token it claims to be (e.g. Googlebot, bingbot,
GPTBot), or "no recognizable token" if none.
2. Flag anything internally inconsistent for that claimed crawler — e.g. a
claimed Googlebot string missing "compatible; Googlebot" or the
"+http://www.google.com/bot.html" URL, a claimed bingbot string missing
"bingbot/2.0", or a Chrome version that looks hand-typed rather than a
real evergreen build.
3. Remind me that this is a text-pattern check only — it cannot confirm
identity. Real verification requires reverse+forward DNS or matching
against the crawler's published IP ranges.
[paste user-agent strings here]Prompt 2 — vérifier a robots.txt pour token-matching mistakes
Paste votre complet robots.txt fichier:
Review this robots.txt file for user-agent token mistakes:
1. Flag any User-agent line that includes a version number or a wildcard
inside the token (e.g. "Googlebot/1.2" or "Googlebot*") — these are
ignored, not matched as a family.
2. Check whether User-agent: * is being relied on to block AdsBot-Google,
AdsBot-Google-Mobile, Mediapartners-Google, or Google-Safety — these
ignore the wildcard and need their own named group if I want them
blocked.
3. Note any duplicate groups for the same token that could be merged, and
confirm token matching here is case-insensitive so I don't need
near-duplicate groups for casing variants.
4. List which named groups exist and which of Google's/Bing's common
crawler tokens (Googlebot, Googlebot-Image, Google-Extended, bingbot)
have no explicit group at all, so I know they're falling through to *.
[paste robots.txt here] Testez vos connaissances: utilisateur agent
Five rapide questions on le header, le string, le token, et comment vérifier a bot est réel. Pick an réponse pour chaque, alors vérifier.
Ressources utiles
Mon connexe writing
- Ce que Est Googlebot & Comment Fait Il Fonctionner? — le complet Googlebot UA strings, verification méthodes, et mon IP verification outil.
- Indexé, though bloqué par robots.txt — où UA-based blocking et robots.txt blocking collide.
- Robots.txt et SEO: Tout Vous devez Know — comment utilisateur-agent groupes et règles en réalité fonctionner.
- Meet le Nouveau Web Robots d’exploration: AI Bots Sont Closing dans on Moteur de recherche Bots — le modification cast de utilisateur agents dans votre logs.
Official / standards
- RFC 9110 — HTTP Semantics, §10.1.5 Utilisateur-Agent — le base definition: optional, client-supplied metadata.
- RFC 9309: Robots Exclusion Protocol — le formal
SHOULD-level produit-token-as-substring definition. - Google’s Overview de robots d’exploration et fetchers et Vérifier Google robots d’exploration.
- Chrome Privacy Sandbox — Utilisateur-Agent reduction et Utilisateur-Agent Client Hints — pourquoi navigateur UA strings sont getting harder à parse, et ce que remplace les.
Depuis others
- John Mueller — Bots que impersonate Googlebot — on spoofing et pourquoi reverse DNS est le réponse.
- MDN — Utilisateur-Agent header — le HTTP spec view de le header.
- r/TechSEO — le community pour explorer/log debugging.
- Web Bot Auth: Google’s nouveau experimental méthode à valider authentic bots (Moteur de recherche Land, Barry Schwartz, Peut 2026) — le meilleur news-desk summary de comment cryptographic bot signing fonctionne et Ce que cela signifie En pratique.
- Google-Agent utilisateur agent identifies AI agent trafic dans serveur logs (Moteur de recherche Land) — covers le nouveau utilisateur-triggered fetcher que ignores robots.txt et utilise Web Bot Auth.
- Google Est Testing Nouveau Bot Authorization Standard (Moteur de recherche Journal) — broader industry context on le IETF standard et qui entreprises (Amazon, Cloudflare, Akamai, OpenAI) sont backing il.
- Announcing future utilisateur-agents pour Bingbot (Bing Webmaster Blog, Fabrice Canel, Dec 2019) — le original announcement de Bingbot’s shift à Edge-based rendu avant le 2022 rollout.
- Microsoft liste de Bingbot IP addresses released (Moteur de recherche Land) — coverage de Bing’s décision à publish IP ranges pour à-scale bot verification.
Journal des modifications
Mis à jour le 18 juil. 2026.
Résumé éditorial et détails enregistrés des changements.Détails des changements
-
Les notes détaillées des changements sont actuellement disponibles en anglais.
-
Les notes détaillées des changements sont actuellement disponibles en anglais.
-
Les notes détaillées des changements sont actuellement disponibles en anglais.
-
Les notes détaillées des changements sont actuellement disponibles en anglais.
-
Les notes détaillées des changements sont actuellement disponibles en anglais.
Comparaison complète indisponible — aucun instantané antérieur n’a été archivé pour cette révision.