{"scan_id": 127, "url": "https://honest.com/collections/skincare", "vertical": "beauty", "scanned_at": "2026-08-05T06:01:00.131671+00:00", "score": 63, "grade": "C", "report_url": "https://www.agentready.market/r/127", "result": {"url": "https://www.honestbeauty.com", "meta": {"notes": [], "phase": "1 (pillars 1-4, weighted matrix)", "origin": "https://www.honestbeauty.com", "investment": {"ads": [], "apps": ["Klaviyo"], "score": 1, "platform": "Shopify", "qualified": false}, "home_status": 200, "product_url": "https://honest.com/products/clean-conscious-wipes", "shopify_feed": false, "robots_present": false}, "error": "", "grade": "C", "score": 63, "capped": false, "pillars": [{"id": "access", "pct": 80, "icon": "\ud83d\udd13", "name": "Access & crawlability", "checks": [{"id": "access.ai_crawlers", "fix": "", "gap": 0.0, "label": "robots.txt allows agent crawlers", "detail": "No robots.txt: by default every agent crawler is allowed.", "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 (524 ms on the homepage) \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": "Generate a sitemap.xml and declare it in robots.txt (Sitemap: ...).", "gap": 4.0, "label": "Sitemap available", "detail": "No sitemap declared in robots.txt nor at /sitemap.xml.", "earned": 0.0, "effort": "easy", "pillar": "access", "status": "fail", "weight": 4.0}, {"id": "access.no_js", "fix": "", "gap": 0.0, "label": "Content accessible without JS rendering", "detail": "Content present in raw HTML (10221 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: shipping, returns (found: contact, help).", "earned": 0.0, "effort": "easy", "pillar": "access", "status": "partial", "weight": 0.0}], "earned": 32.0, "weight": 40.0}, {"id": "structured_data", "pct": 83, "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=4.99 USD.", "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/InStock.", "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": "Expose aggregateRating (ratingValue + reviewCount) in JSON-LD.", "gap": 3.0, "label": "Aggregated reviews (aggregateRating)", "detail": "No aggregateRating \u2014 the agent can't compare your reputation.", "earned": 0.0, "effort": "medium", "pillar": "structured_data", "status": "fail", "weight": 3.0}], "earned": 29.0, "weight": 35.0}, {"id": "catalog", "pct": 37, "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": "", "gap": 2.8, "label": "Product feed / catalog signals", "detail": "Feed signals: OpenGraph product.", "earned": 4.2, "effort": "medium", "pillar": "catalog", "status": "partial", "weight": 7.0}], "earned": 9.2, "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": 33, "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": 82}, {"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": 86}, {"n": 3, "how": "\u2022\u2022\u2022\u2022\u2022\u2022 Unlock the exact fix with Pro", "why": "No sitemap declared in robots.txt nor at /sitemap.xml.", "title": "Sitemap available", "effort": "easy", "impact": 4.0, "pillar": "Access & crawlability", "check_id": "access.sitemap", "cumulative": 90}, {"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": 93}, {"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": 96}], "capped": false, "current": 63, "grade_up": true, "projected": 96, "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": "# The Honest Company\n\n> Touch and glow with Honest skincare products designed for everyone. Shop our selections of skincare cleansers, moisturizers, eye creams, and serums today!\n\n## Policies\n- Shipping: <add your delivery times and zones>\n- Returns: <add your return policy>", "available": true, "attribute_map": [{"source": "\u2022\u2022\u2022\u2022", "schema_field": "\u2022\u2022\u2022\u2022", "example": "\u2022\u2022\u2022\u2022"}]}, "benchmark": {"delta": 43, "median": 20, "verdict": "Above the beauty & cosmetics median (+43).", "vertical": "beauty", "percentile": 100, "provisional": false, "sample_size": 26, "vertical_label": "beauty & cosmetics"}, "final_url": "https://honest.com/collections/skincare", "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) load the site like a normal visitor. The site is behind Cloudflare \u2014 check the AI-crawler settings there.", "points": 0, "status": "pass"}, {"id": "proto.x402", "label": "x402 / HTTP-402 payments", "detail": "No standard discovery path exists yet for x402 \u2014 we track the spec and will probe it the moment a convention settles.", "points": 0, "status": "na"}, {"id": "access.citation_rail", "label": "Citation-rail access (Bingbot, OAI-SearchBot, Google-Extended)", "detail": "Bingbot and OAI-SearchBot get in, and Google-Extended is allowed \u2014 the indexes feeding ChatGPT, Copilot 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 sitemap declared in robots.txt nor at /sitemap.xml.", "title": "Sitemap available", "effort": "easy", "impact": 4.0, "pillar": "Access & crawlability", "check_id": "access.sitemap"}, {"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}}