Narrative
Aesop scores 50/98 because the storefront is legible to crawlers but hostile to agents actually trying to transact. Product data is textbook Shopify JSON-LD, yet the root domain returns 403 on cart, checkout, sitemap, and policy pages, so any agent that gets past discovery immediately hits a wall. The result is a store that indexes beautifully and converts nothing.
Where the points went
| Problem | Points lost | What an agent hits |
|---|---|---|
| Cart and checkout return 403 | 10 | Agent cannot inspect flow, cannot confirm guest availability, cannot verify totals |
| Trust signals absent or unreadable | 8 | No returns policy, no verifiable business identity, no third-party reviews to weigh |
| Decision-support and price-stability metadata missing | 5 | Agent has no basis to recommend one variant, size, or region over another |
| Sitemap returns 403 and no llms.txt | 6 | Discovery falls back to guessing URLs across regional subdomains |
| Inventory only partially structured | 3 | Agent sees InStock/OutOfStock but no shipping details or restock ETA |
The evidence
- Checkout flow structure, 0/6:
https://aesop.com/cartandhttps://aesop.com/checkoutboth return 403, and the same block hits/terms,/privacy,/about, and the root itself. Seven of thirty scanner fetches were forbidden, a 23% block rate concentrated on exactly the pages agents need. - Merchant verifiability, 0/3: The classifier could not extract a business name, address, or registration. The only quote it could pull was
"Just a moment... Enable JavaScript and cookies to continue", meaning the trust page is gated behind an interstitial. - Sitemap quality, 0/4:
https://aesop.com/sitemap.xmlreturns 403. Robots.txt does declarehttps://www.aesop.com/sitemap_index.xml, so the sitemap exists, but the canonical path an agent tries first is blocked. - Decision-support metadata, 0/3: Zero high-signal hits across nine products. Only the Aposē lamp surfaces useful decision context (regional pre-order windows); everything else offers ingredients without skin-type, use-case, or comparison guidance.
- Return policy, 0/3: No
/returnspage reachable, no returns link from the homepage. An agent asked "can I return this?" has nothing to cite.
What already works
- AI crawler posture, 6/6: All eight tracked agents (ChatGPT-User, Claude-User, PerplexityBot, Amazonbot, others) are explicitly allowed.
- Structured product data, 6/6 and Price in raw HTML, 8/8: All nine sampled products carry Product plus Offer JSON-LD with prices in the raw response.
- Cart API accessibility, 3/3: Shopify
/cart/addform POST is exposed and documented in markup.
Fix first
- Stop 403-ing
/cart,/checkout,/sitemap.xml, and policy pages for non-browser user agents. Recovers up to 14 points. - Publish a machine-readable returns policy linked from the homepage and add verifiable merchant identity to the footer. Recovers 6 points.
- Add
priceValidUntil, shipping details in Offer, and skin-type or use-case metadata to product JSON-LD. Recovers 5 points.
The biggest opportunity is unblocking the transaction surface: Aesop has done the schema work, then locked the door.
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.
BAgent Posture
Bot detection, CAPTCHA, rate limiting, stated agent policy. mostly strong.
ETrust Signals
Return policy, merchant verifiability, price history, third-party anchors. broken.
EAgent-Native Content
Specs, descriptions, decision support, delivery, stability, absence of manipulation. broken.