llms.txt for Shopify: what it is, what Shopify generates, what is still missing
2026-07-31
ShopifyAsk about llms.txt for Shopify and you usually get one of two answers: that it is the file that makes AI recommend your store, or that it does nothing at all. Neither is right. It is a small file with a narrow job, Shopify already writes one for you, and it sits inside the single category of an agent readiness audit that is both easiest to pass and least decisive on its own.
What llms.txt is
llms.txt is a plain markdown file served at the root of a site, at /llms.txt.
Its job is orientation. It tells a language model what the site is and points at
the pages that are actually worth reading, so a model does not have to infer the
shape of a store from whatever page it happened to land on. In practice that
means a heading with the site name, a short summary, and grouped lists of links
with a sentence of context each.
It is not a permission system. That distinction matters, because robots.txt is
the file people confuse it with. robots.txt is access control: it grants or
denies named user agents by path, and crawlers honour it by convention. It says
nothing about what is worth reading. llms.txt is the mirror image: it has no
authority to allow or block anything, it only offers orientation to a client
that has already been let in. The two solve different problems and a store needs
both. Publish an excellent llms.txt behind a robots.txt that blocks ClaudeBot
and you have drawn a careful map to an address the visitor is not permitted to
enter. Sextant treats them as separate checks for exactly that reason:
discovery.llms_txt for the map, crawl.claudebot for the door.
llms-full.txt is the expanded variant of the same idea. Rather than linking out
to the important pages, it inlines the content itself, so a model can take the
whole thing in one fetch instead of following a chain of links. Sextant scores it
separately as discovery.llms_full_txt.
One honest caveat. llms.txt is a convention, not a ratified standard. There is no standards body behind it and no guarantee that any particular model fetches it. Adoption is real and growing, but it is voluntary on both sides. The reason to publish one is that it costs close to nothing, not that it is binding on anyone.
What Shopify generates
Since May 2026, Shopify ships llms.txt, agents.md and UCP support natively. That followed Shopify enabling agentic storefronts for eligible merchants in March 2026, which is roughly the point at which the switch was flipped for the platform as a whole. The practical consequence is that if you sell on Shopify you very likely have files at these paths right now and did not put them there.
Which means the useful question is not what to write, it is what you already have. Go and read it. Open these four URLs against your own domain:
https://yourstore.com/llms.txt
https://yourstore.com/llms-full.txt
https://yourstore.com/agents.md
https://yourstore.com/.well-known/ucp
A browser tab is enough, or curl if you prefer. When you read what comes back,
check four things:
- Does it describe your store, or the platform? A file that explains what Shopify is does not explain what you sell.
- Does it point at the catalogue? Collection URLs, a product listing, the sitemap. If an agent cannot get from this file to your products, it has been oriented toward nothing.
- Does it name your policy pages? Returns, shipping, contact. These are the pages an agent reads to answer pre-purchase questions.
- Is it current? It should reflect the collections you sell today.
Those four URLs map to discovery.llms_txt, discovery.llms_full_txt,
discovery.agents_md and discovery.ucp_manifest. The last two are their own
subject: see agents.md for ecommerce and
the UCP manifest explained.
What is still missing
A generated discovery file does not close three gaps, and they are the expensive ones.
It cannot fix product schema. llms.txt can walk an agent to your product
page. The page still has to be readable when the agent arrives. Without Product
JSON-LD there is no declared price, currency, availability, SKU or rating, only
prose and markup that has to be guessed at. That is product.jsonld failing and
taking every check beneath it down with it. A good llms.txt in front of a store
with no Product JSON-LD simply gets the agent to a page it cannot parse, faster.
This is the most common version of
a Shopify store being invisible to AI.
It cannot create returns or shipping structured data. AI shopping agents
select merchants partly on structured data completeness, in particular
AggregateRating, MerchantReturnPolicy, OfferShippingDetails and FAQPage. Linking
to /policies/refund-policy from llms.txt does not produce a
MerchantReturnPolicy node. The policy has to be attached to the Offer as data.
Sextant reports those as merchant.return_policy and
merchant.shipping_details.
It does nothing if robots.txt blocks the fetch. Two lines are enough to make the whole exercise moot for one operator:
User-agent: GPTBot
Disallow: /
That is crawl.gptbot failing, and the same applies to ClaudeBot,
OAI-SearchBot, PerplexityBot and Google-Extended. Check all five before you
spend any time on discovery files.
The shape of this is worth stating plainly. Discovery is weighted at twenty percent, and it is the cheapest category to pass, because the files are short and on Shopify they are largely written for you. Crawl access and product schema are worth twenty five percent each and both live in your robots.txt and your templates. Fix crawl access first, product schema second, merchant data third. Discovery is the part you can do last and still finish the week ahead, which is the opposite of how it is usually sold. If that ordering is new to you, what agent readiness means covers the full weighting.
If you want to see what your store actually serves at those four URLs, and which of the other thirty six checks it passes, run a free scan. It reads public pages only and installs nothing.