Agentic commerce

Shopify llms.txt and agents.md: make your store AI-readable

Shopify now lets you customize /llms.txt, /llms-full.txt and /agents.md from your theme. Here is how the agents.md.liquid template works and what to put in it.

Bas Lefeber

Founder, learnshopify.dev · June 19, 2026 · 7 min read

If you read the Spring '26 Edition for developers and walked away with one question, it was probably this: an AI agent is going to read my store on a shopper's behalf, so what exactly does it read? As of late May 2026 you get to decide. Shopify added theme templates that control three URLs every store now serves: /llms.txt, /llms-full.txt, and the canonical one, /agents.md. This is the storefront equivalent of writing the briefing an AI reads before it talks about your products.

For years the only file that spoke to crawlers was robots.txt, a list of what bots may and may not fetch. These new files are the opposite posture. Instead of gatekeeping, they hand a language model a clean, structured summary of what your store is and where the good data lives. Get this right and the agents quoting your catalog are working from your words, not from whatever they scraped off a cluttered HTML page.

Diagram of an AI agent requesting /agents.md, /llms.txt and /llms-full.txt from a Shopify store, with each URL resolving through a theme template (agents.md.liquid, llms.txt.liquid, llms-full.txt.liquid) and falling back to agents.md.liquid then the Shopify-generated default.
Each AI-discovery URL resolves through a theme template, falling back to agents.md.liquid and then to Shopify's generated default.

The short version

Every Shopify store now serves /agents.md (canonical), plus /llms.txt and /llms-full.txt for compatibility. To control what they say, add Liquid templates to your theme: templates/agents.md.liquid, templates/llms.txt.liquid, and templates/llms-full.txt.liquid. If a URL has no template it falls back to agents.md.liquid, then to Shopify's auto-generated default. So one good agents.md.liquid covers all three.

What llms.txt, llms-full.txt and agents.md actually are

Two conventions are colliding here, and it helps to keep them separate. llms.txt is an open proposal from Jeremy Howard of Answer.AI (September 2024). The idea: a single Markdown file at the root of a site that gives a language model a curated map of the most important content, so it does not have to wade through navigation, scripts, and CSS to find the substance. The spec is deliberately simple: an H1 with the site name, a blockquote summary, then H2 sections linking to key pages. llms-full.txt is the same idea expanded into one long document with the content inlined rather than linked.

agents.md is the newer, commerce-flavored convention, and it is the one Shopify treats as canonical. Where llms.txt is written for a model summarizing a page, agents.md is written for an autonomous agent that needs to act: it points at machine-readable entry points like your catalog feed, your sitemap, and the agent-commerce endpoints a shopping agent would call to browse and check out. Think of llms.txt as "here is what we are, in prose" and agents.md as "here is how to do business with us, in a format a machine can follow."

This matters now because of the rest of Spring '26. Shopify's push into agentic commerce, including the Universal Commerce Protocol and the Catalog API, assumes agents will discover and transact against stores programmatically. These three files are the front door. They are how an agent figures out, in seconds, what your store sells and how to interact with it without rendering a single pixel of your theme.

How Shopify resolves the three URLs

The behavior is documented in Shopify's changelog entry from May 28, 2026 and the agents.md.liquid template reference. When a request hits one of the three URLs, Shopify looks for a matching template in your live theme and uses the first one it finds, in this order:

  • /agents.md resolves agents.md.liquid, then Shopify's generated default.
  • /llms.txt resolves llms.txt.liquid, then agents.md.liquid, then the default.
  • /llms-full.txt resolves llms-full.txt.liquid, then agents.md.liquid, then the default.

The practical takeaway: write one solid agents.md.liquid and all three URLs are covered. Only add llms.txt.liquid or llms-full.txt.liquid when you want one of those URLs to say something different from the rest. The templates live in the templates/ folder, alongside the templates you already know like templates/product.json, but rendered as plain text or Markdown rather than HTML.

Heads up

If you previously faked an llms.txt with a URL redirect or an app proxy, that approach no longer works the way it did. Shopify now owns these routes natively. Migrate your content into a theme template so it survives.

What you can put in the template

An agents.md.liquid template renders Markdown with Liquid mixed in, exactly like any other theme template. Per the reference doc, you get the standard global objects (shop, request, and so on) plus a dedicated agents object that Shopify pre-populates with the machine-readable entry points an agent needs. The documented properties are:

  • agents.store_name and agents.store_url
  • agents.currency
  • agents.sitemap_url
  • agents.ucp_discovery_url and agents.ucp_versions
  • agents.mcp_endpoint_url

The last three are the agentic-commerce hooks: where an agent finds your Universal Commerce Protocol discovery document, which UCP versions you speak, and your MCP endpoint. Because they are populated for you, the smartest move is to lean on the object rather than hardcode URLs that will rot the first time the store config changes. Here is an illustrative starting template that uses only documented objects:

templates/agents.md.liquid
# {{ agents.store_name }} > {{ shop.description | default: shop.name | strip_newlines }} Welcome, agents. This file describes how to discover and shop {{ agents.store_name }}. ## Store - Name: {{ agents.store_name }}- URL: {{ agents.store_url }}- Currency: {{ agents.currency }} ## Machine-readable entry points - Product sitemap: {{ agents.sitemap_url }}- Commerce protocol discovery: {{ agents.ucp_discovery_url }}- MCP endpoint: {{ agents.mcp_endpoint_url }} ## What we sell {% for collection in collections limit: 8 -%}- [{{ collection.title }}]({{ shop.url }}{{ collection.url }}){% endfor -%} ## Policies For shipping, returns, and contact, see {{ agents.store_url }}/policies.

Note

Heads up: the agents object is new enough that Theme Check's object catalog may flag it as an "unknown object" even though it is documented in Shopify's agents.md.liquid reference. It renders correctly on the live store. If the lint noise bothers you, the global shop object (shop.name, shop.url, shop.currency) covers the same store basics with no warnings.

Do not leak private data

Shopify's own guidance is explicit: do not output potentially private merchant data such as contact email addresses or phone numbers. Everything in this file is public the moment an agent fetches it. Treat it like a press kit, not an admin export. Link to your policy pages instead of pasting their contents.

How to add it, step by step

  1. In the admin, go to Online Store, then Themes.
  2. On your live theme, open the menu and choose Edit code.
  3. In the Templates folder, add a new template named agents.md.liquid.
  4. Write your Markdown and Liquid, save, and visit /agents.md (and /llms.txt) on your storefront to confirm the output.
  5. Only if you need divergent content, repeat with llms.txt.liquid or llms-full.txt.liquid.

If you work in the theme codebase rather than the admin editor, the template is a normal file at templates/agents.md.liquid that you commit and push with the Shopify CLI like any other template. Knowing where it sits in the theme tree, and why it lives next to product.json rather than in snippets/ or sections/, is exactly the kind of structural fluency that separates someone editing a store from someone who understands themes.

Learn this properly · free lesson

The shape of a theme: where everything lives

New to where files live in a Shopify theme? Map out the whole theme structure in the browser, free, no setup. Once the folder layout clicks, knowing where agents.md.liquid belongs is obvious.

Try this lesson — free

Does this actually help discoverability?

Be honest with yourself about what this is and is not. llms.txt is a proposed convention, not a ranking signal, and not every model fetches it today. It will not move you up in classic search results. What it does is shape the source material an AI works from when it does read your store, and reduce the chance an agent misreads a cluttered page. In an agentic-commerce world where a shopping agent may never render your theme at all, a clean agents.md that points straight at your catalog and protocol endpoints is closer to required plumbing than to a nice-to-have.

This is also a microcosm of the larger shift. The skill that ages well is not memorizing the property names on the agents object: it is understanding why Shopify routes three URLs through one template, what an agent does with the output, and what you must never put in it. That judgment is the whole game, and it is what we mean when we talk about learning Shopify development in the AI era.

Learn this properly · free lesson

Code review: is this AI-generated section ready to ship?

An AI can draft an agents.md or a whole section in seconds. Reviewing that output for the things it quietly gets wrong is the durable skill. Practice it on a real AI-generated section.

Try this lesson — free

Sources: Shopify's developer changelog entry Customize /llms.txt, /llms-full.txt and /agents.md (May 28, 2026), the agents.md.liquid template reference, the Spring '26 Edition for developers announcement, and the llms.txt proposal.

Frequently asked questions

What is llms.txt?

llms.txt is a proposed open convention (from Jeremy Howard of Answer.AI, 2024) for a Markdown file at the root of a site that gives large language models a clean, structured summary of the site's most important content, so they do not have to parse cluttered HTML. Shopify now serves /llms.txt on every store and lets you control its content from your theme.

What is agents.md in Shopify?

agents.md is the canonical AI-discovery file Shopify serves at /agents.md on every storefront. It is a Markdown document aimed at autonomous AI agents: it describes the store and points at machine-readable entry points like the product sitemap, the Universal Commerce Protocol discovery URL, and the MCP endpoint. /llms.txt and /llms-full.txt fall back to it by default.

How do I customize llms.txt in a Shopify theme?

Add a Liquid template to your theme's templates folder. Create templates/agents.md.liquid to control all three URLs at once, or add templates/llms.txt.liquid (or llms-full.txt.liquid) to override a single URL. The template renders Markdown plus Liquid and has access to the shop and request objects plus a pre-populated agents object. Shopify documented this in its May 28, 2026 changelog.

Does llms.txt help SEO or AI search?

It is not a search ranking signal and will not change classic Google results. What it does is shape the source material AI models and shopping agents work from when they read your store, and it gives agents direct pointers to your catalog and commerce endpoints. In an agentic-commerce setting where an agent may never render your theme, a clean agents.md is closer to required plumbing than an SEO tactic.

On the launch list

Get updates on the platform.

Same waitlist as the homepage. New posts plus a heads-up when v1 launches. No drip, no spam.

One email when a new module ships, one when v1 launches. No drip sequence, no spam. Unsubscribe anytime.

Agentic commerceGEOThemes

About the author

Bas Lefeber, Founder, learnshopify.dev

Bas builds learnshopify.dev, where developers learn production-grade Shopify theme development against a live storefront. He writes about Liquid, theme architecture, and the parts of the job that still matter now that AI writes the code.

Keep going in the curriculum