Open your store's yourstore.com/agents.md in a browser. Then open a competitor's. If you have never customized the file, the two read almost the same, because Shopify wrote both of them from the same template. That sameness is the problem, and almost no merchant has noticed it yet.
What an AI agent actually reads
Shopify’s default vs an AgentReady agents.md
The default exists, and that's the trap
Since Spring 2026, Shopify generates an agents.md for every store and serves it at the domain root. It is the canonical AI-discovery file now, with /llms.txt and /llms-full.txt mirroring it. The file is always present. It is always valid. A naive check that asks "do you have an agents.md?" returns a green check for everyone.
But the default content is generic. It says the kind of thing any store could say, and it routes shopping agents to install https://shop.app/SKILL.md, Shopify's own agentic rails. That is a sensible default for the platform. It is a weak one for you. The file that is supposed to be your pitch to the machine reads like boilerplate, and it hands the agent off to Shopify's rails rather than to a reason to pick you.
We call this state Generic-default, as opposed to Distinctive (customized to your brand) or Missing (no file at all). Generic-default is the most common state and the most dangerous, because it looks like success. The light is green. Nothing is broken. You are simply saying nothing.
Identical is forgettable
Here is what sameness actually costs, stated precisely. Getting into the consideration set in the first place, showing up when someone searches a category, is mostly Shopify's Global Catalog and the quality of your product data, not this file. agents.md is the next layer. It is the brief an agent reads once it already has you in hand: when a shopper names you, when you are one of a few options it is weighing, when it is about to transact. At that moment the default gives it nothing to represent you with, and it points the agent at Shopify's shared rails. You read as interchangeable at the exact moment you most need not to.
The discovery side of this has its own fix. We wrote about it in why AI shopping shows your brand but skips your category, which is a Catalog and product-data problem: brands win their own name and miss the category searches that bring new customers. agents.md is the companion problem on the comprehension side. Even when an agent is looking right at you, a generic file tells it nothing about who you are or why you are the right answer.
It also sits next to the buy box. When several stores sell the same product, Shopify's Global Catalog clusters them and picks one offer to show on price, availability, and ratings. Your agents.md does not change that selection. What it carries is the brand case, the guarantees and the story that raw offer signals can't, for every agent interaction beyond that one head-to-head. The offer signals are the part you control least in the moment. Your file is a part you control fully.
What a real one adds, section by section
The visual above is the argument in one frame, but the rows are worth walking. The default opens with a generic line that could describe any store, then spends most of its length on protocol boilerplate and a pitch to install Shopify's shared rails. A brand-specific file front-loads what an agent needs to actually represent you:
- A real intro. What you make, who it is for, and the proof that you are credible at it. "Aerospace-grade titanium sunglasses, 122,000 customers, 4.9 stars, lifetime warranty" tells an agent how to describe and defend you. "This store sells products" does not.
- Your categories, in your own nouns. The agent learns the shape of your catalog without crawling it.
- Featured products and inline answers. When a shopper asks about your return window or whether the product holds up, the agent reads the answer from the file instead of guessing or giving up.
None of that lives in the default, and all of it is the difference between an agent recommending you and an agent moving on.
Keep what the default gets right
The default is not all bad, and copying its one real strength matters. Shopify spells out the transaction path precisely: the discovery handshake at /.well-known/ucp, the MCP tool flow (search_catalog, create_cart, create_checkout, complete_checkout), and the rules an agent must follow, like human approval at payment, backing off on rate limits, and passing the buyer's country and currency. A good custom file keeps every bit of that and adds the brand layer on top. A file that reads beautifully but drops the protocol is worse than the default, because now the agent can describe you but cannot buy from you.
The part nobody warns you about
There is a quiet risk in writing this file by hand. It is published at your root and read by every agent and every person who looks, so anything you put in it is public. Paste your collections in raw and you can leak a staff discount code sitting in a collection title. Dump every collection and you expose the internal ones: your ad feed, your "coming soon" staging. List every product and an agent starts recommending your prescription-lens components as though they were sunglasses. A file built for agents has to be curated for agents. AgentReady handles that curation automatically. It redacts discount codes, drops system collections, and skips the non-shoppable components, so the public file stays clean.
The fix is one file
You override the default by creating a templates/agents.md.liquid template in your theme. It is a Liquid and Markdown file, and that single template replaces /agents.md, /llms.txt, and /llms-full.txt at once. Keep the UCP and MCP rails the default gives you, because an agent needs them to transact, then add the sections the default omits:
- What we sell, in your own words, naming the categories and use-cases you actually serve.
- Why buy from us: the materials, the proof, the promise that lowers a buyer's risk.
- Featured products and your real policies, pulled from your live catalog.
Use Shopify's agents Liquid object (agents.store_name, agents.mcp_endpoint_url, agents.ucp_discovery_url, and the rest) so the transactional endpoints stay in sync with the platform. One caution: do not inline a contact email or phone number, since the file is broadly cached. The full walkthrough, with a copy-pasteable template, is in agents.md on Shopify: what it is and how to customize yours.
Check yours in ten seconds
The free AI-readiness checker reads your store the way an agent would and tells you whether your agents.md is Distinctive, Generic-default, or Missing. If you have never touched the file, expect Generic-default, the same boilerplate every other store is serving.
If it comes back generic, AgentReady turns your live catalog into a brand-specific agents.md and flags you when it drifts, so the file works for you instead of for the template. Start by seeing where you stand.
Run the checker and find out if your store reads like everyone else's.

Comments
Every comment here comes from a verified email. Write yours, confirm from your inbox, and it's live.
Loading comments…