Shelfglance

What AI assistants can read from 10,110 Shopify stores

Every store in the Shelfglance directory, scored the same way on the same checks. The scan reads only public pages, so anyone can reproduce any row of this by opening the store themselves. The full list is at /stores, one report per store, and the rows are one CSV download (CC BY 4.0).

The short version

The median store scores 74 out of 100, and 26% land at C or below. Almost none of that is Shopify's fault. Shopify ships the robots.txt, the sitemap, the page metadata and now llms.txt on every plan, and nearly every store passes those. What separates the stores is the product data itself — whether a page states its price, its availability and its identifiers in a form a machine can read without guessing.

Grades

GradeShareStores
A 17%1,699
B 57%5,772
C 10%1,049
D 12%1,251
F 3%339

What they fall short on

Across the 10,110 stores scanned since this was recorded. Falls short counts every store that did not pass the check outright, down to a single missing field — so a product page carrying price, currency and stock but no brand is counted here, and most of this column is stores in exactly that position, not stores with nothing. Fails outright counts only the stores where the thing an assistant needs is absent altogether: no product schema at all, rather than product schema missing a field.

CheckFalls shortFails outright
Product structured data 80%18%
Page metadata 26%0%
The catalogue their agent endpoint serves 25%0%
llms.txt 3%0%
An XML sitemap 2%0%
AI shopping crawler access 1%0%
Content readable without JavaScript 0%0%
A homepage that is not a JavaScript redirect 0%0%

The llms.txt nearly every store has is not its own

Almost every Shopify store now serves a file at /llms.txt, and the check above passes them for it. That pass is thinner than it looks. The file is generated by Shopify, it is the same file on store after store, and what it contains is routing instructions for agents — install the Shop skill, here are the Universal Commerce Protocol endpoints — rather than anything about the catalogue it sits next to.

Of 200 stores sampled from this corpus on 1 September 2026, 91% served Shopify's generated file, 5% had written their own, and 4% served none. Of the generated ones, 95% were identical in shape: five links under eleven headings, on stores selling nothing alike.

The stores that wrote their own read completely differently — they open with what the shop sells, who it is for, and which categories it carries. That is what the convention was for, and it is the version an assistant can use to tell one store from another. So the honest reading of the llms.txt row in the table above is not that the problem is solved: it is that Shopify solved its own half and the merchant's half is mostly unwritten.

Sample of 200 taken deterministically — every Nth host of the sorted corpus, not a chosen set — with one request per store. Counted as Shopify-generated when the file opens with an Agent Instructions heading and points at shop.app/SKILL.md. Check any row yourself: fetch /llms.txt from any Shopify store you like.

Method

Each store is fetched the way any crawler fetches it: the homepage, the robots.txt, the sitemap, llms.txt, and one product page reached from the sitemap. Nothing is rendered in a browser, because the assistants doing the reading do not render one either. Checks are weighted by how much an assistant needs them — a missing price counts for more than a missing llms.txt — and the score is 100 minus the penalties. Stores that disallow ShelfglanceBot in robots.txt are not scanned and are not in these numbers; see /bot.

Figures are recomputed on every request from the stored reports, which are kept for three months and re-scanned as they age, so this page moves as the corpus does.

Studies

Findings with their own page, method and rows. New ones appear in the feed.

Citing this

Everything here is CC BY 4.0: reuse any figure, any table, or the whole CSV, and the licence asks only that the reuse link back to this page. The numbers move as the corpus is re-scanned, so a citation should say when it was read and archive the CSV it read:

Shelfglance, “What AI assistants can read from 10,110 Shopify stores”, shelfglance.com/research, read [date]. Data: shelfglance.com/research/data.csv.

Where your store lands

Free, no signup. Takes about ten seconds.

And whether any of it is selling

A grade says what assistants can read. It cannot say whether one of them sent you a buyer. Shopify records the referring site on every order, so that question has an exact answer, and Shelfglance reads it: how many orders came from ChatGPT, Perplexity, Copilot and the rest, and what they were worth.

Install Shelfglance on my store

Installs on any Shopify store. The free plan needs no card, and the dashboard runs on sample data if you would rather look first.