Scan report ·

oatly.com

Gaps. Discovery works, but trust does not.

Category · grocery

D
38 / 100
Gaps
Aisle Max · Remediation packet
Every fix this scan flagged, in one zip: JSON-LD snippets, well-known files, a head-injection block, and per-check narrative for the platform changes that need a human.
Discoverability
C
12 / 20
Machine Readability
E
1 / 20
Transactability
E
1 / 20
Agent Posture
A
13 / 15
Trust Signals
E
3 / 10
Agent-Native Content
C
8 / 15

Narrative

Oatly scores 38 out of 100, landing squarely in the Gaps band, and the diagnosis is unambiguous: this is a brand site pretending it does not sell anything, evaluated by agents that assume it does. The crawler posture is welcoming, the content is rich, and the infrastructure is polite to bots. But the moment an agent tries to extract a price, confirm stock, or initiate a transaction, the site evaporates. Oatly has built a beautiful magazine and forgotten to attach a store. The single largest hole is transactability. Check 3.1 reports that both /cart and /checkout return 404, which cascades into failures on guest checkout (3.2), price transparency (3.3), and cart API accessibility (3.5), wiping out 17 of a possible 20 points in that dimension. The classifier on 3.3 was blunt: the cart page is unavailable, so shipping and tax visibility cannot even be assessed. There is no machine-native payment rail detected anywhere across ten product pages, the cart, the checkout, or the homepage. For an agent trying to complete a purchase, oatly.com is a dead end, which is presumably intentional given the retail-distribution model, but agents do not know that and the site offers no signal redirecting them to a buyable surface. The second wound is machine-readability. Across all ten sampled product URLs spanning fi-fi, sv-se, and en-gb locales, zero pages carry Product or Offer schema (2.1, 2.2), zero expose price in raw or rendered HTML, and zero declare inventory availability (2.3). The Baristamatic 1.5L page in en-gb has detailed nutritional data and a climate footprint of 0.51 KG CO2E/KG in human-readable prose, but nothing an agent can parse without doing NLP on Finnish, Swedish, and English copy simultaneously. That is 19 points lost in a dimension where the underlying content already exists in the page body. The fix is mechanical, not editorial. Trust signals compound the problem. Check 5.1 finds no /returns page reachable and no returns link from the homepage. Check 5.4 finds zero third-party review anchors across Trustpilot, Yotpo, Bazaarvoice, Feefo, or Google Shopping, despite Oatly being one of the most recognized plant-milk brands on earth. Merchant verifiability (5.2) extracts only the business name from a 404 page, with no physical address or registration ID. An agent doing due diligence on a transaction would find almost nothing to anchor confidence to. What Oatly does well is content and posture. Robots.txt explicitly allows GPTBot, ClaudeBot, PerplexityBot, Google-Extended, CCBot, anthropic-ai, Applebot-Extended, Bytespider, and Amazonbot, a notably permissive stance. The sitemap declares 4,910 URLs. Bot detection is non-aggressive (0 percent block rate across 30 fetches), no CAPTCHAs gate any surface, and specification completeness scored a perfect 4 of 4 with 9 of 10 product pages carrying high-signal ingredient and nutrition data. Conversational descriptions (6.2) are vivid in three languages. The raw material for an agent-readable catalog is all there. The biggest opportunity is to add Product and Offer JSON-LD with price, currency, and availability to every product page, which alone would unlock most of the machine-readability dimension and give agents something to point at when the cart itself is intentionally absent.

CDiscoverability

Robots, sitemap, agent endpoints. partial.

AI crawler posture: 6/6
https://oatly.com/robots.txt
1.1 · 6/6
×
Structured product data coverage: 0/6
sample · https://oatly.com/fi-fi/products/oat-drink/oat-drink-matcha-strawberry-flavour-250ml
How to fixPro
1.2 · 0/6
Sitemap quality: 4/4
https://oatly.com/sitemap.xml
1.3 · 4/4
!
Agent-specific endpoints: 2/4
https://oatly.com/.well-known/ai-plugin.json
How to fixPro
1.4 · 2/4

EMachine Readability

Schema coverage, raw-HTML price, inventory, variants. broken.

×
Price in raw HTML: 0/8
sample · https://oatly.com/fi-fi/products/oat-drink/oat-drink-matcha-strawberry-flavour-250ml
How to fixPro
2.1 · 0/8
×
Product attributes structured: 0/6
sample · https://oatly.com/fi-fi/products/oat-drink/oat-drink-matcha-strawberry-flavour-250ml
How to fixPro
2.2 · 0/6
×
Inventory signals: 0/5
sample · https://oatly.com/fi-fi/products/oat-drink/oat-drink-matcha-strawberry-flavour-250ml
How to fixPro
2.3 · 0/5
Variant handling: 1/1
sample · https://oatly.com/fi-fi/products/oat-drink/oat-drink-matcha-strawberry-flavour-250ml
2.5 · 1/1

ETransactability

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

×
Checkout flow structure: 0/6
How to fixPro
3.1 · 0/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: 1/3
How to fixPro
3.4 · 1/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

ETrust Signals

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

×
Return policy machine-readable: 0/3
How to fixPro
5.1 · 0/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: 0/2
How to fixPro
5.4 · 0/2

CAgent-Native Content

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

Specification completeness: 4/4
sample · https://oatly.com/fi-fi/products/oat-drink/oat-drink-matcha-strawberry-flavour-250ml
6.1 · 4/4
Conversational product descriptions: 2/2
sample · https://oatly.com/fi-fi/products/oat-drink/oat-drink-matcha-strawberry-flavour-250ml
6.2 · 2/2
×
Decision-support metadata: 0/3
sample · https://oatly.com/fi-fi/products/oat-drink/oat-drink-matcha-strawberry-flavour-250ml
How to fixPro
6.3 · 0/3
×
Delivery date transparency: 0/2
sample · https://oatly.com/fi-fi/products/oat-drink/oat-drink-matcha-strawberry-flavour-250ml
How to fixPro
6.4 · 0/2
×
Price stability signals: 0/2
sample · https://oatly.com/fi-fi/products/oat-drink/oat-drink-matcha-strawberry-flavour-250ml
How to fixPro
6.5 · 0/2
Absence of manipulation tactics: 2/2
6.6 · 2/2
oatly.com: D (38/100) on Aisle · Aisle