llms.txt on Shopify: You Already Have One (2026)
If you run a Shopify store, you almost certainly already have a working /llms.txt — Shopify has generated one for every storefront since 28 May 2026, and keeps it aligned with /agents.md without any theme work. That makes most of the advice still circulating on this topic actively harmful: uploading a Markdown file to your Files area and pointing a URL redirect at it replaces a file Shopify maintains with one you have to remember to update. The useful work on Shopify is not creating the file. It is checking what yours currently says, and fixing the store data it is generated from.
Shopify · Built in
Native since 28 May 2026. Every Shopify store serves /llms.txt, /llms-full.txt and /agents.md with no setup. /agents.md is the canonical agent-discovery document; /llms.txt mirrors it by default.
- Where it lives
- Served by Shopify at https://yourstore.com/llms.txt. If you override it, the template lives at theme/templates/llms.txt.liquid (Online Store → Themes → Edit code → Templates).
- How it works
- Liquid template with a fallback chain. Shopify resolves /llms.txt to templates/llms.txt.liquid if present, then templates/agents.md.liquid, then its own generated default. That precedence governs /llms.txt only — /agents.md and /llms-full.txt are unaffected by an llms.txt.liquid override.
Platform behaviour verified against primary documentation on August 15, 2026. This is a fast-moving area — if you are reading long after that date, re-check the sources at the end.
Before you start
- A published Shopify storefront (the files are served on the live domain, not on a password-protected store).
- Theme code access — Online Store → Themes → Edit code — only if you intend to override the default.
Implementation on Shopify
1.Look at what Shopify already serves
Before changing anything, open https://yourstore.com/llms.txt and https://yourstore.com/agents.md in a browser. Shopify generates both from your store data, so what you see is what an agent sees. Read it as if you had never heard of your brand: does it say what you sell, who you are, and where you ship? Most stores discover the file is fine and the underlying store description is the weak part.
Check all three endpoints and their content types curl -sI https://yourstore.com/llms.txt | head -n 3 curl -sI https://yourstore.com/agents.md | head -n 3 curl -s https://yourstore.com/llms.txt | head -n 402.Decide whether you actually need to override it
Shopify's own guidance is not to add an llms.txt.liquid template in most cases, because the managed default stays aligned with /agents.md with no maintenance from you. Add one only when you have a specific requirement for /llms.txt to say something different from /agents.md. If you simply want better content across all three files, edit templates/agents.md.liquid instead — /llms.txt and /llms-full.txt fall back to it.
3.If you do override, create the template in the right place
In Online Store → Themes → Edit code, right-click the Templates folder, choose New File, and name it llms.txt.liquid. It must be a Liquid template — Shopify will not accept a JSON template at this path. Duplicate your live theme first: this is a live storefront route, and a broken template changes what agents read on your production domain.
4.Write it against the objects that are actually available
This is where most copied examples break. Inside llms.txt.liquid you have access to the agents object and the request object — and not much else. The global objects you would normally reach for in a Liquid template, including shop, collections, articles and products, are not available here. An example that loops over collections will render empty rather than error, so the file looks fine in the editor and ships broken.
5.Fix the store data, not just the file
A well-formed llms.txt pointing at a store with no stated shipping regions, no return policy text and a one-line store description does not help an assistant answer questions about you. The generated file can only reflect what your store already declares, so the highest-value work is usually in your policies, your About page and your product descriptions — not in the template.
Example
A minimal llms.txt.liquid override, using only properties Shopify documents for this path (verified against shopify.dev on 2026-08-15). There is no `agents.content` property — several guides show one, and it renders empty.
# {{ agents.store_name }}
{{ agents.store_url }}
## Machine endpoints
- Sitemap: {{ agents.sitemap_url }}
- MCP endpoint: {{ agents.mcp_endpoint_url }}
- UCP discovery: {{ agents.ucp_discovery_url }}
## About this store
Domain: {{ request.host }}
## Notes for agents
- Shipping, returns and payment terms are published in the store policies.
- Prices shown on the storefront are authoritative; cached copies may be stale.
- For wholesale or B2B enquiries, use the contact route linked from the storefront.What catches people out
The upload-and-redirect method is now the wrong answer
Most guides still ranking for this query tell you to upload a Markdown file to Shopify's Files area and create a URL redirect from /llms.txt to the CDN URL. That was a reasonable workaround before native support existed. Today it shadows a file Shopify already generates and keeps current, and it hands you a maintenance job with no owner. If you previously set this up, remove the redirect and check what Shopify serves instead.
Most global Liquid objects are unavailable at this path
llms.txt.liquid exposes the agents and request objects only. shop, collections, articles and products are not available. Because Liquid renders unknown objects as empty rather than throwing, a template copied from a generic Liquid tutorial produces a file that is syntactically valid and substantively empty — and nothing in the theme editor warns you.
/agents.md is canonical, not /llms.txt
Shopify treats /agents.md as the canonical agent-discovery document and /llms.txt as an alternate URL that mirrors it. If you override only llms.txt.liquid, you have created a divergence you now have to maintain in two places. Editing templates/agents.md.liquid changes all three paths at once and is the right lever for almost every store.
It must be Liquid, not JSON
Shopify's newer templates are frequently JSON. This one cannot be. The file has to be named llms.txt.liquid and contain Liquid; a JSON template at this path will not work.
Password-protected and preview stores do not serve it usefully
The endpoints are part of the live storefront. Checking them on a development store behind a password, or on a myshopify.com preview URL, will not tell you what agents see on your real domain. Verify on the customer-facing domain.
Verify it worked
1.Confirm the endpoint returns 200 as plain text
A successful check returns HTTP 200 with a text content type. A 404 means the storefront is not serving it (most often because you are testing a password-protected store), and an HTML content type means a redirect or app is intercepting the path.
curl -sI https://yourstore.com/llms.txt | grep -iE "^(HTTP|content-type)"2.Confirm your override is the thing being served
After adding llms.txt.liquid, fetch the file and look for a string that only exists in your template. If you see Shopify's generated content instead, the template did not take effect — check the filename exactly, and confirm you edited the published theme rather than a duplicate.
curl -s https://yourstore.com/llms.txt | grep -i "notes for agents"3.Check for a leftover redirect shadowing the path
In Shopify admin, open Online Store → Navigation → URL Redirects and search for /llms.txt. A redirect left over from the old workaround takes precedence over the template and is the most common reason an override appears to do nothing.
What this will not do
- Shopify's generated file describes your store, not your marketing. If your store data is thin, the file will be thin — the template cannot invent facts.
- Overriding llms.txt.liquid makes that file yours to maintain. Shopify stops keeping it aligned with /agents.md, and nothing will remind you when your catalogue or policies change.
- The available Liquid surface at this path is narrow, so a genuinely dynamic file built from live catalogue data is not possible here the way it would be in a normal template.
- llms.txt is a proposed convention. Shopify serving it does not mean any assistant is obliged to read it, and no engine has committed to using it as a ranking or citation input.
See what an answer engine can actually tell about your site
Publishing the file is the easy half. Our free checker reads your site the way an assistant would and reports which facts are missing — owner, pricing, service area, contact route — because those are what stop you being described accurately, with or without an llms.txt.
Sources
Platform facts on this page come from the documentation below, checked on August 15, 2026.
- Shopify — llms.txt.liquid template referenceprimary
- Shopify changelog — Customize /llms.txt, /llms-full.txt and /agents.md (28 May 2026)primary
- Shopify — llms-full.txt.liquid template referenceprimary
Other platforms
Written and technically verified by Jaeden Doody, founder of StillAwake Media, who builds and maintains the Shopify implementations described here. Implementation verified August 15, 2026.