llms.txt on Shopify
Shopify does not let you put arbitrary files at the domain root, so /llms.txt is not directly writable. What you can actually do, and which workarounds are worth it.
Shopify serves theme assets from /cdn/ and controls the root itself. robots.txt is editable through a theme template; almost nothing else at the root is.
Serving /llms.txt from Shopify.
Understand what Shopify will and will not serve
Files you upload under Settings → Files are served from Shopify's CDN at a /cdn/shop/files/ path, not from your domain root. Theme assets are the same. Shopify reserves the root for URLs it controls, which is why there is no "upload this to the root" option anywhere in the admin. The one exception it has carved out is robots.txt, via the robots.txt.liquid template.
Check whether Shopify now serves one for you
Shopify has been adding AI-crawler features to the platform, and root-level file support is exactly the kind of thing that arrives without an announcement reaching store owners. Fetch the URL on your own store before building a workaround for a problem the platform may have solved.
curl -sI https://your-store.myshopify.com/llms.txt | head -1
curl -sI https://your-custom-domain.com/llms.txt | head -1Publish the index as a regular page instead
The workaround that stays within the platform: create a page in Online Store > Pages whose content is your index, and link it from your footer menu so people and crawlers can reach it. Shopify already lists published pages in the sitemap it generates, so there is nothing to add to sitemap.xml. Do not reach for robots.txt.liquid here either - robots.txt has no directive that points at a page like this, and a Sitemap: line only takes an XML sitemap. This is a standalone fallback, not a file at /llms.txt - no honest guide will tell you otherwise - and a client that fetches that exact path will not find it.
If you need the real path, put a proxy in front
A CDN or reverse proxy in front of your storefront - Cloudflare being the common one - can answer /llms.txt itself before the request reaches Shopify. A Cloudflare Worker or a bulk redirect rule does it in a few lines. This is a real infrastructure change with real failure modes, so it is worth it only if you have decided the exact path matters.
What Shopify gets wrong.
The failures below are specific to Shopify. A generic llms.txt guide will not mention any of them.
A Shopify app that claims to add llms.txt to the root
The Shopify-specific thing to be sceptical about. Apps cannot write to the root either - they have the same platform constraints you do. What an app can do is create a page on your store and present it as your llms.txt. Before installing one, ask what URL the file will actually be served from, and verify it with curl afterwards.
The .myshopify.com domain versus your custom domain
Anything you set up is reachable on both hostnames, and your .myshopify.com domain canonicalises to your custom domain. Test on the domain customers and crawlers actually use, or you will validate a URL nobody visits.
Theme updates overwriting robots.txt.liquid
robots.txt.liquid is a theme file. Changing themes, or updating one that ships its own copy, replaces it - silently, and with no indication that a customisation was lost. Keep your additions documented somewhere outside the theme.
Blocking AI crawlers in robots.txt while inviting them elsewhere
Shopify's robots.txt defaults change over time, and several AI user-agents have been added to platform-level blocks. If you publish an index for AI clients while robots.txt tells those same clients to stay out, the block is what they obey.
Next to read.
Questions, answered.
Can you add an llms.txt file to Shopify?
Where does Shopify put files I upload in Settings → Files?
Is there a Shopify app that adds llms.txt?
Does Shopify block AI crawlers by default?
An llms.txt will not fix a site AI cannot read.
Before writing an index for AI clients, check that they can fetch your pages at all. LintPage runs 60 checks against a URL in about 30 seconds - free, no signup.
run a full scan →