/terms/web-bot-auth · 5 min read · advanced
Web Bot Auth
Citation status
Last checked 2026-05-30
Web Bot Auth is an emerging IETF-track standard for cryptographically verifying that an HTTP request comes from a declared bot operator, rather than from a spoofed user agent or a third party impersonating the bot's IP range. It is a bot-flavored profile of RFC 9421 HTTP Message Signatures (Backman, Richer, Sporny; IETF Proposed Standard, February 2024)1, formalized in draft-meunier-web-bot-auth-architecture jointly authored by Cloudflare and Google2. Each signed request carries three headers (Signature-Agent pointing to the bot's key directory origin, Signature-Input describing the covered components and the tag="web-bot-auth" profile string, and Signature carrying the Ed25519 signature itself); the verifier reads Signature-Agent, fetches the matching public key from that origin at /.well-known/http-message-signatures-directory in JSON Web Key Set format, and the signature verifies (or it does not). The user-agent string and reverse DNS are no longer the only mechanisms a publisher has to identify the bot.
The standard addresses the crawler-controllability gap that user-agent strings, reverse DNS, and IP-range allow-lists leave open. User-agent strings are trivially spoofable; reverse DNS is operationally awkward and not all bots support it; IP-range allow-lists need to be maintained per vendor with no shared format. None of these mechanisms cryptographically proves that a request came from a specific bot operator. For AI engines like Grok where observed retrieval traffic does not surface documented user agents and arrives from rotating datacenter or proxy IPs with spoofed Chrome and Safari UAs, the conventional mechanisms break entirely. Web Bot Auth is the industry's emerging answer: cryptographic identity verification regardless of what user-agent string or IP a request claims.
Status in 2026
RFC 9421 itself is a finalized IETF Proposed Standard, published February 2024 on the Standards Track. Web Bot Auth as a bot-profile of RFC 9421 is defined by two active IETF drafts authored jointly by Thibault Meunier (Cloudflare) and Sam Major (Google), most recently draft-meunier-web-bot-auth-architecture-05 (Informational, published 2026-03-02)2 plus a directory-format draft covering the well-known directory shape and JWK Set encoding. The architecture draft specifies the three required HTTP headers (Signature-Agent, Signature-Input, Signature), the tag='web-bot-auth' convention that distinguishes Web Bot Auth signatures from other RFC 9421 applications, and the recommended covered components (notably @authority of the target domain plus the signature-agent value itself). Until the drafts are RFC-finalized, specific deployment particulars may continue to evolve.
Deployment is ahead of finalization, and 2026 has settled into an agent-first / crawler-later adoption split:
- Verifier infrastructure: Cloudflare has incorporated message-signature verification into its Verified Bots program3 and provides documentation for bot operators wishing to register their public key at the standard well-known path4. Akamai has documented adoption5. AWS has shipped Web Bot Auth signing as a preview feature of Amazon Bedrock AgentCore Browser so hosted AI agents can sign their outbound HTTP traffic6. Stytch has shipped signer SDKs.
- Bot-side signing (agentic products): Google publishes its public key directory at
https://agent.bot.goog/.well-known/http-message-signatures-directoryfor theGoogle-Agentuser-triggered fetcher; Google explicitly labels the implementation 'experimental' and notes 'Google is not yet signing every request of agents using the protocol'7. OpenAI's ChatGPT agent signs withSignature-Agent: 'https://chatgpt.com'and publishes its directory at that origin8. - Bot-side not signing (retrieval crawlers): regular Googlebot, OpenAI's GPTBot and OAI-SearchBot, Anthropic's ClaudeBot, and xAI's Grok retrieval traffic have no announced Web Bot Auth deployment as of this entry's publication.
For publishers, this means three things in 2026:
- Verify signatures where present. If a request carries a
Signature-Agentheader and a valid Web Bot Auth signature, the verifier (the publisher's WAF, CDN, or origin server) can definitively confirm or reject the bot's identity. - Do not treat unsigned bot traffic as fake. Most current AI-engine retrieval traffic is unsigned but legitimate; the absence of a signature today is the rule, not the exception, especially on the search-retrieval crawler side.
- Watch the agentic-product / retrieval-crawler split. The cluster's standing question (per Grok citation) is whether AI search-retrieval crawlers will adopt Web Bot Auth at the same pace as agentic browsing products. The two have diverged in 2026; the divergence is the live story.
How it works
The protocol is intentionally narrow: it covers crawler identity, not crawler behavior. The flow:
- Bot operator generates a key pair. Ed25519 is the recommended algorithm for the bot's signing key. The private key stays with the bot; the public key is published.
- Public key is published at the well-known directory. The bot operator hosts the public key in JSON Web Key Set (JWK Set) format at
https://<bot-domain>/.well-known/http-message-signatures-directory. HTTPS is a strict requirement. The directory is fetched on demand by verifiers rather than pre-shared. - Each outgoing request carries three headers. The bot attaches three required HTTP headers per the Web Bot Auth profile:
Signature-Agentcontaining the HTTPS URL of the bot's key directory origin (e.g.,Signature-Agent: "https://agent.bot.goog"for Google'sGoogle-Agent);Signature-Inputlisting the covered components, key ID, validity window, and thetag="web-bot-auth"string that distinguishes Web Bot Auth signatures from other RFC 9421 applications; andSignaturecarrying the actual Ed25519 signature over the covered components. The covered components typically include the@authorityof the target domain plus thesignature-agentheader itself. - Verifier validates the signature. The publisher's WAF, CDN, or origin server reads the
Signature-Agentheader to learn the bot's key directory origin, fetches the public key from that origin's well-known directory (caching perCache-Controlheaders), readsSignature-Inputfor the key ID and covered-component list, then verifies theSignatureheader against the covered components of the request. If the signature verifies, the request is cryptographically tied to the declared bot operator. If it does not, the request is treated as suspect.
The mechanism does not authenticate the request's content beyond the covered components, and it does not bind the request to the publisher's TLS session; RFC 9421 explicitly relies on the Digest specification (RFC 9530 / RFC 9651) when message-content integrity is also needed. For pure identity verification (the Web Bot Auth use case), signing @authority plus a small set of derived components is sufficient.
What it does not solve
Web Bot Auth is identity verification, not policy enforcement. Three things publishers should not expect it to do:
- Web Bot Auth does not enforce crawl rate limits. A signature confirms the request came from the bot operator; it does not constrain how many requests the bot makes per second. Rate limiting remains a separate concern at the WAF or CDN layer.
- Web Bot Auth does not make robots.txt enforceable. A signature confirms identity; whether the bot respects
Disallowdirectives is a behavior question separate from identity verification. A bot that signs its requests and ignores robots.txt is still a bot that ignores robots.txt; the signature just makes the attribution unambiguous. - Web Bot Auth does not solve unsigned-traffic attribution. Most current AI retrieval traffic is unsigned; publishers still need conventional verification (reverse DNS, IP-range, behavioral) for that majority of traffic. Web Bot Auth raises the ceiling on what is verifiable, not the floor.
What remains contested or unverified
- AI-engine adoption timeline. Cloudflare and Akamai have deployed verification infrastructure; whether AI-engine retrieval crawlers will adopt Web Bot Auth at scale is unverified. The most-watched cases are OpenAI's OAI-SearchBot, Anthropic's ClaudeBot, Google's Googlebot/Google-Extended split, and the current outlier of xAI's Grok retrieval traffic. Public commitments from these vendors as of this entry's publication are limited.
- IETF draft stability. The directory and protocol drafts are still iterating. Specific deployment details (exact required covered components, error-handling for missing or expired keys, key rotation conventions) may shift before RFC finalization.
- Defensive misuse. A bot operator could publish a Web Bot Auth key without committing to robots.txt compliance, then use the signature as a "verified" claim to bypass blocks targeted at unverified bots. Whether publishers will treat Web Bot Auth verification as automatic permission (vs. a separate signal that must still be combined with policy enforcement) is an open operational question.
- Identity revocation. RFC 9421 itself does not specify a revocation mechanism for compromised signing keys; the Web Bot Auth drafts inherit this gap. Until revocation is clearly specified, publishers may need to treat key rotation as the practical defense.
How to apply
- If you operate a CDN or WAF: add Web Bot Auth signature verification to the bot-identity check pipeline. Cloudflare's Verified Bots program ships this verification; for self-hosted infrastructure, RFC 9421 verifier libraries are available in major languages, and the well-known directory format is straightforward to consume.
- If you operate a bot: generate an Ed25519 key pair, publish the public key at
https://<your-domain>/.well-known/http-message-signatures-directoryin JWK Set format, sign outgoing requests per the Web Bot Auth draft conventions, and register your bot with Cloudflare's Verified Bots program (and any other verifier ecosystem your target publishers participate in). - If you are a publisher tracking AI-engine traffic: watch for Web Bot Auth signatures on inbound AI-engine traffic over the next 12-24 months. Adoption by OpenAI, Anthropic, Google, Microsoft, or xAI would meaningfully change the Grok citation cluster's crawler-controllability axis. Until adoption arrives, continue using conventional reverse-DNS and IP-range verification for the unsigned majority.
How it relates to other concepts
- Emerging answer to the Grok citation crawler-controllability problem. Grok is the cluster's primary example of crawlers operationally unblockable by user-agent-based robots.txt rules; Web Bot Auth is the IETF-track standard that could (if adopted by xAI) cryptographically tie observed retrieval traffic to xAI's published bot identity regardless of the user-agent string the request carries.
- Complementary to IndexNow protocol: IndexNow is a publisher-to-engine push protocol for URL change notifications; Web Bot Auth is an engine-to-publisher identity proof for retrieval requests. They cover different parts of the publisher-engine communication channel.
- Complementary to the AI crawler bots directory of declared user agents: that entry lists the user-agent strings vendors publish; Web Bot Auth raises the verification standard above what user-agent strings alone can prove. Both entries together form the crawler-discipline layer of the cluster.
- Distinct from llms.txt: llms.txt is a publisher-side proposal for vendor-readable site overview content. Web Bot Auth is a crawler-side identity protocol. The two address different sides of the publisher-engine relationship.
- Indirectly relevant to external traffic disambiguation: when a publisher tries to reverse-attribute an inbound visit, signed bot traffic is cleanly attributable; unsigned bot traffic falls back to conventional disambiguation. Wider Web Bot Auth adoption would simplify the bot-side of traffic disambiguation over time.
Footnotes
-
Backman, Richer, Sporny. "RFC 9421: HTTP Message Signatures." IETF Standards Track (Proposed Standard), February 2024. datatracker.ietf.org/doc/html/rfc9421. The general protocol Web Bot Auth profiles. RFC 9421 defines a mechanism for digital signatures or message authentication codes that cover specific components of an HTTP message (headers, derived elements like
@methodand@authority, or response status codes) without requiring the entire message to remain bitwise identical. The specification accommodates intermediary transformations while enabling end-to-end integrity verification. It explicitly relies on the Digest specification when message-content integrity is also needed; for pure identity verification (the Web Bot Auth use case), signing@authorityplus a small set of derived components is sufficient. ↩ -
Meunier, T. (Cloudflare) and Major, S. (Google). "HTTP Message Signatures for automated traffic Architecture." IETF Internet-Draft,
draft-meunier-web-bot-auth-architecture-05, published 2026-03-02, expires 2026-09-03, intended status Informational. datatracker.ietf.org/doc/html/draft-meunier-web-bot-auth-architecture. Co-authorship across Cloudflare (verifier infrastructure) and Google (bot operator) is itself notable: the architecture is being designed with both ends of the verification relationship in the room. ↩ ↩2 -
Cloudflare. "Message Signatures are now part of our Verified Bots Program, simplifying bot authentication." Cloudflare blog. blog.cloudflare.com/verified-bots-with-cryptography. Documents Cloudflare's deployment of message-signature verification within the existing Verified Bots program. ↩
-
Cloudflare. "Web Bot Auth" documentation. developers.cloudflare.com/bots/reference/bot-verification/web-bot-auth. Documents the directory path (
/.well-known/http-message-signatures-directory), Ed25519 key requirements, JWK Set encoding, the@authoritycovered-component requirement, and thetag="web-bot-auth"signature-input convention. ↩ -
Akamai. "Redefine Trust with Web Bot Authentication." Akamai security blog. akamai.com/blog/security/redefine-trust-web-bot-authentication. Documents Akamai's adoption of the verification pattern alongside Cloudflare's deployment. ↩
-
AWS. "Reduce CAPTCHAs for AI agents browsing the web with Web Bot Auth (Preview) in Amazon Bedrock AgentCore Browser." AWS Machine Learning blog. aws.amazon.com/blogs/machine-learning/reduce-captchas-for-ai-agents-browsing-the-web-with-web-bot-auth-preview-in-amazon-bedrock-agentcore-browser and AgentCore developer documentation at docs.aws.amazon.com/bedrock-agentcore/latest/devguide/browser-web-bot-auth.html. Documents AWS shipping Web Bot Auth signing as a preview feature for hosted AI agentic browsing. ↩
-
Google for Developers. "Google's Guide to Authenticating Requests with Web Bot Auth (Experimental)." developers.google.com/crawling/docs/crawlers-fetchers/web-bot-auth. Documents Google's key directory at
https://agent.bot.goog/.well-known/http-message-signatures-directory, theGoogle-Agentuser-triggered fetcher, and the explicit verbatim caveats: "Google's implementation of Web Bot Auth is currently experimental" and "Google is not yet signing every request of agents using the protocol." Confirms that regular Googlebot (the search-index crawler) is distinct fromGoogle-Agentand is not signing. ↩ -
Castle. "How to authenticate OpenAI Operator requests using HTTP message signatures." blog.castle.io/how-to-authenticate-openai-operator-requests-using-http-message-signatures. Documents OpenAI's ChatGPT agent signing requests with
Signature-Agent: "https://chatgpt.com"and publishing its public key directory athttps://chatgpt.com/.well-known/http-message-signatures-directory. Note that the liveSignature-Agentvalue points tochatgpt.comrather thanoperator.openai.comdespite Operator being the product name; the key directory follows the agent's request origin, not the product brand. ↩
Related terms
Mentioned in· auto-generated from other terms' related lists
FAQ
- What problem does Web Bot Auth solve?
- User-agent strings are trivially spoofable, reverse DNS is operationally awkward and not all bots support it, and IP-range allow-lists need to be maintained per vendor with no shared format. None of these mechanisms cryptographically proves that a request came from a specific bot operator. Web Bot Auth fills that gap: the bot signs each request with its private key, the verifier fetches the matching public key from the well-known directory at the bot's claimed origin, and the signature either verifies or it does not. The verifier no longer has to trust the user-agent string or reverse DNS to identify the bot. For AI engines like Grok where observed retrieval traffic does not surface documented user agents (see [Grok citation](/terms/grok-citation) for that contrast), Web Bot Auth is the emerging industry answer.
- What is RFC 9421 and how does Web Bot Auth use it?
- RFC 9421 ('HTTP Message Signatures', Backman / Richer / Sporny, February 2024, Standards Track Proposed Standard) defines a general protocol for digitally signing arbitrary components of an HTTP message: headers, derived elements like `@method` and `@authority`, or response status codes. Web Bot Auth is a bot-flavored profile of RFC 9421 specified in two active IETF drafts authored by Thibault Meunier (Cloudflare) and Sam Major (Google), `draft-meunier-web-bot-auth-architecture` (the architecture draft) plus a directory-format draft. The Web Bot Auth profile specifies three required HTTP headers on each signed request (`Signature-Agent` pointing to the bot's key directory URL, `Signature-Input` listing the covered components plus key ID and `tag='web-bot-auth'`, and `Signature` carrying the Ed25519 signature itself), which HTTP components a bot must cover (commonly the `@authority` of the target domain plus the Signature-Agent value), and how the bot publishes its public key (JSON Web Key Set at the well-known directory).
- Is Web Bot Auth a finalized standard yet?
- RFC 9421 itself is a finalized IETF Proposed Standard (February 2024). Web Bot Auth as a bot-profile of RFC 9421 is defined by active IETF drafts (a directory-format draft covering the well-known directory shape and JWK Set format, and a bot-auth protocol draft covering the signature input components and tag conventions) that are still iterating. Deployment is ahead of finalization: Cloudflare's Verified Bots program already supports message-signature verification, and Akamai has documented adoption. Until the drafts are RFC-finalized, deployment specifics (exact JSON structure, required covered components, error handling) may continue to iterate; treat current deployment as the emerging standard, not the locked one.
- Which AI bots actually sign their requests today?
- Deployment in 2026 follows an agent-first / crawler-later split. **Signing today**: Google's `Google-Agent` user-triggered fetcher publishes its public key directory at `https://agent.bot.goog/.well-known/http-message-signatures-directory` and Google explicitly labels the implementation 'experimental'; OpenAI's ChatGPT agent (the Operator product family) signs with `Signature-Agent: 'https://chatgpt.com'` and publishes its key directory at that origin. AWS Bedrock AgentCore Browser, Browserbase, Manus, and Stytch have integrated signing for hosted agentic-browsing workflows. **Not signing today**: regular Googlebot (the search-index crawler) is not signed; Google's docs state 'Google is not yet signing every request of agents using the protocol.' OpenAI's GPTBot and OAI-SearchBot (the search-retrieval crawlers) are not signed; Anthropic's ClaudeBot, Microsoft, and xAI have no announced Web Bot Auth deployment. The pattern is agentic browsing products getting signed first, search-retrieval crawlers later; publishers should not yet treat unsigned bot traffic as fake, since most current AI retrieval traffic remains unsigned but legitimate.
- How does Web Bot Auth interact with the Grok crawler problem?
- Grok's retrieval is documented in cluster work as operationally unblockable by user-agent-based robots.txt rules: observed traffic from xAI surfaces does not carry the documented `GrokBot` / `xAI-Grok` / `Grok-DeepSearch` user agents and arrives from rotating datacenter or proxy IPs with spoofed Chrome and Safari UAs (see [Grok citation](/terms/grok-citation) for the full discussion). Web Bot Auth is the industry's emerging answer to that pattern: if xAI began signing its retrieval requests with a published key at a well-known directory, publishers could verify Grok traffic by signature regardless of what user-agent string the requests carry. As of this entry's publication, xAI has not announced Web Bot Auth support, and OpenAI's GPTBot / OAI-SearchBot (the search-retrieval crawlers, distinct from OpenAI's ChatGPT agent which does sign) likewise remain unsigned. The agent-first / crawler-later split means signing has reached agentic browsing products but not yet the retrieval crawlers that drive AI-engine citation, leaving the cluster's crawler-controllability axis open for the AI-search workload.
Sources & further reading
- RFC 9421: HTTP Message Signatures (Backman, Richer, Sporny; IETF Proposed Standard, February 2024)2024-02-01
- IETF draft-meunier-web-bot-auth-architecture-05 (Meunier of Cloudflare + Major of Google; Informational, March 2026)2026-03-02
- Cloudflare: Web Bot Auth verification documentation (specifies three required headers: Signature-Agent, Signature-Input, Signature)
- Cloudflare blog: Message Signatures are now part of our Verified Bots Program
- Google for Developers: Authenticating Requests with Web Bot Auth (Experimental); documents Google-Agent signing at agent.bot.goog
- AWS: Web Bot Auth (Preview) in Amazon Bedrock AgentCore Browser
- Akamai: Redefine Trust with Web Bot Authentication
- Grok citation (the cluster's primary example of crawler-controllability failure that Web Bot Auth is the proposed answer to)
Get the weekly digest
New terms shipped that week, plus one observation from the AI-citation tracker.