For site owners

Make your site usable by agents

Six steps, ordered by effort. Each one names the pillar it moves. Amazon's own Buy for Me agent already follows the first two when it shops other stores: it identifies itself and honors opt-outs. We're asking every site, Amazon included, to hold to that standard.

1Say your stance in robots.txtAccess · Consent

Two lines end the guessing game. Content Signals is Cloudflare's policy syntax; user-directed agents read it.

User-Agent: *
Content-Signal: search=yes, ai-input=yes, ai-train=no
Allow: /

2Ask agents to identify, then honor itAccess

Amazon's Agent Terms ask for Agent/[name]. That's a fine convention. The other half is letting identified agents through.

User-Agent: ChatGPT-User
User-Agent: Claude-User
User-Agent: Perplexity-User
User-Agent: GoogleAgent-Mariner
Allow: /

3Verify signatures at the edgeAccess

Web Bot Auth (IETF draft, RFC 9421 message signatures) lets an agent prove who it is per request. Cloudflare, Akamai, AWS WAF and Vercel can verify it. Allow verified agents; keep challenging the rest.

# Cloudflare: Security → Bots → Verified bots → allow category "AI Agent"
# or verify yourself:
GET https://<signature-agent>/.well-known/http-message-signatures-directory

4Give agents a front doorProtocols · Consent

A UCP manifest for shopping, an MCP server card for everything else. Agents that can call an API don't need to hold a customer's password.

GET /.well-known/ucp
{ "ucp": { "version": "2026-01-23",
  "services": { "dev.ucp.shopping": [{ "transport": "rest", "endpoint": "https://example.com/api/ucp/v1" }] },
  "capabilities": { "dev.ucp.shopping.checkout": [ … ] } } }

5Make the page legibleSurface

Server-render, use main/nav landmarks and labeled forms, ship JSON-LD Product/Offer, publish llms.txt. Everything an accessibility audit already asks for.

/llms.txt
# Example Store
> What we sell, how to search, where checkout lives.
- [Products](/products.md)
- [Order status](/orders.md)

6Expose in-page tools with WebMCPProtocols · Task

Chrome's origin trial lets a page register typed tools an agent can call instead of clicking. Start with search and add-to-cart.

document.modelContext.registerTool({
  name: "add_to_cart",
  description: "Add a SKU to the cart",
  inputSchema: { type: "object", properties: { sku: { type: "string" }, qty: { type: "integer" } } },
  execute: async ({ sku, qty }) => cart.add(sku, qty)
});

Then scan yourself

Scans are free and public. Re-scan after each change and watch the pillars fill in.