Narrative
Warby Parker scores 26/97 and lands in the Invisible band because DataDome treats agent traffic as hostile: 63% of scanner requests were blocked or challenged, including every product page and the sitemap itself. The site has the right paperwork on the front door (open robots.txt, llms.txt, ai-plugin.json) but the actual store is unreachable, so none of the downstream signals (schema, price, inventory, returns) can be evaluated by an agent. This is the classic pattern of a brand that published AI-friendly manifests while its edge security silently negates them.
Where the points went
| Problem | Points lost | What an agent hits |
|---|---|---|
| DataDome blocks agent fetches | 10 | 403 on every PDP; agent cannot read the catalog |
| No Product/Offer schema in raw HTML | 6 | Agent cannot extract price, SKU, or availability |
| Price absent from raw HTML | 8 | "$95" only appears after JS render |
| Return policy URL returns 404 | 3 | Agent cannot verify refund window before recommending |
| Guest checkout not visible, checkout gated | 8 | Agent cannot complete a transaction path |
The evidence
- Bot detection, 0/6. DataDome challenge pages served for
warbyparker.com/,/cart,/checkout,/terms,/privacy,/return-policy, and/.well-known/ai-plugin.json. All 9 sampled PDPs returned403, and even the sitemap atwarbyparker.com/sitemap.xmlwas blocked. - Structured data, 0/6 and 0/8 on price. Zero of 9 products expose Product or Offer schema; price only surfaces in the rendered DOM as
data-event-copy="Premium eyewear, starting at $95", which is marketing chrome, not a per-SKU offer. - Return policy, 0/3. The classifier hit a
404 error pageat/return-policy; there is no machine-readable window, conditions, or process for an agent to cite. - Checkout, 2/6 and guest 0/4. Cart shows "Your cart is empty" and checkout renders only header nav until a cart is initialized; no "continue as guest" affordance was detected.
- Specs and descriptions, 0/4 and 0/2. Only 3 of 9 PDPs surfaced high-signal specs (Caldwell, Anselm, Dupree); the rest returned empty or "Page is down for scheduled maintenance."
What already works
- Crawler posture, 6/6. robots.txt explicitly allows ChatGPT-User, OAI-SearchBot, Claude-User, Claude-SearchBot, PerplexityBot, Amazonbot, and Meta-ExternalFetcher.
- Agent endpoints, 4/4. Both
llms.txtand.well-known/ai-plugin.jsonare published. - Payment and cart rails, 6/6. Apple Pay present on cart, checkout, and homepage; Shopify
/cartendpoint is discoverable.
Fix first
- Allowlist the declared AI user-agents in DataDome so the 63% block rate collapses (+10 and unlocks ~25 dependent points).
- Emit Product + Offer JSON-LD with price, availability, and SKU in server-rendered HTML (+14).
- Restore
/return-policyand mark it up with window, conditions, and process (+3).
The single biggest lever is the DataDome allowlist: until agents can actually load a PDP, every other investment in schema and content is invisible.
CDiscoverability
Robots, sitemap, agent endpoints. partial.
EMachine Readability
Schema coverage, raw-HTML price, inventory, variants. broken.
DTransactability
Checkout flow, guest, transparency, payment rails, cart API. patchy.
EAgent Posture
Bot detection, CAPTCHA, rate limiting, stated agent policy. broken.
CTrust Signals
Return policy, merchant verifiability, price history, third-party anchors. partial.
EAgent-Native Content
Specs, descriptions, decision support, delivery, stability, absence of manipulation. broken.