{"found":true,"method":"v0.1","host":"www.opentable.com","input_host":"www.opentable.com","name":"OpenTable","category":"Grocery & food","scanned_at":"2026-09-22T03:48:14.353Z","vantage":"local-node","elapsed_ms":12166,"score":10,"grade":"F","stance":"Walled","pillars":{"access":6,"consent":0,"surface":3,"protocols":0,"task":null},"pillar_max":{"access":40,"consent":10,"surface":25,"protocols":15,"task":10},"evidence":[{"t":"critical","text":"robots.txt disallows 16 of 19 user-directed agents: GoogleAgent-Mariner, GoogleAgent-Shopping, Manus-User, MistralAI-User, Devin, Copilot, GrokBot, Grok-DeepSearch…"},{"t":"critical","text":"Homepage returns a bot interstitial (HTTP 403, “Access Denied”) to every non-browser client, agents included"},{"t":"warn","text":"robots.txt restricts some paths for ChatGPT-User, Claude-User, Perplexity-User"},{"t":"warn","text":"robots.txt names 31 user-agents"},{"t":"warn","text":"Also disallows 11 of 15 training/search crawlers (not scored; agents ≠ crawlers)"},{"t":"warn","text":"No Content-Signal in robots.txt"},{"t":"warn","text":"No llms.txt"},{"t":"warn","text":"No agent-protocol manifest (UCP, MCP, A2A, OpenAPI)"}],"matrix":{"Muse":"untested","ChatGPT Agent":"walled","Claude":"walled","Comet":"walled","Grok Bot":"disallowed","Gemini":"disallowed","Manus":"disallowed","Instinct":"untested"},"files":[],"jsonld":0,"semantic":{"main":0,"nav":0,"aria":0,"forms":0},"noscript_shell":false,"content_signal":false,"wildcard_block":true,"robots_status":200,"robots_ua_rules":31,"agents_disallowed":16,"agents_partial":3,"agents_total":19,"crawlers_blocked":11,"crawlers_total":15,"ua_policy":{"ChatGPT-User":"partial","Claude-User":"partial","Perplexity-User":"partial","GoogleAgent-Mariner":"blocked","GoogleAgent-Shopping":"blocked","Manus-User":"blocked","MistralAI-User":"blocked","Devin":"blocked","Copilot":"blocked","GrokBot":"blocked","Grok-DeepSearch":"blocked","Meta-ExternalFetcher":"blocked","meta-externalfetcher":"blocked","Gemini-Deep-Research":"blocked","DuckAssistBot":"blocked","Operator":"blocked","Comet":"blocked","Muse":"blocked","Instinct":"blocked"},"crawler_policy":{"GPTBot":"blocked","ClaudeBot":"blocked","Claude-SearchBot":"partial","OAI-SearchBot":"partial","PerplexityBot":"partial","Google-Extended":"blocked","Applebot-Extended":"blocked","meta-externalagent":"blocked","Meta-ExternalAgent":"blocked","Bytespider":"blocked","CCBot":"blocked","Amazonbot":"partial","xAI-Bot":"blocked","Anthropic-ai":"blocked","anthropic-ai":"blocked"},"live_served":0,"live_total":4,"agent_access":{"ChatGPT-User":{"status":0,"challenged":false,"title":""},"Claude-User":{"status":0,"challenged":false,"title":""},"Perplexity-User":{"status":0,"challenged":false,"title":""},"GoogleAgent-Mariner":{"status":0,"challenged":false,"title":""}},"human_status":403,"human_title":"Access Denied","human_challenged":true,"edge":"","probe_dead":false,"seed":true,"url":"https://standardweb.xyz/site/www.opentable.com","recommendations":[{"k":"wba","pillar":"Access","pts":23,"title":"Verify agents cryptographically instead of blocking them at the door","body":"Your edge answers every non-browser client with a block or interstitial. Web Bot Auth (HTTP Message Signatures, RFC 9421) lets an agent prove who it is per request; Cloudflare, Akamai, AWS WAF and Vercel can verify it. Allow verified agents and keep challenging the rest.","code":"# Cloudflare: Security → Bots → Verified bots → allow category \"AI Agent\"\n# Or verify yourself: fetch the agent's key from\n#   https://<signature-agent>/.well-known/http-message-signatures-directory\n# and check the Signature / Signature-Input headers (tag=\"web-bot-auth\")"},{"k":"robots","pillar":"Access","pts":14,"title":"Stop disallowing identified user-directed agents in robots.txt","body":"You disallow 16 agents that act live for a person. Crawler rules (GPTBot, ClaudeBot) can stay; user-directed agents are the ones a customer sends.","code":"User-agent: GoogleAgent-Mariner\nUser-agent: GoogleAgent-Shopping\nUser-agent: Manus-User\nUser-agent: MistralAI-User\nUser-agent: Devin\nUser-agent: Copilot\nAllow: /"},{"k":"front-door","pillar":"Protocols","pts":12,"title":"Give agents a front door","body":"A Universal Commerce Protocol manifest for shopping, or an MCP server card for everything else. An agent that can call an API never needs to hold a customer's password.","code":"GET /.well-known/ucp\n{ \"ucp\": { \"version\": \"2026-01-23\",\n  \"services\": { \"dev.ucp.shopping\": [{ \"transport\": \"rest\", \"endpoint\": \"https://www.opentable.com/api/ucp/v1\" }] },\n  \"capabilities\": { \"dev.ucp.shopping.checkout\": [ … ] } } }\n\n# or\nGET /.well-known/mcp.json\n{ \"name\": \"OpenTable\", \"endpoint\": \"https://www.opentable.com/mcp\", \"transport\": \"streamable-http\" }"},{"k":"llms","pillar":"Surface","pts":8,"title":"Publish llms.txt","body":"A short markdown map of what the site does, where the important pages are, and how to search or check out.","code":"/llms.txt\n# OpenTable\n> One paragraph on what this site is for.\n- [Products](/products): how to search and filter\n- [Checkout](/checkout): steps and constraints"},{"k":"signal","pillar":"Consent","pts":3,"title":"Say your stance with a Content-Signal","body":"Two lines in robots.txt end the guessing game. ai-input covers agents reading pages on a person's behalf.","code":"User-Agent: *\nContent-Signal: search=yes, ai-input=yes, ai-train=no\nAllow: /"}]}