Narrative
Glossier scores 64/100: a mixed signal that reflects a store built for humans first and agents second. The discovery and payment plumbing is genuinely strong (Shopify rails, JSON-LD on every product sampled, llms.txt present), but the checkout gates agents behind CAPTCHAs and the product data model leaks structure right where an agent needs it most: attributes, variants, and price provenance.
Where the points went
| Problem | Points lost | What an agent hits |
|---|---|---|
| CAPTCHA on cart and homepage | 4 | Transaction attempts fail at the cart handoff |
| Checkout flow opacity | 4 | Agent cannot preview steps or costs without an initialized cart |
| Product attributes not structured | 3 | Agent sees "brand" and nothing else machine-readable |
| Inventory signals text-only | 3 | Availability requires DOM scraping, not schema reads |
| No price history or validity windows | 4 | Sale claims and price durability are unverifiable |
The evidence
- CAPTCHA prevalence, 0/4. Both
reCAPTCHAandhCaptchafire on the cart and homepage, and the check flagstransaction_blocking: true. This is the single biggest agent-hostile signal on the site. - Product attributes structured, 3/6. Across 9 sampled PDPs, zero hit the "full" bar. Every structured hit is just
{"attr": "brand", "source": "jsonld"}. GTIN, material, size, and ingredients live only in prose. - Variant handling, 1/1 (but 0/9 enumerated). Every product carries variants (the errand bag exposes 213
data-variant-ids, the fragrance trio 415), yet none are enumerated in schema. Agents see pickers, not selectable SKUs. - Checkout structure, 2/6. The classifier notes
CHECKOUT PAGE marked as unavailable, suggesting it requires an initialized cart to render, andhttps://glossier.com/checkoutreturned 403 to the scanner. Guest checkout could not be verified either (3.2 scored 2/4, low confidence). - Price history, 0/2. Sale markup was detected on all 9 sampled products, but zero carry schema dates or validity windows. An agent cannot tell a real markdown from a permanent "sale" price.
What already works
- Crawler posture is fully open. All 8 tracked agent user-agents (ChatGPT-User, Claude-User, PerplexityBot, Amazonbot, etc.) are allowed in
robots.txt, andllms.txtis published. - Payment and cart rails are agent-grade. Shop Pay is present alongside Apple Pay and PayPal, and
/cart/addis a discoverable Shopify endpoint. - Return policy is fully machine-readable, with a clean 30-day window, conditions, and process all present at
/policies/refund-policy.
Fix first
- Remove or scope down
reCAPTCHA/hCaptchaon cart and homepage: recovers up to 4 points and unblocks agent transactions. - Enumerate variants and add GTIN, size, color, and material to Product JSON-LD: recovers up to 4 points across 2.2 and inventory clarity.
- Add
priceValidUntiland structured availability (schema.org/Offer.availability) on every PDP: recovers up to 4 points across 5.3, 6.5, and 2.3.
The biggest opportunity is the CAPTCHA wall: everything else here is a data-model upgrade, but that one line of policy is what turns Glossier from browsable into buyable for agents.
ADiscoverability
Robots, sitemap, agent endpoints. strong.
BMachine Readability
Schema coverage, raw-HTML price, inventory, variants. mostly strong.
BTransactability
Checkout flow, guest, transparency, payment rails, cart API. mostly strong.
DAgent Posture
Bot detection, CAPTCHA, rate limiting, stated agent policy. patchy.
CTrust Signals
Return policy, merchant verifiability, price history, third-party anchors. partial.
DAgent-Native Content
Specs, descriptions, decision support, delivery, stability, absence of manipulation. patchy.