Narrative
Peloton scores 61/100 on the strength of a wide-open crawler policy, clean product schema on the apparel subdomain, and zero bot friction. The transactability layer is the drag: cart and checkout are JavaScript shells that classifiers cannot read, guest checkout is invisible, and shipping and tax never surface pre-auth. The main-domain shop pages (bike, bike-plus, accessories) also ship without Product schema, leaving the flagship SKUs invisible to structured extraction.
Where the points went
| Problem | Points lost | What an agent hits |
|---|---|---|
| Checkout is a JS shell, no readable steps or guest option | 8 | Agent reaches checkout, sees nothing to fill, abandons |
| Product schema missing on main shop pages | 3 | Bike and Bike+ prices exist in HTML but not as Offer objects |
| No shipping or tax visible pre-authentication | 4 | Total cost is unknowable until account creation |
| No cart API, no form POST endpoints | 3 | Programmatic add-to-cart requires browser emulation |
| Inventory shipping data absent, no delivery ETA structure | 5 | Agent cannot promise a delivery window to the buyer |
The evidence
- Checkout structure, 2/6 and guest checkout 0/4. Classifier evidence quote: "Both cart and checkout pages display identical JavaScript-dependent content with no visible form sections, step indicators, or distinct checkout phases." Guest availability came back "none" with the same JS-wall reason.
- Price transparency, 0/4. Cart page classifier could not evaluate: "JavaScript required to load page, content not accessible for evaluation." Shipping and tax both scored "no" pre-auth.
- Product schema, 3/6. The apparel subdomain nails it (6/6 with Product+Offer JSON-LD), but
/shop/bike,/shop/bike-plus, and/shop/accessoriesreturnhasProduct: false, hasOffer: false. The high-AOV catalog is the unstructured half. - Cart API, 0/3. Zero REST endpoints and zero form POSTs detected across cart and homepage. No
/cart/add.jsequivalent surfaced. - Stated agent policy, 0/2. Terms and privacy content was not classifiable: "No terms or privacy content available to classify."
What already works
- Crawler posture, 6/6. ChatGPT-User, Claude-User, PerplexityBot, OAI-SearchBot, Amazonbot, and Meta-ExternalFetcher are all explicitly allowed in robots.txt.
- Price in raw HTML, 8/8. All 9 sampled URLs expose price server-side via schema, no rendering required.
- Content depth on apparel. Specification (2/4) and conversational descriptions (1/2) both hit 8 of 9 URLs at "high" signal, with full fabric composition, inseam, fit, and size guides.
Fix first
- Server-render checkout state (steps, guest option, shipping and tax estimates) so classifiers can parse it. Recovers up to 12 points across 3.1, 3.2, and 3.3.
- Add Product and Offer JSON-LD to
/shop/bike,/shop/bike-plus, and/shop/accessories. Recovers 3 points on 1.2. - Publish an
llms.txtand a stated agent policy in terms. Recovers 4 points across 1.4 and 4.4.
The biggest single opportunity is making checkout legible to a headless reader, because that is what converts good discoverability into actual transactions.
BDiscoverability
Robots, sitemap, agent endpoints. mostly strong.
BMachine Readability
Schema coverage, raw-HTML price, inventory, variants. mostly strong.
ETransactability
Checkout flow, guest, transparency, payment rails, cart API. broken.
AAgent Posture
Bot detection, CAPTCHA, rate limiting, stated agent policy. strong.
ATrust Signals
Return policy, merchant verifiability, price history, third-party anchors. strong.
DAgent-Native Content
Specs, descriptions, decision support, delivery, stability, absence of manipulation. patchy.