{"scan_id": 161, "url": "https://www.roeststaette.com", "vertical": "specialty_coffee", "scanned_at": "2026-08-12T06:01:07.616488+00:00", "score": 66, "grade": "C", "report_url": "https://www.agentready.market/r/161", "result": {"url": "https://www.roeststaette.com", "meta": {"notes": [], "phase": "1 (pillars 1-4, weighted matrix)", "origin": "https://www.roeststaette.com", "investment": {"ads": ["Meta/Facebook Ads", "Google Ads/GA4"], "apps": [], "score": 4, "platform": "WooCommerce", "qualified": true}, "home_status": 200, "product_url": "https://www.roeststaette.com/product/latte-art/", "shopify_feed": false, "robots_present": true}, "error": "", "grade": "C", "score": 66, "capped": false, "pillars": [{"id": "access", "pct": 90, "icon": "\ud83d\udd13", "name": "Access & crawlability", "checks": [{"id": "access.ai_crawlers", "fix": "", "gap": 0.0, "label": "robots.txt allows agent crawlers", "detail": "robots.txt allows GPTBot, ClaudeBot, PerplexityBot and Google-Extended.", "earned": 16.0, "effort": "easy", "pillar": "access", "status": "pass", "weight": 16.0}, {"id": "access.cloaking", "fix": "", "gap": 0.0, "label": "No blocking / cloaking of AI bots", "detail": "AI bots get the same access and content as a normal visitor.", "earned": 8.0, "effort": "medium", "pillar": "access", "status": "pass", "weight": 8.0}, {"id": "access.latency", "fix": "", "gap": 0.0, "label": "Fast enough response for agents", "detail": "Fast response (2273 ms on the product page) \u2014 agents won't time out.", "earned": 4.0, "effort": "medium", "pillar": "access", "status": "pass", "weight": 4.0}, {"id": "access.llms_txt", "fix": "Publish an /llms.txt listing your categories, product pages and key policies.", "gap": 4.0, "label": "llms.txt present", "detail": "No /llms.txt.", "earned": 0.0, "effort": "easy", "pillar": "access", "status": "fail", "weight": 4.0}, {"id": "access.agents_md", "fix": "Publish an /agents.md describing how agents should navigate and use your site (Shopify themes can serve one natively).", "gap": 0.0, "label": "agents.md present (preview)", "detail": "No /agents.md.", "earned": 0.0, "effort": "easy", "pillar": "access", "status": "fail", "weight": 0.0}, {"id": "access.sitemap", "fix": "", "gap": 0.0, "label": "Sitemap available", "detail": "Sitemap found via robots.txt.", "earned": 4.0, "effort": "easy", "pillar": "access", "status": "pass", "weight": 4.0}, {"id": "access.no_js", "fix": "", "gap": 0.0, "label": "Content accessible without JS rendering", "detail": "Content present in raw HTML (13734 visible characters).", "earned": 4.0, "effort": "hard", "pillar": "access", "status": "pass", "weight": 4.0}, {"id": "access.agent_pathways", "fix": "Link shipping, returns, contact and help/FAQ pages from the homepage (nav or footer). Agents answer pre-purchase questions by following links \u2014 a page with no link-path from the homepage does not exist for them.", "gap": 0.0, "label": "Shipping/returns/contact linked from the homepage (preview)", "detail": "No homepage link-path found for: returns, contact (found: help, shipping).", "earned": 0.0, "effort": "easy", "pillar": "access", "status": "partial", "weight": 0.0}], "earned": 36.0, "weight": 40.0}, {"id": "structured_data", "pct": 91, "icon": "\ud83c\udff7\ufe0f", "name": "Structured data", "checks": [{"id": "sd.product", "fix": "", "gap": 0.0, "label": "Product JSON-LD present", "detail": "Schema.org Product found in JSON-LD (product page).", "earned": 12.0, "effort": "medium", "pillar": "structured_data", "status": "pass", "weight": 12.0}, {"id": "sd.price", "fix": "", "gap": 0.0, "label": "Structured price + currency", "detail": "price=129.00 EUR.", "earned": 8.0, "effort": "easy", "pillar": "structured_data", "status": "pass", "weight": 8.0}, {"id": "sd.availability", "fix": "", "gap": 0.0, "label": "Structured availability", "detail": "availability=http://schema.org/OutOfStock.", "earned": 5.0, "effort": "easy", "pillar": "structured_data", "status": "pass", "weight": 5.0}, {"id": "sd.brand", "fix": "Add the brand field to the Product.", "gap": 3.0, "label": "Structured brand", "detail": "No structured brand.", "earned": 0.0, "effort": "easy", "pillar": "structured_data", "status": "fail", "weight": 3.0}, {"id": "sd.identifier", "fix": "", "gap": 0.0, "label": "Product identifier (SKU / GTIN)", "detail": "SKU/GTIN/MPN present \u2014 reliable product resolution.", "earned": 4.0, "effort": "medium", "pillar": "structured_data", "status": "pass", "weight": 4.0}, {"id": "sd.rating", "fix": "", "gap": 0.0, "label": "Aggregated reviews (aggregateRating)", "detail": "aggregateRating=5.00.", "earned": 3.0, "effort": "medium", "pillar": "structured_data", "status": "pass", "weight": 3.0}], "earned": 32.0, "weight": 35.0}, {"id": "catalog", "pct": 20, "icon": "\ud83d\udce6", "name": "Catalog & attributes", "checks": [{"id": "cat.variants", "fix": "Declare each variant as a distinct Offer or via hasVariant.", "gap": 5.0, "label": "Structured variants", "detail": "Structured product but variants not exposed (size/color not found as fields).", "earned": 5.0, "effort": "medium", "pillar": "catalog", "status": "partial", "weight": 10.0}, {"id": "cat.attributes", "fix": "Expose attributes (color, size, material, category) as structured JSON-LD fields (additionalProperty) or via the feed.", "gap": 8.0, "label": "Attributes as fields (not prose)", "detail": "No structured filterable attribute \u2014 the agent can't filter.", "earned": 0.0, "effort": "medium", "pillar": "catalog", "status": "fail", "weight": 8.0}, {"id": "cat.feed", "fix": "Publish a product feed (Shopify products.json, Merchant Center feed) and OpenGraph product tags.", "gap": 7.0, "label": "Product feed / catalog signals", "detail": "No machine-readable product feed nor OpenGraph product tags.", "earned": 0.0, "effort": "medium", "pillar": "catalog", "status": "fail", "weight": 7.0}], "earned": 5.0, "weight": 25.0}, {"id": "rails", "pct": 25, "icon": "\ud83d\udee4\ufe0f", "name": "Transaction rails & agent access", "checks": [{"id": "proto.ucp_mcp", "fix": "Enable your platform's agentic checkout (on Shopify: the UCP catalog + checkout endpoint at /api/ucp/mcp) so agents on the UCP rail can transact.", "gap": 4.0, "label": "Shopify/UCP agent endpoint (/api/ucp/mcp)", "detail": "No UCP MCP endpoint detected (HTTP 404) \u2014 agents on the UCP rail (Shopify catalog/checkout) can't transact here.", "earned": 0.0, "effort": "hard", "pillar": "rails", "status": "fail", "weight": 4.0}, {"id": "proto.a2a_card", "fix": "Publish an A2A Agent Card at /.well-known/agent-card.json describing your store's machine entry points.", "gap": 3.0, "label": "A2A Agent Card (/.well-known/agent-card.json)", "detail": "No A2A Agent Card \u2014 your store publishes no machine-readable agent for buyer-agents to discover and call. (So do ~all stores today: this is the frontier, not the baseline.)", "earned": 0.0, "effort": "easy", "pillar": "rails", "status": "fail", "weight": 3.0}, {"id": "proto.ard_catalog", "fix": "Publish an ARD AI Catalog at /.well-known/ai-catalog.json \u2014 the pre-invocation discovery layer agents check first.", "gap": 3.0, "label": "ARD AI Catalog (/.well-known/ai-catalog.json)", "detail": "No AI Catalog \u2014 under the new Google/Microsoft ARD spec (June 2026), agents look here first to learn what a site offers. Adoption is ~0% today, so publishing one puts you ahead of nearly the entire web (including the spec authors).", "earned": 0.0, "effort": "easy", "pillar": "rails", "status": "fail", "weight": 3.0}, {"id": "access.machine_entry", "fix": "", "gap": 0.0, "label": "Machine entry points advertised at first contact", "detail": "The homepage signposts machine resources at first contact (feed) \u2014 an agent fetching the root is pointed to them instead of having to guess a path or give up.", "earned": 3.0, "effort": "easy", "pillar": "rails", "status": "pass", "weight": 3.0}, {"id": "p6.returns_shipping", "fix": "Add hasMerchantReturnPolicy and shippingDetails to your Offer JSON-LD so an agent can quote the buyer the full, true cost.", "gap": 2.0, "label": "Returns & shipping in offers (P6 preview)", "detail": "Offers carry no machine-readable return policy or shipping details \u2014 an agent can't compute the true total cost of buying from you, and Google's own Search Console flags this too.", "earned": 0.0, "effort": "medium", "pillar": "rails", "status": "fail", "weight": 2.0}, {"id": "act.checkout", "fix": "", "gap": 0.0, "label": "Add-to-cart action detectable", "detail": "The product page exposes a machine-visible add-to-cart action in its raw HTML \u2014 an agent can locate where the purchase starts.", "earned": 1.0, "effort": "hard", "pillar": "rails", "status": "pass", "weight": 1.0}], "earned": 4.0, "weight": 16.0}], "roadmap": {"gain": 34, "steps": [{"n": 1, "how": "\u2022\u2022\u2022\u2022\u2022\u2022 Unlock the exact fix with Pro", "why": "No structured filterable attribute \u2014 the agent can't filter.", "title": "Attributes as fields (not prose)", "effort": "medium", "impact": 8.0, "pillar": "Catalog & attributes", "check_id": "cat.attributes", "cumulative": 85}, {"n": 2, "how": "\u2022\u2022\u2022\u2022\u2022\u2022 Unlock the exact fix with Pro", "why": "No /llms.txt.", "title": "llms.txt present", "effort": "easy", "impact": 4.0, "pillar": "Access & crawlability", "check_id": "access.llms_txt", "cumulative": 89}, {"n": 3, "how": "\u2022\u2022\u2022\u2022\u2022\u2022 Unlock the exact fix with Pro", "why": "No machine-readable product feed nor OpenGraph product tags.", "title": "Product feed / catalog signals", "effort": "medium", "impact": 7.0, "pillar": "Catalog & attributes", "check_id": "cat.feed", "cumulative": 96}, {"n": 4, "how": "\u2022\u2022\u2022\u2022\u2022\u2022 Unlock the exact fix with Pro", "why": "No structured brand.", "title": "Structured brand", "effort": "easy", "impact": 3.0, "pillar": "Structured data", "check_id": "sd.brand", "cumulative": 99}, {"n": 5, "how": "\u2022\u2022\u2022\u2022\u2022\u2022 Unlock the exact fix with Pro", "why": "No A2A Agent Card \u2014 your store publishes no machine-readable agent for buyer-agents to discover and call. (So do ~all stores today: this is the frontier, not the baseline.)", "title": "A2A Agent Card (/.well-known/agent-card.json)", "effort": "easy", "impact": 3.0, "pillar": "Transaction rails & agent access", "check_id": "proto.a2a_card", "cumulative": 100}], "capped": false, "current": 66, "grade_up": true, "projected": 100, "cap_reason": "", "target_grade": "A", "current_grade": "C"}, "headline": "Average. An agent copes but trips on concrete points.", "artifacts": {"jsonld": "<script type=\"application/ld+json\">\n{\n  \"@context\": \"https://schema.org\",\n  \"@type\": \"Product\",\n  \"name\": \"\u2022\u2022\u2022\u2022\u2022\u2022\u2022\u2022\u2022\u2022\u2022\u2022\",\n  \"brand\": \"\u2022\u2022\u2022\u2022\u2022\u2022\",\n  \"offers\": { \"price\": \"\u2022\u2022\u2022\u2022\", \"availability\": \"\u2022\u2022\u2022\u2022\u2022\u2022\" }\n}\n</script>", "llms_txt": "# R\u00f6stst\u00e4tte Berlin\n\n> Kaffeer\u00f6sterei in Berlin \u2713 Ausgezeichnete Spezialit\u00e4tenkaffees \u2713 Baristakurse der R\u00f6stst\u00e4tte Berlin \u2713 Kaffeezubeh\u00f6r \u2713 Kaffee f\u00fcr Unternehmen\n\n## Policies\n- Shipping: <add your delivery times and zones>\n- Returns: <add your return policy>\n\n## Sitemap\n- https://www.roeststaette.com/sitemap.xml", "available": true, "attribute_map": [{"source": "\u2022\u2022\u2022\u2022", "schema_field": "\u2022\u2022\u2022\u2022", "example": "\u2022\u2022\u2022\u2022"}]}, "benchmark": {"delta": 25, "median": 41, "verdict": "Above the specialty coffee median (+25).", "vertical": "specialty_coffee", "percentile": null, "provisional": true, "sample_size": null, "vertical_label": "specialty coffee"}, "final_url": "https://www.roeststaette.com", "protocols": [{"id": "proto.ucp_mcp", "label": "Shopify/UCP agent endpoint (/api/ucp/mcp)", "detail": "No UCP MCP endpoint detected (HTTP 404) \u2014 agents on the UCP rail (Shopify catalog/checkout) can't transact here.", "points": 4, "status": "fail"}, {"id": "proto.a2a_card", "label": "A2A Agent Card (/.well-known/agent-card.json)", "detail": "No A2A Agent Card \u2014 your store publishes no machine-readable agent for buyer-agents to discover and call. (So do ~all stores today: this is the frontier, not the baseline.)", "points": 3, "status": "fail"}, {"id": "proto.ard_catalog", "label": "ARD AI Catalog (/.well-known/ai-catalog.json)", "detail": "No AI Catalog \u2014 under the new Google/Microsoft ARD spec (June 2026), agents look here first to learn what a site offers. Adoption is ~0% today, so publishing one puts you ahead of nearly the entire web (including the spec authors).", "points": 3, "status": "fail"}, {"id": "act.checkout", "label": "Add-to-cart action detectable", "detail": "The product page exposes a machine-visible add-to-cart action in its raw HTML \u2014 an agent can locate where the purchase starts.", "points": 0, "status": "pass"}, {"id": "access.agent_class", "label": "Shopping-agent access (Agent class)", "detail": "On-demand shopping agents (ChatGPT-User, Claude-User, Perplexity-User, Meta-ExternalFetcher, AmazonBuyForMe) load the site like a normal visitor.", "points": 0, "status": "pass"}, {"id": "proto.x402", "label": "x402 / HTTP-402 payments", "detail": "No x402 payment rail observed (18 responses checked, none answered 402). The spec still defines no per-site discovery path \u2014 discovery lives in facilitator 'Bazaars' \u2014 so we report what your endpoints actually answered rather than guessing at a path.", "points": 0, "status": "na"}, {"id": "access.citation_rail", "label": "Citation-rail access (Bingbot, OAI-SearchBot, Meta-WebIndexer, Google-Extended)", "detail": "Bingbot, OAI-SearchBot, Meta-WebIndexer get in, and Google-Extended is allowed \u2014 the indexes feeding ChatGPT, Copilot, Meta AI and Gemini answers can all read this store.", "points": 0, "status": "pass"}, {"id": "access.content_signal", "label": "Content-Signal directives (robots.txt)", "detail": "No Content-Signal directives \u2014 the Cloudflare-era content switches aren't set on this store (that's the common case; nothing is being blocked by them).", "points": 0, "status": "na"}, {"id": "access.canonical", "label": "Canonical address coherence", "detail": "The declared canonical address matches where the site actually answers \u2014 no identity contradiction for machines to untangle.", "points": 0, "status": "pass"}, {"id": "access.machine_entry", "label": "Machine entry points advertised at first contact", "detail": "The homepage signposts machine resources at first contact (feed) \u2014 an agent fetching the root is pointed to them instead of having to guess a path or give up.", "points": 0, "status": "pass"}, {"id": "p6.returns_shipping", "label": "Returns & shipping in offers (P6 preview)", "detail": "Offers carry no machine-readable return policy or shipping details \u2014 an agent can't compute the true total cost of buying from you, and Google's own Search Console flags this too.", "points": 0, "status": "fail"}], "top_fixes": [{"how": "\u2022\u2022\u2022\u2022\u2022\u2022 Unlock the exact fix with Pro", "why": "No structured filterable attribute \u2014 the agent can't filter.", "title": "Attributes as fields (not prose)", "effort": "medium", "impact": 8.0, "pillar": "Catalog & attributes", "check_id": "cat.attributes"}, {"how": "\u2022\u2022\u2022\u2022\u2022\u2022 Unlock the exact fix with Pro", "why": "No /llms.txt.", "title": "llms.txt present", "effort": "easy", "impact": 4.0, "pillar": "Access & crawlability", "check_id": "access.llms_txt"}, {"how": "\u2022\u2022\u2022\u2022\u2022\u2022 Unlock the exact fix with Pro", "why": "No machine-readable product feed nor OpenGraph product tags.", "title": "Product feed / catalog signals", "effort": "medium", "impact": 7.0, "pillar": "Catalog & attributes", "check_id": "cat.feed"}, {"how": "\u2022\u2022\u2022\u2022\u2022\u2022 Unlock the exact fix with Pro", "why": "No structured brand.", "title": "Structured brand", "effort": "easy", "impact": 3.0, "pillar": "Structured data", "check_id": "sd.brand"}, {"how": "\u2022\u2022\u2022\u2022\u2022\u2022 Unlock the exact fix with Pro", "why": "No A2A Agent Card \u2014 your store publishes no machine-readable agent for buyer-agents to discover and call. (So do ~all stores today: this is the frontier, not the baseline.)", "title": "A2A Agent Card (/.well-known/agent-card.json)", "effort": "easy", "impact": 3.0, "pillar": "Transaction rails & agent access", "check_id": "proto.a2a_card"}], "cap_reason": "", "proto_bonus": 0, "scoring_version": 2}}