Narrative
Casper is a well-instrumented Shopify storefront that agents can read but cannot fully transact against. The discoverability and machine-readability fundamentals are solid (open crawler policy, JSON-LD offers on 8 of 9 products, prices in raw HTML), but transactability collapses at the cart with CAPTCHA gates, invisible shipping and tax, and a checkout that 403s on inspection. Score of 58 is a fair reflection: readable catalog, hostile checkout.
Where the points went
| Problem | Points lost | What an agent hits |
|---|---|---|
| CAPTCHA on cart and homepage | 4 | Cannot proceed past add-to-cart without human solve |
| Shipping and tax hidden pre-auth | 4 | Cannot quote a total to the shopper before commit |
| Checkout flow opaque to inspection | 4 | Cannot pre-map the step sequence for autofill |
| Sparse specs and decision metadata | 3 | Cannot answer "which pillow for side sleepers" reliably |
| No stated agent policy | 2 | Must guess whether automated purchase is permitted |
The evidence
- CAPTCHA on transactional surfaces (0/4). Both
reCAPTCHAandhCaptchadetected on/cartand homepage, withtransaction_blocking: true. This is the single biggest agent blocker on the site. - Price transparency fails (0/4). Classifier on the cart page: "no shipping cost information, shipping calculator, or tax information visible on the cart page before checkout." Agents cannot compute a landed price.
- Checkout unreachable (2/6 on flow, 2/6 on guest).
https://casper.com/checkoutreturned 403 during the scan, and the cart requires initialization to render steps. Guest availability could not be confirmed; account nav is prominent instead. - Sitemap is a stub (2/4).
sitemap.xmlreturned only 5 locs withhas_product_urls: falseand nolastmod. Agents crawling for the catalog get nothing useful from it. - One product page is a black hole.
flannel-duvet-coverhas no Product schema, no offer, no attributes, no price, no description signal. It drags every sampled dimension down. - No stated agent policy (0/2). Terms and privacy are
silenton automated access. Ambiguity defaults to caution for well-behaved agents.
What already works
- Crawler posture is fully open: all 8 tracked agents (ChatGPT-User, Claude-User, PerplexityBot, etc.) allowed in robots.txt, plus a live
llms.txt. - Payment rails and cart API are agent-grade: Shop Pay detected alongside Apple Pay and PayPal, with Shopify's
/cartendpoint accessible. - Returns policy is machine-readable end to end: window, conditions, and process all extractable from
/returns, including the 100-night mattress trial.
Fix first
- Remove or scope CAPTCHA off
/cartand homepage; gate only on suspicious signals. (+4) - Surface shipping and tax estimates on the cart before auth, even as a ZIP-based estimator. (+4)
- Publish a stated agent policy in terms and add product URLs with
lastmodto the sitemap. (+4)
The biggest unlock is the cart: an agent that can read every Casper price but cannot get past a CAPTCHA to quote a total is an agent that recommends a competitor.
BDiscoverability
Robots, sitemap, agent endpoints. mostly strong.
BMachine Readability
Schema coverage, raw-HTML price, inventory, variants. mostly strong.
CTransactability
Checkout flow, guest, transparency, payment rails, cart API. partial.
DAgent Posture
Bot detection, CAPTCHA, rate limiting, stated agent policy. patchy.
CTrust Signals
Return policy, merchant verifiability, price history, third-party anchors. partial.
DAgent-Native Content
Specs, descriptions, decision support, delivery, stability, absence of manipulation. patchy.