The 30-second answer: Shopify serves llms.txt for you, so your job is the store-specific part
As of September 2026, a Shopify store’s /llms.txt is a mirror of /agents.md, a file Shopify generates and maintains for every store. It tells AI agents how to discover the store’s Universal Commerce Protocol endpoints, how to search, build a cart, and check out, and which read-only URLs exist. It links to your published policies and ends with a paragraph about Shopify itself.
What it does not do is describe your store. There is no line saying what you sell, who it is for, which collections matter, what shipping costs, or how many days a customer has to return something. Those are exactly the questions people ask an AI assistant before they buy, and today the assistant answers them by reading whatever product page it lands on.
The fix is one template file: templates/llms.txt.liquid. Keep the protocol section (Shopify exposes the values as Liquid variables), then add a short curated description of the store: one paragraph of positioning, five to fifteen collection links with a sentence each, shipping and return rules written out in plain sentences, and links to your sizing and support pages.
What the default file contains (September 2026)
The table below is taken from the file Shopify serves on live stores, checked on September 25, 2026. Your store’s copy will have the same sections with your domain filled in.
| Section | In the default? | What it says |
|---|---|---|
| Personal shopping assistants | Yes | Recommends agents install the Shop skill (shop.app/SKILL.md) for cross-store search and Shop Pay checkout |
| Commerce Protocol (UCP) | Yes | Discovery at /.well-known/ucp, MCP endpoint at /api/ucp/mcp, a six-step agent flow, supported protocol versions |
| Important rules | Yes | Checkout needs human approval; respect rate limits; pass buyer country and currency |
| Read-only browsing | Yes | URL patterns: /collections/all, /products/{handle}, /products/{handle}.json, /collections/{handle}/products.json, /search, /sitemap.xml |
| Store policies | Yes | Links to the policies you have published under /policies/ |
| Platform | Yes | A paragraph about Shopify, with links to shopify.com, shopify.dev, and the UCP spec |
| What you sell and for whom | No | Nothing beyond the store name in the H1 |
| Which collections matter | No | Only the generic /collections/all pattern |
| Shipping regions, costs, delivery times | No | Only a link to the shipping policy, if you published one |
| Return window and conditions | No | Only a link to the refund policy |
| Sizing, compatibility, how to choose | No | Not mentioned |
The default is good at its job, which is letting a buying agent transact safely. It is not a description of the store, and Shopify’s own documentation says as much: the managed file is “all you need” for most stores. That is true for transacting. It is not true for being described accurately.
How customization works, in five facts
- Three templates, one fallback chain.
templates/agents.md.liquidcontrols/agents.mdand is the fallback for the other two paths.templates/llms.txt.liquidcontrols only/llms.txt;templates/llms-full.txt.liquidcontrols only/llms-full.txt. A path with no template falls back to youragents.md.liquid, then to Shopify’s generated default. - Plain text or Markdown with Liquid. The template cannot be a JSON template. Whatever you write is served as
text/markdown. - A restricted Liquid context. Only
requestandagentsare available. Theagentsobject gives youstore_name,store_url,ucp_discovery_url,mcp_endpoint_url,ucp_versions,currency, andsitemap_url. You cannot loop overcollectionsorpages; the file is meant to be cacheable and hand-written. - It replaces, not appends. Once you add
llms.txt.liquid, the default content for that path is gone. If you want agents to keep finding the protocol endpoints, write them back in using the variables above. - Size and caching. A Liquid file is limited to 256 KB. Shopify also warns that the file is broadly cached and served to every agent, so do not put personal contact details in it. A good file is a few kilobytes.
The six things worth adding
1. One paragraph that says what the store is
Put it in the blockquote directly under the H1, the position the llms.txt spec reserves for a summary. Say what you sell, for whom, from where, and in which currency and languages. “Handmade ceramic tableware from Kyoto, shipped worldwide from Japan, priced in JPY” answers four questions an assistant would otherwise have to infer.
2. The collections that matter, with a sentence each
Five to fifteen links to /collections/<handle> pages, ordered by how you would explain the store to a person. Each link gets a one-line description: what is in it, and what kind of buyer it is for. Skip automated collections such as “New arrivals” unless they are how customers actually shop. Do not list individual products; the collection page and the sitemap already carry them.
3. Shipping and returns, written out
This is the part most stores get wrong by linking instead of writing. Shopify’s default robots.txt disallows /policies/ for all user agents, so a crawler that respects robots.txt never reads your refund or shipping policy page. Write the essentials as two or three sentences inside the file: regions you ship to, typical delivery time, the free shipping threshold, the return window, and who pays return postage. Then link to a normal page under /pages/ that holds the full text.
4. How to choose: sizing, compatibility, care
Every store has a page it wishes customers would read before ordering: a size chart, a compatibility table, a materials or care guide. Link them here with a line that says which question each one answers. These pages are the ones assistants quote when a buyer asks “will this fit” or “does it work with”.
5. Support and FAQ pages
The FAQ page, the contact or support page, order tracking, and the page that explains pre-orders or subscriptions if you run them. Keep it to the pages that answer questions; the About page belongs here only if it says something a buyer needs.
6. A short Optional section for the rest
The blog, the wholesale or B2B page, press, careers. Under ## Optional so a reader with a small budget can stop before it.
A complete example
This is a full templates/llms.txt.liquid for a fictional store. The first and last blocks keep the protocol information from the default by using the agents object; everything in between is the part only you can write.
# {{ agents.store_name }}
> Handmade ceramic tableware from Kyoto. We ship worldwide from Japan; prices are in {{ agents.currency }}. This file is a curated guide for AI assistants; the agent-facing protocol description is at {{ agents.store_url }}/agents.md.
## Shop by collection
- [Dinner plates](/collections/plates): 18 to 27 cm, dishwasher-safe, sold singly or in sets of four.
- [Bowls](/collections/bowls): rice, noodle, and serving bowls. Most popular with first-time buyers.
- [Tea sets](/collections/tea): teapots, cups, and matching trays. Gift-boxed on request.
- [Seconds](/collections/seconds): cosmetic flaws, 30 to 50% off, final sale.
## Shipping and returns
We ship to Japan, the US, Canada, the EU, the UK, Australia, and Singapore. Orders leave the kiln within 3 business days; international delivery takes 5 to 10 days by express courier. Shipping is free in Japan above 8,000 JPY and worldwide above 25,000 JPY. Unused items can be returned within 30 days of delivery; the buyer pays return postage except for damaged or incorrect items. Seconds are final sale.
- [Shipping details](/pages/shipping): rates by region, customs and duties, tracking.
- [Returns and breakage](/pages/returns): how to report an item that arrived broken.
## Choosing and caring for pieces
- [Size guide](/pages/size-guide): plate and bowl dimensions with photos next to common Western sizes.
- [Care guide](/pages/care): dishwasher, microwave, and oven guidance by glaze type.
## Help
- [FAQ](/pages/faq): gift wrapping, lead times for custom orders, wholesale minimums.
- [Contact](/pages/contact): support hours and expected reply time.
## For commerce agents
- UCP discovery: {{ agents.ucp_discovery_url }}
- MCP endpoint: {{ agents.mcp_endpoint_url }}
- Sitemap: {{ agents.sitemap_url }}
- Product JSON: {{ agents.store_url }}/products/{handle}.json
## Optional
- [Journal](/blogs/journal): studio notes and glaze experiments.
- [Wholesale](/pages/wholesale): for shops and restaurants.
Two details to notice. The shipping paragraph is prose, not a link, because a link to /policies/shipping-policy would be blocked for most crawlers. And the collection list is short and opinionated: the Seconds collection is there because “do you sell discounted seconds” is a real question, while the automated New Arrivals collection is not.
Two ways to make it worse than the default
Dropping the protocol section. If your template only describes the store, agents that were relying on the default to find the UCP discovery URL and the MCP endpoint lose them. Keep the “For commerce agents” block, or put your store description in agents.md.liquid instead so all three paths carry both halves.
Pasting the catalog. Some apps generate an llms.txt with every product, its price, and its stock level. That is a feed, and it goes stale the moment a price changes, while the file is cached and served for a long time. Prices and availability belong in the live product JSON and in Shopify Catalog. In llms.txt, describe categories and rules, not SKUs.
Checking the result
After saving the template, request the file with a plain HTTP client rather than a browser, so you see exactly what a crawler sees:
curl -sL https://your-store.com/llms.txt | head -20 curl -sI https://your-store.com/llms.txt | grep -i content-type curl -s https://your-store.com/robots.txt | grep -i policies
The first command should show your H1 and blockquote. The second should report text/markdown. The third will show the Disallow: /policies/ lines, a reminder of why the shipping rules are written inline. Then run the file through a validator to catch a missing H1, links that use relative paths where an absolute URL was intended, or a section heading that was accidentally an H1.
Validate your store's llms.txt
Paste your store URL and the validator fetches /llms.txt, checks the structure against the spec, and lists every link it found so you can see what an assistant will see.
Open the validator →FAQ
Does my Shopify store already have an llms.txt?
Yes, if you use the Shopify online store (not a headless front end). Since Shopify's developer changelog entry of May 28, 2026, every store serves /agents.md, and /llms.txt and /llms-full.txt return the same content unless you add your own template. Open https://your-store.com/llms.txt to see it. The default describes how AI agents can transact with the store; it does not describe what you sell.
Do I need an app to customize llms.txt on Shopify?
No. In the theme code editor, add a template named llms.txt.liquid (or agents.md.liquid to change all three files at once). Plain text or Markdown with Liquid is fine. Apps are useful only if you want the file regenerated automatically from your catalog, which is rarely what you want anyway: a curated file beats a dumped one.
Can I loop over my collections in llms.txt.liquid?
No. Shopify renders these templates in a restricted Liquid context so they can be cached broadly. Only the request object and the agents object are available; shop, collections, products, and pages are not. You write the collection list by hand, which is also the right way to curate it.
Should I list every product?
No. A store with more than a few dozen products cannot fit a useful description of each one, and the file is a table of contents, not a feed. List the collections and guides that help an AI answer the questions people actually ask, and let the sitemap, the collection pages, and Shopify Catalog carry the product-level data.
Why put shipping and return rules inline instead of linking to the policy pages?
Because the default robots.txt that Shopify generates disallows /policies/ for every user agent (checked on several live stores in September 2026). A crawler that respects robots.txt will not read your refund or shipping policy page. Two or three plain sentences inside llms.txt, plus a link to a normal /pages/ page with the full text, are what an AI can actually use.
Will this get my products into ChatGPT or Google's AI Mode?
Not by itself. Product availability inside ChatGPT, Copilot, and Google's AI Mode is handled by Shopify Catalog and the commerce protocols, and as of September 2026 those channels are tied to selling to US buyers. llms.txt helps with the other half: when an assistant reads your site to answer a question about shipping, sizing, or what you sell, it finds a clear, current summary instead of guessing from a product page.
Next steps
- → How to write llms.txt by hand: a 30-minute walkthrough (the general method the Shopify version follows)
- → AI crawlers list: which bots to allow in robots.txt (which bots respect the /policies/ block and which do not)
- → llms.txt examples: 8 real files, annotated
- → All Learn articles