lunalink.ai
← lunalink.ai blog
October 10, 2026 · The lunalink.ai team

Should Shopify merchants add llms.txt if Shopify already serves one?

Hands typing on a laptop showing an e-commerce website in a modern office setting.
Photo by Shoper .pl on Pexels

Your store may already have an `llms.txt` file.

That makes this an easy job to overdo.

A new file sounds like progress. But Shopify now provides `/agents.md`, `/llms.txt`, and `/llms-full.txt` automatically. For most stores, Shopify says its managed default is enough. You only need to customise it when you have a clear reason for its content to differ from Shopify's standard agent document.

So the first question isn't, “How do I add llms.txt?”

It's, “What is missing from the one my store already has?”

Check the file you already have

Open these addresses in your browser, replacing `yourstore.com` with your primary domain:

  • `https://yourstore.com/agents.md`
  • `https://yourstore.com/llms.txt`
  • `https://yourstore.com/llms-full.txt`

Do this on the bare primary domain. Shopify serves these files there, not on a market-prefixed address such as `yourstore.com/en/llms.txt`.

Shopify treats `/agents.md` as the main agent-discovery document. By default, `/llms.txt` mirrors it. `/llms-full.txt` does too, unless you customise those files.

If those URLs load and the managed content fits your needs, stop there. You don't need a second system to maintain.

That is also how Descriva treats it. Shopify's default `/llms.txt` counts as done in the app's AI readiness check. The point is to find a real gap, not create one.

Why a custom file can create work

A custom file takes over a small but ongoing responsibility.

Shopify's documented path is:

  • Shopify admin
  • Online Store
  • Themes
  • Edit code
  • Templates
  • `llms.txt.liquid`

It must be a Liquid template. A JSON template won't work here.

Once you add `llms.txt.liquid`, it overrides Shopify's default content for `/llms.txt` only. It does not change `/agents.md` or `/llms-full.txt`.

That detail matters. A merchant might add product information to a custom `/llms.txt`, then assume all three discovery URLs now say the same thing. They don't.

Shopify checks for files in this order:

1. `llms.txt.liquid` 2. `agents.md.liquid` 3. Shopify's generated default

If you need all three files to share custom content, Shopify's guidance is to edit `agents.md.liquid` instead. If you only need `/llms.txt` to differ, use `llms.txt.liquid`.

There is another practical limit. Custom templates do not get the normal range of Shopify global objects. Shopify documents access to `request` and `agents`, but not standard objects such as `shop`, `articles`, or `collections`.

That means a hand-built file is not automatically a living catalogue feed. If its content names products, collections, policies, or links, you need a plan for keeping it current.

When adding one makes sense

A custom file can be sensible when you can name the exact information it needs to add.

Say your store sells replacement parts. You may want a separate `/llms.txt` with a maintained list of product pages, collection pages, and a short note about how parts fit together.

Or you may have a reason for `/llms.txt` to say something different from `/agents.md`. That is the use case Shopify documents for `llms.txt.liquid`.

The key word is specific.

“AI is important” is not a content requirement.

“We need this file to list every current product URL” is one. But it also creates a maintenance requirement. A list written today can be wrong after products change, collections are removed, or a seasonal range comes down.

Before adding a custom template, write down two things:

  • What information is missing from the Shopify-managed file?
  • Who will keep that information correct after the next catalogue change?

If you can't answer both, use Shopify's default.

Don't confuse this with Shopify Catalog

`llms.txt` is not how Shopify sends products to agentic storefronts.

Shopify says product data sent to channels such as ChatGPT and Microsoft Copilot through Shopify Catalog works independently of `/robots.txt`. The same research does not show that a custom `llms.txt` is required for that product distribution.

These are separate jobs.

Your product's Catalog eligibility depends on the product and store conditions Shopify checks. Descriva's Agent view shows what Shopify Catalog provides for each product and flags issues such as a missing image, a zero price, an unpublished product, search-engine hiding, or a password-protected store.

Your discovery files are a different part of the store's public surface.

It is worth checking both. It is not useful to treat a custom `llms.txt` as a fix for every AI shopping problem.

How Descriva handles the choice

We built Descriva without theme-write permission on purpose. An app should not be able to edit a merchant's theme unless it truly needs to.

The trade is straightforward.

When a store wants a custom `llms.txt` that lists its products, Descriva provides a theme template for the merchant to paste. It does not write into the theme itself. Afterward, it reads the live URL rather than assuming the paste worked.

That came from a lesson in our own work. We have seen how easy it is for a check to look complete while missing part of the store. Shopify's `/products.json` returns no more than 250 products on a page. When we built our own `llms.txt` builder, we had to handle pagination. Without it, a larger catalogue could quietly become a partial list.

So if you use any generated product list, check it against your catalogue.

A quick test takes less than a minute:

  • Open your `/llms.txt` file.
  • Find a product added recently.
  • Find a product beyond the first 250 in your admin's product list, if your store has that many.
  • Open the product link from the file.

If the product is absent or the link fails, the file needs attention.

Descriva can also check the live `llms.txt` file and the `robots.txt` rules that allow AI crawlers to read the store. But the best outcome may still be leaving Shopify's managed file alone.

Use the default unless you can name the gap

The sensible default is simple:

  • Keep Shopify's managed `/agents.md`, `/llms.txt`, and `/llms-full.txt`.
  • Check that the URLs load on your primary domain.
  • Add a custom template only for a defined information need.
  • Treat any custom product list as content that needs maintenance.

A custom file is not a badge of AI readiness. It is a store document, and store documents need to stay true.

If you want a second look, run the public scan at lunalink.ai or install Descriva for its first AI visibility check. Start by checking the files Shopify already gives you.

Sources

shopifyllms-txtai-readinessdescriva

See how AI assistants actually read your store — a free 30-second scan, no install and no signup.

Check my store