I scanned 100 top DTC stores for AI-shopping readiness

Shopify turned on Agentic Storefronts for every eligible US merchant on March 24, 2026. Adobe reports AI-referred retail traffic grew 693% YoY and converts 31% better than non-AI traffic. I wanted to know: of the stores people actually talk about, who's actually set up to show up in ChatGPT Shopping, Perplexity, and Google AI Mode?

Scan run 2026-04-22 · 5 public-data signals · 100 points max · download raw CSV →

100stores scanned
40no public product feed (invisible)
60still expose a public feed
39scored 100/100 on the basics
10on Shopify but leaking discoverability
The headline: 40 of the top 100 DTC brands don't expose a public /products.json feed at all — many of them haven't left Shopify, they've moved to a headless front-end (Hydrogen on Vercel, Next.js + Storefront API, S3/CloudFront with a custom router) that hides the endpoint AI shoppers read. The back-end is still Shopify; the AI-readable surface is gone.

What I scored 5 signals · 100 pts

These are the floor — the signals AI shoppers literally cannot work around. A store missing any of them is leaking discoverability on every agent request.

  1. Public /products.json feed — 25 pts. Shopify's open product feed. The primary endpoint AI agents ingest for price, title, images, variants. Missing or blocked → you're invisible to anyone scraping at scale.
  2. Product schema.org JSON-LD on PDPs — 30 pts. The single biggest discovery signal. ChatGPT Shopping, Perplexity, Google AI Mode all parse <script type="application/ld+json">{"@type":"Product"…} blocks for price, availability, brand, GTIN, reviews. Without it, agents have to reverse-engineer your HTML.
  3. Valid sitemap.xml — 15 pts. Tells crawlers what to read. A missing or malformed sitemap means AI bots only know about pages they stumble onto via links.
  4. Open Graph on homepage — 15 pts. og:title + og:description + og:image. What AI assistants render when they surface your store as a card in a response.
  5. Open robots.txt — 15 pts. No Disallow: / or Disallow: /products for User-agent: *. One wrong line here makes every other signal moot.

The headline numbers

Of the 60 brands that still expose a public product feed:

BucketCount% of public-feed group
Perfect 100/1003965%
Score 80–991118%
Score 60–79712%
Score below 6035%

Average 92.8/100 · median 100/100 · 83% scored 80 or above.

That's the good news: the brands that haven't gone headless mostly have the basic infrastructure in place. Shopify's default output gives most of these signals for free.

The bad news comes in the next section.

The 10 that are leaking Shopify · score < 80

These brands still expose /products.json — they're on Shopify, agents can find their catalog — but they're missing one or more of the other four floor signals. Most common miss: Product JSON-LD on PDPs.

StoreScoreMissingScorecard
birddogs.com55JSON-LD, Open Graphview
mackweldon.com55JSON-LD, Open Graphview
roka.com55JSON-LD, Open Graphview
gymshark.com60JSON-LD, partial OGview
tentree.com60JSON-LD, partial OGview
banditrunning.com70JSON-LDview
bokksu.com70JSON-LDview
bollandbranch.com70JSON-LDview
liquiddeath.com70JSON-LDview
oliveandjune.com70JSON-LDview

Scores re-verified 2026-04-22 (all 10 unchanged since the initial scan).

The headless trap

Here's the finding that surprised me. I expected the "40 invisible" bucket to be mostly non-Shopify stores — Big Cartel, Squarespace, custom builds. It wasn't.

It's brands like Bombas (Vercel + Next.js against Shopify Storefront API), Kendra Scott (AWS S3 + CloudFront with a custom router), Goop (custom), Glossier (headless on a custom stack). The back-end is still Shopify. The PDPs still render. The checkout still works. But /products.json returns 404 or a static HTML page, and with it goes the primary way AI shoppers ingest catalog data at scale.

Going headless is fine. Going headless without re-implementing the canonical catalog endpoints + JSON-LD on the new front is an own-goal that cuts you out of a channel Adobe says is growing 693% YoY.

Whose headless build actually is AI-readable? I'd love to know. Send nominations and I'll re-scan them.

Why this is only the floor what the 5-signal scan misses

The 5 signals here are the ones every store has to get right. But a store that scores 100/100 on the floor can still be invisible to ChatGPT when ranking against a direct competitor. The actual ranking spread comes from these 13 deeper signals — which is what the full CatalogScan checks:

  1. GTIN / barcode coverage across variants
  2. Google Product Category metafield depth
  3. Product type taxonomy (native vs freeform)
  4. Image alt-text coverage (for text-first agent responses)
  5. Description length and boilerplate detection
  6. Review schema (AggregateRating JSON-LD)
  7. Availability and shipping schema
  8. Brand JSON-LD on PDP
  9. Canonical URL hygiene
  10. Hreflang for multi-region stores
  11. Structured data validation errors (what Google's Rich Results test catches)
  12. Crawl-budget waste (parameterized URLs not canonicalized)
  13. Mobile JSON-LD parity (no fields missing vs desktop)

A store at 100/100 on the 5 floor signals can still fail half of these — which is what actually decides whether an agent surfaces you or a competitor.

Caveats

5 product handles per store. I test JSON-LD on the first product returned by /products.json?limit=5. A store could ship JSON-LD on some PDPs and not others; this misses that. The full scan checks every PDP.

Single homepage Open Graph snapshot. A store could have OG tags on the home but not on PDPs or collections. Full scan walks the tree.

Bot UA could be stripped. I send CatalogScanBot/0.1. A store with aggressive bot-detection middleware could strip structured data when it sees the UA and score falsely low. Spot checks of the bottom 10 + top brands (Allbirds, Rothy's) showed full payloads served, so I don't think any of the results above are affected.

"No public feed" isn't always a downgrade. Some of the 40 off-feed brands are on Hydrogen / Storefront API stacks that may expose equivalent endpoints under different paths. The scan doesn't know about those. Future scan pass should run platform-agnostic checks for this group.

Run the same scan on your store free · no login

Paste your store URL on the home page. Same 5 floor signals, plus the 13 deeper ones, 0–100 readiness score, top-5 fixes ranked by impact.

Is your store invisible to ChatGPT?

2-minute scan. No Shopify permissions needed.

Scan my store → See the full leaderboard