Skip to main content
Available on ShopifyThe Shopify app that audits and fixes what AI reads about your products.Verity Score is on ShopifyInstall app
GEO

GEO barometer: what 475 Shopify stores actually do

7 min read Updated Recently updated
#geo #barometer #llms-txt #agents-md #schema-org #robots-txt #shopify #agent-card #structured-data
Share

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):

FilePresent
robots.txt475 / 475 (100%)
llms.txt465 / 475 (97.9%)
Valid sitemap.xml464 / 475 (97.7%)
agents.md464 / 475 (97.7%)
/.well-known/agent-card.json0 / 475 (0%)

robots.txt layer, what the merchant decides:

RuleStores
Names at least one AI crawler10 / 475 (2.1%)
Blocks a training crawler5 / 475 (1.1%)
Blocks an AI search crawler2 / 475 (0.4%)
Blocks a shopping agent2 / 475 (0.4%)
Global Disallow: /3 / 475 (0.6%)

Product page layer, what decides whether an AI can quote you (457 pages):

SignalPresent
Product JSON-LD86.9%
Brand85.6%
Price67.4%
Availability66.7%
SKU35.7%
GTIN10.9%
AggregateRating6.1%
Structured shipping4.6%
Structured return policy4.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).

SignalMain corpusIndependent corpus
robots.txt100% (475)100% (22)
llms.txt97.9%90.9%
agents.md97.7%86.4%
agent-card.json0%0%
Blocks an AI search crawler0.4%0%
SKU35.7% (457)36.8% (19)
GTIN10.9%10.5%
AggregateRating6.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.

The two GEO layers measured across 475 French Shopify stores: a discovery layer provided by the platform at 97.7% and above, except agent-card.json at 0%, against a product page layer falling from 86.9% to 4.6%
Figure 1: the layer the platform handles sits at 98%. The layer deciding whether an engine can quote your product falls between 4.6% and 67%.

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.txt files observed follow the platform template format. Same header, same structure, same opening section, with the store name injected.
  • llms.txt and agents.md are 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.txt states 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.

LayerSignalStores
Discoveryllms.txt97.9%
Discoveryagents.md97.7%
Discoverysitemap.xml97.7%
ProductProduct JSON-LD86.9%
ProductPrice67.4%
ProductAvailability66.7%
ProductGTIN10.9%
ProductAggregateRating6.1%
ProductShipping and returns4.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.



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 →