{"slug":"ridge-h5uszk","companyName":"Ridge","domain":"ridge.com","url":"https://ridge.com","headline":"A retail storefront that blocks automated clients at the door while serving real browsers, forcing agents to drive a browser to shop.","compositeScore":67,"humanScore":85,"agentScore":48,"doorGap":37,"humanMeasured":4,"agentMeasured":6,"percentile":null,"humanPercentile":null,"agentPercentile":null,"isPartial":false,"depth":"free","siteClass":"ecommerce","scannerVersion":12,"scannedAt":"2026-09-08T14:29:15.943Z","unlocked":false,"mission":{"steps":[{"url":"https://ridge.com","outcome":"blocked","purpose":"reach the site at all"},{"url":"https://ridge.com/robots.txt","outcome":"ok","purpose":"find out whether machines are welcome"},{"url":"https://ridge.com","outcome":"ok","purpose":"ask whether the door opens for requests carrying the AI crawlers' names"},{"url":"https://ridge.com/llms.txt","outcome":"ok","purpose":"read the site's own guide for language models"},{"url":"https://ridge.com","outcome":"blocked","purpose":"find out what pages exist"},{"url":"https://ridge.com/.well-known/security.txt","outcome":"missing","purpose":"find a contact route for machines"},{"url":"https://ridge.com","outcome":"missing","purpose":"find a published agent interface"},{"url":"https://ridge.com/.well-known/ai-plugin.json","outcome":"missing","purpose":"find an agent plugin manifest"},{"url":"https://ridge.com","outcome":"missing","purpose":"find out whether verified agents are recognised"},{"url":"https://ridge.com","outcome":"missing","purpose":"read the homepage as data rather than as a page"},{"url":"https://ridge.com","outcome":"missing","purpose":"find a machine readable API spec"},{"url":"https://ridge.com","outcome":"missing","purpose":"read the developer documentation"},{"url":"https://ridge.com","outcome":"ok","purpose":"read the prices without running JavaScript"},{"url":"https://ridge.com","outcome":"ok","purpose":"read the product catalogue as data"},{"url":"https://ridge.com","outcome":"ok","purpose":"read a product page as data"},{"url":"https://ridge.com","outcome":"ok","purpose":"read the returns and shipping terms"},{"url":"https://ridge.com","outcome":"ok","purpose":"walk the way a visitor would, to a signup form or a product"}],"verdict":"The site refused automated access at ridge.com, so the agent could not reach the site at all."},"observations":null,"dimensions":[{"key":"machine_discoverability","audience":"agent","score":85,"summary":"AI crawlers are named in robots.txt and llms.txt is published, but the homepage refuses HTTP requests from any client that does not render JavaScript, blocking the honest baseline while serving a real browser.","evidence":{"locked":true,"count":4}},{"key":"programmatic_onboarding","audience":"agent","score":10,"summary":"No API documentation is linked from the site. A UCP manifest is published for checkout, but there is no developer surface for catalogue queries, authentication, or order management. An agent must scrape or drive a browser to shop.","evidence":{"locked":true,"count":3}},{"key":"pricing_legibility","audience":"agent","score":73,"summary":"Prices appear in raw HTML on all 3 product pages checked, and Product structured data carries price and currency on each. An agent can parse cost without scraping.","evidence":{"locked":true,"count":2}},{"key":"agent_aware_instrumentation","audience":"agent","score":42,"summary":"A UCP manifest at version 2026-08-25 is published with 8 shopping capabilities and 3 payment handlers, letting an agent discover how to transact. No MCP manifest exists at the 3 standard paths.","evidence":{"locked":true,"count":4}},{"key":"machine_fetchable_trust","audience":"agent","score":25,"summary":"No security.txt is published. The returns policy (99-day window, free returns) and shipping policy both read as plain text on their own pages, but neither is in structured data on product pages.","evidence":{"locked":true,"count":3}},{"key":"commercial_rails","audience":"agent","score":55,"summary":"Product markup carries price, currency, availability and identifier. The catalogue answers as data at /products.json. Returns and shipping terms read as text. A UCP manifest publishes 8 checkout capabilities.","evidence":{"locked":true,"count":4}},{"key":"steps_to_first_value","audience":"human","score":95,"summary":"A product with its price ($204) and an add-to-cart control is 2 steps from the homepage. No account is required. Shop Pay and PayPal wallets skip the form entirely.","evidence":{"locked":true,"count":1}},{"key":"required_fields","audience":"human","score":80,"summary":"The product page does not demand an account before buying. Express wallets (Shop Pay, PayPal) are available, letting a shopper skip the form. The page carries 15 input fields, 3 with constraints and 1 with a description, but none block.","evidence":{"locked":true,"count":1}},{"key":"verification_walls","audience":"human","score":75,"summary":"No sign-in requirement appears on the product page. The page does not demand email verification or phone confirmation before purchase. A shopper can reach checkout as a guest.","evidence":{"locked":true,"count":1}},{"key":"error_recovery","audience":"human","score":90,"summary":"51 size or colour choosers on the product page let a shopper correct a selection before adding to cart. The page carries 5 inline error containers and 15 live regions to signal validation feedback.","evidence":{"locked":true,"count":1}}],"issues":[{"rank":1,"title":"/ turn the honest automated client away while serving a real browser, so the search crawlers that would cite the page are turned away by a rule about the client.","dimensionKey":"machine_discoverability","evidence":{"locked":true,"count":1},"fix":null},{"rank":2,"title":"The homepage blocks automated clients while serving real browsers, forcing agents to render JavaScript to discover products and prices.","dimensionKey":"machine_discoverability","evidence":{"locked":true,"count":3},"fix":null},{"rank":3,"title":"No API documentation or developer surface is published, so agents cannot query the catalogue, authenticate, or manage orders without scraping or driving a browser.","dimensionKey":"programmatic_onboarding","evidence":{"locked":true,"count":3},"fix":null}],"fixArtifacts":{"locked":true,"count":12,"summaries":[{"id":"bot_wall_guidance:notes","kind":"bot_wall_guidance","title":"Let verified assistants through","path":"notes","effort":{"minutes":60,"role":"developer"},"outcome":{"dimension":"machine_discoverability","external":["Assistant shopping and search crawlers reach the product, pricing and policy pages a buyer asks about."]}},{"id":"product_jsonld:products-magnetic-power-bank-bundle-3-pack-dark-cherry","kind":"product_jsonld","title":"Product markup for Ridge Power Bank - 10k mAh Bundle - Dark Cherry - 3-Pack","path":"/products/magnetic-power-bank-bundle-3-pack-dark-cherry","effort":{"minutes":120,"role":"developer"},"outcome":{"dimension":"pricing_legibility","external":["Assistants read price, availability and identifiers from every sampled product page."]}},{"id":"product_jsonld:products-magsafe-wallet-power-bank-phantom","kind":"product_jsonld","title":"Product markup for Ridge Wallet for MagSafe & Power Bank Kit - Phantom","path":"/products/magsafe-wallet-power-bank-phantom","effort":{"minutes":120,"role":"developer"},"outcome":{"dimension":"pricing_legibility","external":["Assistants read price, availability and identifiers from every sampled product page."]}},{"id":"product_jsonld:products-wallet-power-bank-phantom","kind":"product_jsonld","title":"Product markup for Ridge Wallet & Power Bank Kit - Phantom","path":"/products/wallet-power-bank-phantom","effort":{"minutes":120,"role":"developer"},"outcome":{"dimension":"pricing_legibility","external":["Assistants read price, availability and identifiers from every sampled product page."]}},{"id":"review_schema_vendor:notes","kind":"review_schema_vendor","title":"Put Okendo reviews in the page","path":"notes","effort":{"minutes":10,"role":"owner"},"outcome":{"dimension":"machine_discoverability","external":["Review text and ratings reach crawlers that do not run the review widget's script."]}},{"id":"robots_search_bots:robots-txt","kind":"robots_search_bots","title":"robots.txt rules for AI crawlers","path":"/robots.txt","effort":{"minutes":10,"role":"owner"},"outcome":{"dimension":"machine_discoverability","external":["The assistants' search crawlers read and cite the site to buyers; training stays the owner's decision."]}},{"id":"merchant_policy_jsonld:product-page","kind":"merchant_policy_jsonld","title":"Return policy and shipping structured data","path":"product page","effort":{"minutes":30,"role":"developer"},"outcome":{"dimension":"machine_fetchable_trust","external":["Assistants read the return window and shipping terms from structured data."]}},{"id":"policy_pages_text:notes","kind":"policy_pages_text","title":"Link the policy pages from the product page","path":"notes","effort":{"minutes":30,"role":"owner"},"outcome":{"dimension":"machine_fetchable_trust","external":["Returns and shipping pages read as text and are linked from every product page."]}},{"id":"catalog_identifiers:catalog-identifiers-csv","kind":"catalog_identifiers","title":"Variants missing a GTIN or a brand","path":"catalog-identifiers.csv","effort":{"minutes":5,"role":"owner"},"outcome":{"dimension":"machine_discoverability","external":["Feed listings stop being rejected for a missing brand or GTIN."]}},{"id":"organization_jsonld:homepage","kind":"organization_jsonld","title":"Organization structured data","path":"homepage","effort":{"minutes":15,"role":"developer"},"outcome":{"dimension":"machine_discoverability","external":["Search and assistant crawlers read the company entity from the homepage rather than inferring it."]}},{"id":"security_txt:well-known-security-txt","kind":"security_txt","title":"security.txt","path":"/.well-known/security.txt","effort":{"minutes":10,"role":"owner"},"outcome":{"dimension":"machine_fetchable_trust","external":["Researchers and automated scanners find a disclosure address instead of guessing one."]}},{"id":"interfaces_note:notes","kind":"interfaces_note","title":"Machine interfaces: where you stand","path":"notes","effort":{"minutes":10,"role":"owner"},"outcome":{"dimension":"agent_aware_instrumentation","external":["The developer surface is built in an order where every published pointer answers."]}}]},"feedback":{"endpoint":"/api/feedback","mcpTool":"rate_fix","targets":[{"type":"report","key":"report"},{"type":"dimension","dimensionKey":"machine_discoverability","key":"dimension:machine_discoverability"},{"type":"dimension","dimensionKey":"programmatic_onboarding","key":"dimension:programmatic_onboarding"},{"type":"dimension","dimensionKey":"pricing_legibility","key":"dimension:pricing_legibility"},{"type":"dimension","dimensionKey":"agent_aware_instrumentation","key":"dimension:agent_aware_instrumentation"},{"type":"dimension","dimensionKey":"machine_fetchable_trust","key":"dimension:machine_fetchable_trust"},{"type":"dimension","dimensionKey":"commercial_rails","key":"dimension:commercial_rails"},{"type":"dimension","dimensionKey":"steps_to_first_value","key":"dimension:steps_to_first_value"},{"type":"dimension","dimensionKey":"required_fields","key":"dimension:required_fields"},{"type":"dimension","dimensionKey":"verification_walls","key":"dimension:verification_walls"},{"type":"dimension","dimensionKey":"error_recovery","key":"dimension:error_recovery"},{"type":"issue","dimensionKey":"machine_discoverability","checkId":"bot_walls","key":"issue:machine_discoverability:bot_walls"},{"type":"issue","dimensionKey":"machine_discoverability","checkId":null,"key":"issue:machine_discoverability:-"},{"type":"issue","dimensionKey":"programmatic_onboarding","checkId":null,"key":"issue:programmatic_onboarding:-"}]}}