Narrative
Brooklinen scores 56/100: a Shopify storefront with the plumbing agents need (Shop Pay, cart POST endpoints, open crawler policy, an llms.txt) but with the metadata layer that turns a browse into a booking almost entirely absent. Zero Product schema across nine sampled PDPs and a CAPTCHA sitting on the cart are the two findings that keep this out of the "agent-ready" tier.
Where the points went
| Problem | Points lost | What an agent hits |
|---|---|---|
| No Product/Offer JSON-LD on PDPs | 6 | Agent cannot extract a canonical price, SKU, or availability without scraping Shopify's inline JS |
| No structured product attributes | 6 | Color, size, and material must be inferred from label heuristics, not read from schema |
| Checkout flow opaque and account-gated | 4 | Guest purchase path is unclear; account walls block one-shot buys |
| CAPTCHA on cart and homepage | 4 | reCAPTCHA and hCaptcha fire on /cart, halting automated checkout |
| Weak sitemap and no stated agent policy | 4 | Only 5 sitemap URLs, no product routes, no lastmod; policy silent on automation |
The evidence
- Structured product data: 0/6. All 9 sampled PDPs (including
classic-duvet-cover,luxe-core-sheet-set,washed-linen-core-sheet-set) returnhasProduct: false, hasOffer: false. Prices exist only in embedded Shopify variant JSON ("price":16900), not in Schema.org markup. - Product attributes: 0/6. Only one PDP (
classic-duvet-cover) exposes any labeled attributes, and even there color, size, and material are labeled prose, notPropertyValuenodes. Zero URLs cleared the "two structured attributes" bar. - CAPTCHA prevalence: 0/4. Both reCAPTCHA and hCaptcha detected on
/cartand homepage, withtransaction_blocking: true. This is the single hardest wall for an autonomous agent. - Checkout structure: 2/6. Classifier notes cart shows "Sign In" and "Create Account" but no guest option, and
/checkoutreturned 403 to the scanner. Guest checkout is likely enabled by Shopify default but not surfaced. - Sitemap: 2/4.
sitemap.xmlreturns only 5 locs,has_product_urls: false, nolastmod. Agents crawling for a catalog get nothing usable.
What already works
- Crawler posture is fully open: ChatGPT-User, Claude-User, PerplexityBot, OAI-SearchBot, Amazonbot all allowed in robots.txt, plus a live
llms.txt. - Payment rails are agent-grade: Shop Pay and ACH/Plaid detected at cart and homepage, alongside Apple Pay and PayPal.
- Product content is rich prose: 7 of 9 PDPs earned "high" on specification completeness (thread counts, GSM, OEKO-TEX certs, full dimension tables).
Fix first
- Enable Product + Offer JSON-LD with price, availability, and SKU on every PDP (+12 points across 1.2 and 2.2).
- Remove or bypass CAPTCHA on
/cartfor verified agent traffic (+4 points, unblocks transactions). - Regenerate
sitemap.xmlto include product URLs withlastmodtimestamps (+2 points).
The single biggest lever is Product schema: it unlocks discoverability, machine-readability, and price-stability signals in one deploy.
CDiscoverability
Robots, sitemap, agent endpoints. partial.
CMachine Readability
Schema coverage, raw-HTML price, inventory, variants. partial.
BTransactability
Checkout flow, guest, transparency, payment rails, cart API. mostly strong.
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.