The problem in 60 words
The GEO checklist in circulation fits in three lines: publish an llms.txt, expose your /.well-known/ files, open your robots.txt to AI crawlers. We tested it against 475 French Shopify stores. Result: 97.9% already have an llms.txt without having written it, 0% have an agent-card.json, and 0.4% block an AI search crawler. The checklist describes the layer the platform already handles.
What we measured
On 13 August 2026 we read the discovery files of 480 French Shopify stores, over plain HTTP with the user-agent VerityScoreBot/1.0, no JavaScript execution. The product page layer reuses our 13 August measurement across 457 pages.
Discovery layer, what the platform provides (475 reachable stores):
| File | Present |
|---|---|
robots.txt | 475 / 475 (100%) |
llms.txt | 465 / 475 (97.9%) |
Valid sitemap.xml | 464 / 475 (97.7%) |
agents.md | 464 / 475 (97.7%) |
/.well-known/agent-card.json | 0 / 475 (0%) |
robots.txt layer, what the merchant decides:
| Rule | Stores |
|---|---|
| Names at least one AI crawler | 10 / 475 (2.1%) |
| Blocks a training crawler | 5 / 475 (1.1%) |
| Blocks an AI search crawler | 2 / 475 (0.4%) |
| Blocks a shopping agent | 2 / 475 (0.4%) |
Global Disallow: / | 3 / 475 (0.6%) |
Product page layer, what decides whether an AI can quote you (457 pages):
| Signal | Present |
|---|---|
Product JSON-LD | 86.9% |
| Brand | 85.6% |
| Price | 67.4% |
| Availability | 66.7% |
| SKU | 35.7% |
| GTIN | 10.9% |
AggregateRating | 6.1% |
| Structured shipping | 4.6% |
| Structured return policy | 4.6% |
Limits, and they matter.
The list of 480 stores was compiled on 25 June 2026 from the Shopify partner directory: these are agency clients, so likely better maintained than average. The files themselves were all re-read on 13 August. The seven-week gap between building the list and running the measurement explains the 5 stores out of 480 that had become unreachable.
A file may have been published since the test. Finally, we queried each store with an identifiable user-agent rather than impersonating an AI crawler: a store that varies its response by user-agent appears here under its “unknown bot” face.
Check against an independent sample
Because the main list comes from a single source and is seven weeks old, we re-ran the measurement the same day on a second corpus, built independently and without going through agencies: 22 French Shopify stores identified by search then verified one by one (platform signature and product endpoint).
| Signal | Main corpus | Independent corpus |
|---|---|---|
robots.txt | 100% (475) | 100% (22) |
llms.txt | 97.9% | 90.9% |
agents.md | 97.7% | 86.4% |
agent-card.json | 0% | 0% |
| Blocks an AI search crawler | 0.4% | 0% |
| SKU | 35.7% (457) | 36.8% (19) |
| GTIN | 10.9% | 10.5% |
AggregateRating | 6.1% | 0% |
The orders of magnitude hold, and SKU and GTIN land within a point of each other. The second corpus percentages should be read with caution: on 19 to 22 observations the confidence interval is wide and a single site moves the rate by 4 to 5 points. This check does not replace the main measurement, it verifies that the main measurement does not depend on how the sample was built.
llms.txt is not an action, it is a factory default
This is the most counter-intuitive result. Almost every store has the file the GEO consulting industry recommends creating, and almost none of them created it.
Shopify serves /llms.txt, /llms-full.txt and /agents.md natively, and documents customising them since 28 May 2026 (developer changelog). The content is generated from store data: name, URL, sitemap link, policies and discovery endpoints.
Two measurements confirm it on our sample:
- 97% of the
llms.txtfiles observed follow the platform template format. Same header, same structure, same opening section, with the store name injected. llms.txtandagents.mdare the same document. Across the 460 stores where both files could be compared, the median gap is 43 bytes, and 97.8% differ by less than 50 bytes. The difference is one line, the one where the file introduces itself:/llms.txtstates that it mirrors/agents.md, which declares itself canonical.
Customising these files remains possible, through llms.txt.liquid or agents.md.liquid templates (Shopify documentation). But until that work is done, publishing an llms.txt is not a GEO lever on Shopify: it is already there, and it is identical at your competitors.
Worth recalling in passing: Google states explicitly that no machine-readable file and no particular markup is required to appear in AI Overviews or AI Mode (Google Search Central).
The file everyone recommends, nobody publishes
Zero stores out of 475 expose a /.well-known/agent-card.json.
This is not a measurement artefact: our detector does return a valid file on sites that publish one, and a 404 on all 475 stores in the sample. The result is therefore clean, and worth stating plainly given how much room these discovery files now occupy in GEO recommendations.
Our reading: this is not where the priority sits. A file describing your capabilities to an agent is useless while the product page it points to exposes neither a structured price, nor a rating, nor delivery terms. The logical order runs from data to discovery, not the other way round.
Blocking AI crawlers: a problem affecting one store in 250
The advice to “check that your robots.txt does not block AI crawlers” appears in almost every guide. Measured, it covers very few cases.
2.1% of stores name an AI crawler in their robots.txt. 1.1% block a training crawler, which remains a defensible choice: you give away your content for nothing in return. 0.4%, two stores out of 475, block an AI search crawler or a shopping agent, the two families whose blocking actually costs visibility or a customer.
These figures extend our July measurement across 432 stores, which found a single AI search crawler block. The order of magnitude is stable month on month: Shopify ships a permissive robots.txt by default, and breaking it takes manual intervention.
The check is still worth two minutes. It cannot amount to a GEO strategy.
Where the gap actually sits
Put the two layers side by side.
| Layer | Signal | Stores |
|---|---|---|
| Discovery | llms.txt | 97.9% |
| Discovery | agents.md | 97.7% |
| Discovery | sitemap.xml | 97.7% |
| Product | Product JSON-LD | 86.9% |
| Product | Price | 67.4% |
| Product | Availability | 66.7% |
| Product | GTIN | 10.9% |
| Product | AggregateRating | 6.1% |
| Product | Shipping and returns | 4.6% |
The layer the platform handles sits at 98%. The layer that decides whether an engine can quote your product falls between 4.6% and 67%.
A conversational engine asked to compare three products needs four things: a price, an availability value, an identifier to recognise the same item elsewhere, and something to establish trust. On our sample, the price is missing in a third of cases, the product identifier in nine out of ten, and the rating in more than nine out of ten.
This is not a discovery-file problem. It is a matter of product data published in a format engines read, in JSON-LD or microdata, both accepted by Google (Google Search Central).
What we take from it
Three conclusions, in the order we would apply them on a store.
Do not bill for an llms.txt. On Shopify it already exists, it is generated, and it looks like everyone else’s. Customising it can make sense once the rest is in place, not before.
Handle the product layer first. Price, availability, identifier, rating, shipping, returns. That is where the double-digit gaps are, and that is what an engine quotes when it recommends an item.
Check the discovery layer, but do not build on it. Two minutes on robots.txt and sitemap.xml are enough. Beyond that, the time is better spent on product pages.
This measurement will be re-published on the same corpus in February 2027, with the same method, so the change is comparable.
Kamil Kaderbay, founder of Verity Score. Measured 13 August 2026; method and limits detailed above.
Related articles
- Customer reviews: 1 in 4 equipped stores is silent to AI - The 457 product page measurement
- Blocked AI crawlers: the verification procedure - The July measurement across 432 stores
- Shopify, agents.md, llms.txt and UCP: what really changes
- AggregateRating: the rating AI engines actually read
Want to know where your store sits on these signals? The Verity Score Shopify app measures the same layers across your catalog, product page by product page. Install Verity Score from the Shopify App Store →