What is Web Bot Auth and how does a bot sign its requests?
Web Bot Auth is a protocol, in IETF draft, with which a bot or an AI agent cryptographically signs its HTTP requests so that the site receiving them can check who sent them, without trusting the name it declares or its IP. It builds on the HTTP message signatures of RFC 9421 and on a public directory of keys.
Key takeaways
- Web Bot Auth swaps "it says it is this bot" for proof: a signature that only whoever holds the private key can generate.
- It is a draft: the IETF working group document is version 00 of September 1, 2026, and it expires on March 5, 2027 if not renewed.
- Each signed request carries three headers, Signature, Signature-Input and Signature-Agent, and the public keys are published at /.well-known/http-message-signatures-directory.
- Google already signs part of the requests from Google-Agent, in experimental mode, and asks you to keep verifying by IP, reverse DNS and user agent too.
- The protocol says who is calling, not whether to let it in: assigning reputation to bots is outside the working group's scope.
Today a bot introduces itself with its user agent, a name it writes itself. That is why Google explains how to verify its crawlers: for the case where someone accesses your site pretending to be Google.[1]Google Search Central. Verifying Googlebot and other Google crawlers Web Bot Auth is the proposal to close that gap with cryptography: the bot signs every request and your server, or your CDN, checks the signature. It matters to a store for a practical reason: the decision about who to let in is increasingly made by a firewall, and an agent that shops on behalf of a customer and a scraper disguised as one should not get the same treatment.
How it works
The base is an already published standard, RFC 9421 (February 2024), which describes how to create, encode and verify digital signatures over parts of an HTTP message. It defines two headers: Signature-Input, which says which parts of the message the signature covers and with what parameters, and Signature, which carries the signature. Its goal is to provide end-to-end integrity and authenticity for those parts, even when the message passes through intermediaries.[2]IETF, RFC Editor (February 2024). RFC 9421: HTTP Message Signatures
Web Bot Auth is a profile of that standard for automated traffic. The working group's document, HTTP Message Signatures for automated traffic, by Thibault Meunier (Cloudflare) and Sandor Major (Google), describes a protocol for automated HTTP clients to identify themselves cryptographically, and adds three pieces:[3]IETF, webbotauth working group (Meunier and Major, September 1, 2026). HTTP Message Signatures for automated traffic (draft-ietf-webbotauth-httpsig-protocol-00)
- The
Signature-Agentheader, which points to an HTTPS URL where the signer's keys are. - A key directory in JWKS format (JSON Web Key Set), published at
/.well-known/http-message-signatures-directoryon the signer's domain, served over HTTPS and only with a 200. It is a path in the .well-known directory. - Rules for the signature: the tag
tag="web-bot-auth", the signature has to cover at least the destination domain (@authorityor@target-uri), and it carries a creation time, an expiry time (a maximum of 24 hours is recommended) and the key identifier. An optionalnonceprotects against reuse of a signed request.
To verify, whoever receives the request reads Signature-Agent, downloads the key directory, looks up the key by its identifier and checks the signature according to RFC 9421.[3]IETF, webbotauth working group (Meunier and Major, September 1, 2026). HTTP Message Signatures for automated traffic (draft-ietf-webbotauth-httpsig-protocol-00)
Where it stands
The IETF created a working group, webbotauth, to standardize methods that cryptographically authenticate automated clients and give more information about who operates them. Its charter leaves out, among other things, authenticating an agent's end user, tracking bots or assigning them reputation, and telling bots that do not participate apart from people. The schedule called for the authentication specifications by April 30, 2026.[4]IETF Datatracker. Web Bot Auth (webbotauth): working group charter
The working group document came later: it is version 00, from September 1, 2026, and expires on March 5, 2027. The two individual drafts that preceded it, the architecture one and the directory one, are listed as replaced, with their last version from March 2, 2026.[5]IETF Datatracker. Web Bot Auth (webbotauth): working group documents[3]IETF, webbotauth working group (Meunier and Major, September 1, 2026). HTTP Message Signatures for automated traffic (draft-ietf-webbotauth-httpsig-protocol-00) And it is an Internet-Draft: a working document valid for six months at most, which can be updated, replaced or made obsolete at any time.[3]IETF, webbotauth working group (Meunier and Major, September 1, 2026). HTTP Message Signatures for automated traffic (draft-ietf-webbotauth-httpsig-protocol-00)
Who already uses it
- Google. It signs with Web Bot Auth part of the requests from Google-Agent, the agent that systems hosted on Google's infrastructure use to browse the web and take actions at a user's request. It marks it as experimental, because the specification is a draft that may change, and recommends that you keep checking the IP, the reverse DNS and the user agent too while it extends signed traffic.[6]Google Crawling Infrastructure. Authenticate requests with Web Bot Auth (experimental) As a user-triggered fetcher, Google-Agent generally does not follow robots.txt rules.[7]Google Crawling Infrastructure. Google's user-triggered fetchers
- Cloudflare. It uses Web Bot Auth as one of the methods to verify signed bots and agents, requires Ed25519 keys and lets the bot's operator register its key directory from the dashboard. According to its documentation, the site owner does not have to do anything: Cloudflare validates the signatures of registered bots.[8]Cloudflare, Bots documentation. Web Bot Auth Its documentation classifies verified bots by how they are operated: directly or through an intermediary.[9]Cloudflare, Bots documentation. Signed agents
In a store
This is how a signed request from Google-Agent would reach the product page of a fictional example store. The structure follows the draft's example and the value of Signature-Agent is the one Google documents; the dates, the key identifier and the signature are made up:[3]IETF, webbotauth working group (Meunier and Major, September 1, 2026). HTTP Message Signatures for automated traffic (draft-ietf-webbotauth-httpsig-protocol-00)[6]Google Crawling Infrastructure. Authenticate requests with Web Bot Auth (experimental)
GET /products/moka-steel-6 HTTP/1.1
Host: coffee-makers.example
User-Agent: Mozilla/5.0 (X11; Linux x86_64) ... (compatible; Google-Agent)
Signature-Agent: g="https://agent.bot.goog"
Signature-Input: g=("@authority" "signature-agent";key="g");created=1791273600;expires=1791277200;keyid="example-key";tag="web-bot-auth"
Signature: g=:ZXhhbXBsZS1zaWduYXR1cmU=:
Line by line: User-Agent is what the bot says it is and proves nothing. Signature-Agent says where its keys are: https://agent.bot.goog/.well-known/http-message-signatures-directory.[6]Google Crawling Infrastructure. Authenticate requests with Web Bot Auth (experimental) Signature-Input says the signature covers the store's domain and the Signature-Agent header itself, valid for one hour. If someone copies the request to another site, the signature stops being valid, because it covered coffee-makers.example. If someone makes up the signature, they cannot generate it without the private key.
What people often confuse
Treating Web Bot Auth as a finished standard and dropping the other checks. It is an IETF draft,[3]IETF, webbotauth working group (Meunier and Major, September 1, 2026). HTTP Message Signatures for automated traffic (draft-ietf-webbotauth-httpsig-protocol-00) Google only signs part of an agent's requests and asks you to keep verifying by IP, reverse DNS and user agent.[6]Google Crawling Infrastructure. Authenticate requests with Web Bot Auth (experimental) A bot that does not sign is not an impostor for that reason: the signature is one more proof, still partial.
How to check it
- Ask your CDN or your platform whether it verifies Web Bot Auth. If you are behind Cloudflare, Cloudflare does the verification with registered bots.[8]Cloudflare, Bots documentation. Web Bot Auth
- Look for the
Signature-Agentheader in your server or CDN logs, if they keep request headers. Its value tells you which signer the request declares. - Open a key directory, for example Google's at
https://agent.bot.goog/.well-known/http-message-signatures-directory, to see what a signer publishes.[6]Google Crawling Infrastructure. Authenticate requests with Web Bot Auth (experimental) - Keep verifying with reverse DNS and IP ranges for Googlebot and Google's other crawlers.[1]Google Search Central. Verifying Googlebot and other Google crawlers
- Check the draft's status on the IETF Datatracker before building anything custom: the current version is 00, from September 2026.[5]IETF Datatracker. Web Bot Auth (webbotauth): working group documents
Related concept: user agent
The user agent is a statement; Web Bot Auth is proof. Both travel in the same request and answer the same question, who is calling, with different degrees of trust: the first is written by the client, the second can only be produced by whoever holds the key.[2]IETF, RFC Editor (February 2024). RFC 9421: HTTP Message Signatures Neither decides what your store does with that visit. That is still up to your robots.txt, your AI bot blocking rules and your content negotiation, which decides which version it receives.
To keep going, the entry on caching and CDN for bots explains what happens to those requests before they reach your server, and the crawling and indexing reading path orders the rest of the terms.
Synonyms
- English
- Web Bot Authentication, signed bot requests
- Español
- autenticación de bots, bots firmados
Sources
- [1] Google Search Central. Verifying Googlebot and other Google crawlers. Accessed . ↑ ↑
- [2] IETF, RFC Editor (February 2024). RFC 9421: HTTP Message Signatures. Accessed . ↑ ↑
- [3] IETF, webbotauth working group (Meunier and Major, September 1, 2026). HTTP Message Signatures for automated traffic (draft-ietf-webbotauth-httpsig-protocol-00). Accessed . ↑ ↑ ↑ ↑ ↑ ↑
- [4] IETF Datatracker. Web Bot Auth (webbotauth): working group charter. Accessed . ↑
- [5] IETF Datatracker. Web Bot Auth (webbotauth): working group documents. Accessed . ↑ ↑
- [6] Google Crawling Infrastructure. Authenticate requests with Web Bot Auth (experimental). Accessed . ↑ ↑ ↑ ↑ ↑
- [7] Google Crawling Infrastructure. Google's user-triggered fetchers. Accessed . ↑
- [8] Cloudflare, Bots documentation. Web Bot Auth. Accessed . ↑ ↑
- [9] Cloudflare, Bots documentation. Signed agents. Accessed . ↑
Change history
- First English version.
This definition is published under CC BY 4.0. Reuse this definition freely, crediting Clione with a link to this page.
Related terms
Caching and CDNs for bots
How HTTP caching and the CDN decide what Googlebot and AI bots see in your store: ETag, 304, max-age and the blocks that drop pages from the index.
Link rel=alternate header
What the HTTP Link header with rel=alternate is, how it announces another version of a URL (another language, a PDF, Markdown) and how to check it arrives.
Content negotiation
What content negotiation is in HTTP, how a server picks between HTML, Markdown or languages with Accept and Vary, and what changes for bots.
User agent
What a user agent is, how to read the string of a browser or Googlebot, why it does not prove who visits your store and how to check it in your logs.
AI bot blocking
What AI bot blocking is, which agents a store should let through, and why robots.txt, the CDN and the platform each block different things.
.well-known directory
What /.well-known/ is, the path RFC 8615 reserves for files that describe a site, what its IANA registry holds and what a store publishes there.
Make your catalog easy for bots to read
Clione fills every product page with what bots read best: the JSON-LD graph with its structured data, the meta description and the FAQs. You review and press Push; then we check your live store so it all stays published.