Scan report ·

brooklinen.com

Mixed signal. Agents can reach the page, but guess from there.

Category · home

C
55 / 100
Mixed signal
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
10 / 20
Machine Readability
B
14 / 20
Transactability
B
13 / 20
Agent Posture
D
6 / 15
Trust Signals
C
6 / 10
Agent-Native Content
D
6 / 15

Narrative

Brooklinen lands at 55 out of 100, a mixed signal grade that masks a more interesting story: this is a site whose plumbing is largely sound but whose semantic layer is half-built. The Shopify foundation gives agents working cart endpoints, machine-native payment rails including Shop Pay and ACH via Plaid, and prices in raw HTML on every sampled product. Then the site refuses to label any of it in the vocabulary agents actually parse. The result is a store that an agent can technically transact against, but cannot confidently reason about. The single largest hole is structured product data. Across nine sampled product URLs, zero carry Product or Offer schema in any dialect. That is a six-point loss on check 1.2 and it cascades everywhere downstream: inventory signals on check 2.3 fall back to text scraping because schemaAvailability is null on every product, and variant handling on check 2.5 drops to a partial because the 14 to 23 variant IDs sitting in data attributes per product are never enumerated as offers. Brooklinen has the data. The product JSON in the raw HTML literally exposes variant prices in cents. It just never wraps that payload in schema.org markup that an agent crawler is trained to trust. Decision-support metadata, check 6.3, is a clean zero out of three. Not one of the nine products surfaces the comparative scaffolding that would let an agent answer "which Brooklinen sheet should I buy for a hot sleeper." The marketing copy gestures at it ("cool, crisp, refreshing" versus "irresistibly smooth") but never structures use cases, ideal-for tags, or comparison tables. For a category where the entire purchase decision hinges on percale versus sateen versus linen, this is a strategic miss, not a technical one. The agent posture findings are uneven. Robots.txt allows all nine tracked AI crawlers including GPTBot, ClaudeBot, PerplexityBot, and Applebot-Extended, which is the right call for a brand that wants to be cited. But check 4.2 flags both reCAPTCHA and hCaptcha on the cart and homepage with transaction_blocking set to true, and check 4.4 returns zero because no terms or privacy content was classifiable for stated agent policy. The CAPTCHA on cart is the operational blocker: an agent can construct a checkout URL, get a 403 at brooklinen.com/checkout (the one forbidden response in the scan), and hit a challenge on the cart page itself. Open the front door, lock the till. Smaller losses compound. The sitemap at brooklinen.com/sitemap.xml returns only 4 locs with no product URLs and no lastmod timestamps. There is no llms.txt, no ai-plugin.json. The returns policy is generous (365 days, $9.95 fee) and machine-readable on window and conditions, but the process step is missing, costing two points on check 5.1. Merchant verifiability lacks a physical address or registration ID, leaving check 5.2 at one of three. A countdown framing ("40% off a new bundle, every 48 hours") trips check 6.6 even as legitimate dated promotions exist elsewhere. The biggest single move Brooklinen can make is shipping Product and Offer JSON-LD on every product page, which would unlock points across discoverability, machine readability, and downstream inventory and variant checks in one deployment.

CDiscoverability

Robots, sitemap, agent endpoints. partial.

AI crawler posture: 6/6
https://brooklinen.com/robots.txt
1.1 · 6/6
×
Structured product data coverage: 0/6
sample · https://www.brooklinen.com/products/classic-duvet-cover
How to fixPro
1.2 · 0/6
!
Sitemap quality: 2/4
https://brooklinen.com/sitemap.xml
How to fixPro
1.3 · 2/4
!
Agent-specific endpoints: 2/4
https://brooklinen.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.brooklinen.com/products/classic-duvet-cover
2.1 · 8/8
!
Product attributes structured: 3/6
sample · https://www.brooklinen.com/products/classic-duvet-cover
How to fixPro
2.2 · 3/6
!
Inventory signals: 2/5
sample · https://www.brooklinen.com/products/classic-duvet-cover
How to fixPro
2.3 · 2/5
!
Variant handling: 1/1
sample · https://www.brooklinen.com/products/classic-duvet-cover
How to fixPro
2.5 · 1/1

BTransactability

Checkout flow, guest, transparency, payment rails, cart API. mostly strong.

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

DAgent Posture

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

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

CTrust Signals

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

!
Return policy machine-readable: 1/3
https://brooklinen.com/returns
How to fixPro
5.1 · 1/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. gappy.

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