KnownByLLM

Platform guide · 10 min read

llms.txt for Shopify stores: what to put in it

Shopify already serves the file. The default just doesn't say anything about your store.

Since May 2026 every Shopify online store answers at /llms.txt. Open yours and you will find a well-written document about checkout protocols, agent etiquette, and rate limits, and not one sentence about what you sell, where you ship, or how returns work.

This guide is about the content, not the mechanics. It covers what the default file contains, the six things worth adding, a complete example you can adapt, and the two mistakes that make a customized file worse than the default.

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.

SectionIn the default?What it says
Personal shopping assistantsYesRecommends agents install the Shop skill (shop.app/SKILL.md) for cross-store search and Shop Pay checkout
Commerce Protocol (UCP)YesDiscovery at /.well-known/ucp, MCP endpoint at /api/ucp/mcp, a six-step agent flow, supported protocol versions
Important rulesYesCheckout needs human approval; respect rate limits; pass buyer country and currency
Read-only browsingYesURL patterns: /collections/all, /products/{handle}, /products/{handle}.json, /collections/{handle}/products.json, /search, /sitemap.xml
Store policiesYesLinks to the policies you have published under /policies/
PlatformYesA paragraph about Shopify, with links to shopify.com, shopify.dev, and the UCP spec
What you sell and for whomNoNothing beyond the store name in the H1
Which collections matterNoOnly the generic /collections/all pattern
Shipping regions, costs, delivery timesNoOnly a link to the shipping policy, if you published one
Return window and conditionsNoOnly a link to the refund policy
Sizing, compatibility, how to chooseNoNot 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

  1. Three templates, one fallback chain. templates/agents.md.liquid controls /agents.md and is the fallback for the other two paths. templates/llms.txt.liquid controls only /llms.txt; templates/llms-full.txt.liquid controls only /llms-full.txt. A path with no template falls back to your agents.md.liquid, then to Shopify’s generated default.
  2. Plain text or Markdown with Liquid. The template cannot be a JSON template. Whatever you write is served as text/markdown.
  3. A restricted Liquid context. Only request and agents are available. The agents object gives you store_name, store_url, ucp_discovery_url, mcp_endpoint_url, ucp_versions, currency, and sitemap_url. You cannot loop over collections or pages; the file is meant to be cacheable and hand-written.
  4. 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.
  5. 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