Do You Still Need an llms.txt File on Shopify Now That agents.md Is Canonical?
Shopify generates an agents.md file for every store automatically, and since late May 2026 agents.md — not llms.txt — is the canonical AI-discovery document; your store's /llms.txt and /llms-full.txt URLs just mirror it unless you override them. So the search-bar question has a short answer: you already have one. What's worth twenty minutes is checking what the default actually says, and knowing the three Liquid templates that let you change it when the managed version genuinely isn't enough.
Yes — you already have one, and you did not have to build it. Since late May 2026, every Shopify store automatically serves an agents.md file at its domain root, and Shopify made that file, not llms.txt, the canonical AI-discovery document: your store's /llms.txt and /llms-full.txt URLs now default to mirroring whatever agents.md says, so an agent that requests either path still gets a usable answer. The question worth twenty minutes isn't "do I need one" — it's whether the version Shopify generated for you is actually saying anything useful, and when it's worth writing your own.
What changed, and why it matters if you read an older guide
Before this change, llms.txt was the file most stores either lacked entirely or had bolted on through a third-party app or a URL redirect — a markdown index meant to give large language models a cleaner map of a site than crawling HTML. Shopify's platform-level shift moved the goalposts: agents.md is now the primary, agent-facing description of what a store sells and how an agent can transact with it, covering both browsing (products, collections, search) and Shopify's Universal Commerce Protocol (UCP) and Model Context Protocol (MCP) endpoints that let compatible agents actually check availability or place an order rather than just read a page. llms.txt didn't disappear; it became a pointer that mirrors agents.md by default. If you're reading a 2025-era post about "adding an llms.txt file to Shopify" through a third-party app, it's describing a workaround for a gap that no longer exists on any current Shopify store — the platform ships this natively now, for every plan, with no app required.
What's already in the file Shopify generated for you
You can check this yourself in under a minute: visit yourstore.com/agents.md, then /llms.txt, then /llms-full.txt. On a store that hasn't customized anything, all three return the same managed content, built from a restricted set of store fields:
- Store identity — store name, the store's canonical URL, and its primary currency.
- Commerce endpoints — the UCP discovery URL, the MCP endpoint URL, and the array of UCP protocol versions the store supports, which is how a compatible shopping agent knows it can query stock or attempt a transaction rather than just read text.
- Discovery surface — read-only browsing links for products, collections, and search, plus the store's sitemap URL, so an agent that ignores everything else can still find the sitemap and crawl from there.
- Published policies — whatever policy pages the store has live (return, privacy, terms), since agents making purchase recommendations are meant to be able to check them.
For most stores, this is a genuinely reasonable default — it's more complete than what almost anyone was hand-writing into a bolted-on llms.txt a year ago, and it stays current automatically as store settings change. The gap in most existing coverage of this topic is that it stops there, at "the default is fine for most stores," without saying what "most" excludes.
The three templates, and the order Shopify actually checks them in
Overriding any of this happens through Liquid templates in your theme, and the lookup order matters because it decides which file wins if you only create one of them:
/agents.mdchecks for a customagents.md.liquidtemplate first, and falls back to Shopify's managed default if none exists./llms.txtchecks for a customllms.txt.liquidtemplate first, then falls back to your customagents.md.liquidif you have one, then to the managed default./llms-full.txtfollows the identical pattern: its own template first, thenagents.md.liquid, then the managed default.
In practice that means creating a single agents.md.liquid template is enough to control all three URLs at once, unless you specifically want one of them to diverge — for example, a shorter llms.txt for quick discovery and a longer llms-full.txt with more catalog detail, which is the one legitimate reason to create the path-specific templates separately.
To create one: go to Online Store > Themes, open Edit code on the theme you want to change, right-click the Templates folder, choose New template, and name it agents.md.liquid. The Liquid context here is deliberately restricted — you don't get the usual shop, collections, or articles globals. Instead you get a single agents object with these fields: agents.store_name, agents.store_url, agents.currency, agents.ucp_discovery_url, agents.mcp_endpoint_url, agents.ucp_versions, and agents.sitemap_url. A minimal custom override looks like this:
# {{ agents.store_name }}
Store URL: {{ agents.store_url }}
Currency: {{ agents.currency }}
## Commerce endpoints
- UCP discovery: {{ agents.ucp_discovery_url }}
- MCP endpoint: {{ agents.mcp_endpoint_url }}
- Supported UCP versions: {{ agents.ucp_versions | join: ", " }}
## Sitemap
{{ agents.sitemap_url }}
## Notes for shopping agents
This store ships to the US, UK, Canada, Australia, and New Zealand only.
Gift cards and final-sale items are not returnable — check the return policy
before recommending a purchase to a customer outside a supported region.
That last section is the actual point of overriding the default: free-text guidance the managed version can't include because Shopify doesn't know your shipping restrictions, your return exceptions, or which categories you'd rather an agent not push (clearance stock with no restock, for instance). The restricted agents object won't let you pull in live product or inventory data directly — this is a static, per-deploy document, not a live feed — so keep anything you write here to policy-level guidance that doesn't go stale between edits.
When the default is enough, and when it genuinely isn't
Skip a custom template if your store sells one brand, one currency, and has nothing an agent needs to know beyond "here's the catalog and the policies" — which is most single-brand DTC stores. The managed file already covers that correctly.
Write a custom agents.md.liquid if any of these apply:
- Shipping or fulfillment restrictions an agent should know before recommending checkout — regions you don't ship to, items that ship separately, or categories with different return terms than your standard policy.
- Multi-brand or multi-market setups where the store name and single currency Shopify auto-fills don't represent what's actually being sold under one domain.
- Categories you'd rather an agent not surface — B2B-only pricing tiers, samples, or internal SKUs that are technically live but not meant for a consumer-facing recommendation.
- You want to point agents at content the managed file omits, such as a size guide or a sustainability page, if that's genuinely likely to affect a purchase decision an agent is helping make.
None of this is a substitute for the two things that actually determine whether an agent can find your store in the first place — a robots.txt that isn't blocking AI crawlers, and Product schema markup the agent can parse. We cover both in detail in our guide to fixing AI shopping agent visibility, and it's the more consequential fix for most stores: an excellent agents.md file does nothing if the crawler that would read it is blocked before it gets there. agents.md also doesn't touch whether ChatGPT, Google, Copilot, or Meta can complete a purchase inside their own chat window — that's a separate, per-channel setting we walk through in how the Shopify ChatGPT integration actually works.
How to tell if any of this is working
There's no dedicated analytics view for agents.md requests in the Shopify admin today, so measurement is indirect. Two things are worth checking: whether your web server or CDN logs show requests to /agents.md and /llms.txt from known agent user agents, and whether your store's AI-referred order attribution — visible in the same Agentic sales-channel reporting Shopify already ships — is moving at all. Neither proves a custom file caused a change on its own, so treat this as a background check every few months rather than something you A/B test week to week; the file changes rarely enough that daily monitoring isn't worth the time.
If you haven't checked the more basic visibility fundamentals yet — robots.txt rules and product schema — run your store through our free scanner before spending time on agents.md customization; it catches the crawler-blocking issues that make a well-written discovery file irrelevant. And if you're weighing a genuine multi-brand or B2B setup where the managed default clearly doesn't fit, this is the kind of theme-level Shopify work we do — get in touch if you want a custom template built properly rather than guessed at.
The short version: you don't need to add an llms.txt file to a Shopify store in 2026, because Shopify already generates one, and it's actually agents.md doing the work now. Check what your store's default says, override it only if you have shipping restrictions, multi-brand complexity, or guidance an agent genuinely needs that Shopify's auto-fill can't know — and fix robots.txt and schema first if you haven't, because that's the part that decides whether any of this gets read at all.