Scan report ·

onepeloton.com

Mixed signal. Agent access holds up, but checkout falls short.

Category · sporting goods

C
61 / 100
Mixed signal
Evaluated coverage: 100/100 applicable points
Aisle Pro · Remediation packet
Every fix this scan flagged, one card at a time: ranked by points per effort, with copy-paste snippets, per-fix downloads, and a plan your AI coding agent can execute.
Discoverability
B
15 / 20
Machine Readability
B
14 / 20
Transactability
E
5 / 20
Agent Posture
A
13 / 15
Trust Signals
A
8 / 10
Agent-Native Content
D
6 / 15

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

ProblemPoints lostWhat an agent hits
Checkout is a JS shell, no readable steps or guest option8Agent reaches checkout, sees nothing to fill, abandons
Product schema missing on main shop pages3Bike and Bike+ prices exist in HTML but not as Offer objects
No shipping or tax visible pre-authentication4Total cost is unknowable until account creation
No cart API, no form POST endpoints3Programmatic add-to-cart requires browser emulation
Inventory shipping data absent, no delivery ETA structure5Agent 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/accessories return hasProduct: 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.js equivalent 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

  1. 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.
  2. Add Product and Offer JSON-LD to /shop/bike, /shop/bike-plus, and /shop/accessories. Recovers 3 points on 1.2.
  3. Publish an llms.txt and 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.

AI crawler posture: 6/6
https://onepeloton.com/robots.txt
1.1 · 6/6
!
Structured product data coverage: 3/6
sample · https://www.onepeloton.com/shop/accessories
How to fixPro
1.2 · 3/6
Sitemap quality: 4/4
https://onepeloton.com/sitemap.xml
1.3 · 4/4
!
Agent-specific endpoints: 2/4
https://onepeloton.com/.well-known/ai-plugin.json
How to fixPro
1.4 · 2/4

BMachine Readability

Schema coverage, raw-HTML price, inventory, variants. mostly strong.

Price in raw HTML: 8/8
sample · https://www.onepeloton.com/shop/accessories
2.1 · 8/8
!
Product attributes structured: 3/6
sample · https://www.onepeloton.com/shop/accessories
How to fixPro
2.2 · 3/6
!
Inventory signals: 2/5
sample · https://www.onepeloton.com/shop/accessories
How to fixPro
2.3 · 2/5
Variant handling: 1/1
sample · https://www.onepeloton.com/shop/accessories
2.5 · 1/1

ETransactability

Checkout flow, guest, transparency, payment rails, cart API. broken.

!
Checkout flow structure: 2/6
How to fixPro
3.1 · 2/6
×
Guest checkout availability: 0/4
How to fixPro
3.2 · 0/4
×
Price transparency signals: 0/4
How to fixPro
3.3 · 0/4
!
Machine-native payment rails: 3/3
How to fixPro
3.4 · 3/3
×
Cart API accessibility: 0/3
How to fixPro
3.5 · 0/3

AAgent Posture

Bot detection, CAPTCHA, rate limiting, stated agent policy. strong.

Bot detection aggressiveness: 6/6
4.1 · 6/6
CAPTCHA prevalence: 4/4
4.2 · 4/4
Rate limiting posture: 3/3
4.3 · 3/3
×
Stated agent policy: 0/2
How to fixPro
4.4 · 0/2

ATrust Signals

Return policy, merchant verifiability, price history, third-party anchors. strong.

Return policy machine-readable: 3/3
https://onepeloton.com/returns
5.1 · 3/3
!
Merchant verifiability: 1/3
How to fixPro
5.2 · 1/3
Price history signals: 2/2
5.3 · 2/2
Third-party trust anchors: 2/2
5.4 · 2/2

DAgent-Native Content

Specs, descriptions, decision support, delivery, stability, absence of manipulation. patchy.

!
Specification completeness: 2/4
sample · https://www.onepeloton.com/shop/accessories
How to fixPro
6.1 · 2/4
!
Conversational product descriptions: 1/2
sample · https://www.onepeloton.com/shop/accessories
How to fixPro
6.2 · 1/2
!
Decision-support metadata: 1/3
sample · https://www.onepeloton.com/shop/accessories
How to fixPro
6.3 · 1/3
×
Delivery date transparency: 0/2
sample · https://www.onepeloton.com/shop/accessories
How to fixPro
6.4 · 0/2
×
Price stability signals: 0/2
sample · https://www.onepeloton.com/shop/accessories
How to fixPro
6.5 · 0/2
Absence of manipulation tactics: 2/2
6.6 · 2/2