Quick answer

A readiness scan touches about a dozen public endpoints — robots.txt, the homepage, sitemap.xml, products.json, llms.txt, the collection feed, cart.js, one real product page, the FAQ, contact and policy pages — and grades five things: can the agent get in, read the facts, read the words, trust you, and actually buy.

If you do four things and stop: read your own robots.txt, make sure the product page carries a complete offer with price, currency and availability, fill in SKUs and barcodes, and make your policies real pages with real sentences.

Most writing about “optimising for AI shoppers” is atmosphere. This is not that. Below is what an agent-facing audit fetches from a Shopify storefront and what it concludes from each response — taken from the 24 checks in our own free scanner, including the thresholds we set and the two places we deliberately refused to be strict.

Every URL here is public. Paste them into a browser against your own domain right now, which is rather the point: nothing an agent reads is hidden from you. Most merchants have simply never looked.

An organized lattice of translucent glass panels and glowing nodes on a dark background
To an agent, a storefront is not a picture. It is a small set of files that either state the facts or do not.

01 · The surface

The request list.

A readiness scan touches roughly a dozen public endpoints: the store metadata file, the homepage, robots.txt, sitemap.xml, the products.json feed, llms.txt, the collection Atom feed, cart.js, one real product page, the FAQ and contact pages, the four standard policy pages, and a probe at the storefront MCP path.

That is the whole surface. No login, no writes, a small concurrency cap so we never hammer an origin, and a user agent that names itself, so anyone reading their access logs can see exactly who called. An agent’s view of your store is narrower than you think and more consequential than you think, because it has no fallback. A human who cannot find your shipping terms scrolls. An agent that cannot find them recommends someone else.

02 · Discoverability

Can it get in at all?

The first pillar is worth 20 points and answers a blunt question: is the store reachable by the readers you want?

robots.txt. We check whether the named AI user agents are disallowed at the root — GPTBot, OAI-SearchBot, ChatGPT-User, ClaudeBot, PerplexityBot and Google-Extended. Blocking them is a hard fail and the most common self-inflicted wound we find. Some merchants block deliberately, which is a legitimate choice; most of the blocks we see were inherited from a theme or an SEO app, and nobody in the business knows they are there.

sitemap.xml. Present is good; present and containing a products sitemap earns full marks. A sitemap that indexes pages but not products tells a crawler your catalogue is an afterthought.

products.json. Shopify exposes a public JSON feed of the catalogue — the fastest way for any machine to learn your entire product set with variants, prices and availability. If it is blocked or empty, an agent has to scrape, and scraping is where facts go wrong. Some stores block the primary path but leave a secondary collection path open, so our scan falls back to it before concluding anything.

llms.txt. A plain-text file at the root telling a language model what your site is and where the important content lives. It is an emerging convention, not a standard. We check for it — and we deliberately never fail a store for not having one; absence caps the check at partial credit. Grading merchants against a convention that may not survive would make the score dishonest and push people into work that might not pay off.

Canonical tags. On the product page, so an agent that reaches the same item by three routes knows it is one item.

03 · Product data

Can it read the facts?

This is the heaviest pillar — 25 of 100 points — because it is what decides whether you get recommended rather than merely indexed.

  • SKU coverage across variants. Above 80% passes; below 40% fails; in between is partial, because catalogues are migrated in stages and we have no interest in punishing a store mid-migration.
  • GTIN / barcode coverage. Full marks at 60%, not 80% — deliberately lower, because real barcodes for a made-to-order or own-brand catalogue are genuinely hard and sometimes impossible. This is the field most merchants skip and the one that matters most in the agentic channel: a GTIN is how a machine knows your item and the same item elsewhere are one object. Without it you are an unmatched string, and an unmatched string does not get price-compared, cited, or shortlisted.
  • Product JSON-LD. Is there a structured product block on the product page at all?
  • A complete offer. Not just an offer — one carrying price, currency and availability. All three, or it is partial. Two out of three is exactly the state that makes an agent decline to act.
  • Brand / vendor. Populated across the catalogue, not just the flagship product.
  • Variant hygiene. Leftover “Default Title” ghost variants and options literally named “Title” — the fingerprints of an unfinished import — plus shipping weight coverage, because an agent that cannot estimate delivery cannot complete a purchase.

None of this is exotic. It is the boring half of a product catalogue, and it is the half that gets skipped because no human ever complained about a missing barcode.

A storefront reimagined as a clean lattice of light being read by streams of intelligent particles
The catalogue is the interface now. Everything else is decoration on top of it.

04 · Content

Can it read the words?

Twenty points for whether your prose carries information or atmosphere. Description length is scored on the richest description in a sample of the catalogue rather than on the first product the feed returns — because that first product is very often a test SKU from 2021, and grading an entire store on a placeholder is a coin toss, not a measurement.

Two details from that check are worth stealing. We count words in a script-aware way: a plain whitespace tokeniser collapses an entire Japanese or Chinese description down to about one “word”, which systematically failed non-Latin stores until we fixed it. If you run any content-quality heuristic over a multilingual catalogue, check this today. And we look for semantic structure in descriptions — lists and tables rather than one undifferentiated paragraph — because a specification expressed as a list survives extraction and one expressed as a sentence often does not.

The rest of the pillar: a real meta description on the product page, an FAQ as a page or as markup, and alt-text coverage across product images. Alt text is scored as a percentage rather than yes/no, and it earns its place for the same reason it does in accessibility work — it is the only description of an image a non-visual reader ever gets, and an AI shopper is a non-visual reader.

05 · Trust

Can it trust you?

Fifteen points. We look for the four standard policy pages — refund, shipping, privacy, terms — and here is the part worth copying: a page only counts if it contains more than about forty words. An empty stub at the right URL is not a policy, and any check that tests only for a 200 response will be fooled by one. Three or more real pages passes; one or two is partial; none fails.

Then contact discoverability — a contact page or a findable email address — and whether your return and shipping terms appear as structured data rather than only as prose. That last one is the difference between an assistant saying “returns within 30 days, free” and having to say “check their website.” One of those sentences closes a sale.

06 · Endpoints

Can it actually buy?

The last 20 points are about transaction rather than comprehension.

A password wall is a hard fail, detected on the homepage rather than by trusting a status code. Every development store, every soft-launch, every store someone locked six months ago and forgot — invisible.

cart.js reachable: the cheapest possible proof that a machine can begin a purchase and not just read about one.

Checkout eligibility, which we grade honestly as “the platform supports this” rather than “you have switched it on”, because from outside the store we cannot tell the difference — and claiming otherwise would be the same class of error we wrote about in our scanner reporting something false.

The storefront MCP endpoint, probed with a standard tools listing call. Be equally sceptical here: agent-facing endpoints are new and the path we probe is the presumed one. If you take one thing from this section, take the disclosure habit rather than the path.

07 · Sequence

What to do first.

If you do four things and stop, do these, in this order:

  • Read your own robots.txt. Five minutes. It is the only item here that can take you from visible to invisible with one line, and the fix is deleting that line.
  • Check that your product page carries a complete offer — price, currency and availability — not merely a product block. Usually a theme-level fix that applies to every product at once.
  • Fill in identifiers. SKU everywhere, barcode wherever a real one exists. Unglamorous, permanent, compounds with every channel you add.
  • Make your policies real pages with real sentences, and expose return and shipping terms as structured data.

Notice what is not on the list: rewriting your brand voice, adding a chatbot, or buying anything. The agentic channel does not reward persuasion. It rewards stores whose facts are stated once, plainly, where a machine can find them — the same investment that makes a catalogue maintainable for humans.

Optimising for agents is not a rewrite. It is publishing, cleanly, what your store already knows.

Quick check

Five things to verify on your own domain today.

  • /robots.txt does not disallow the AI user agents you want reading you.
  • /products.json returns your catalogue rather than an error.
  • Your product JSON-LD offer has price, currency and availability — all three.
  • Every policy URL returns a page with actual sentences on it.
  • No password wall, and /cart.js responds.

Scan it rather than guess.

All 24 checks run in about nine seconds against any public Shopify domain at scan.googogogo.com. Free, no signup, public pages only. One caveat we state on the tool itself and will repeat here: the score is a set of best-practice signals, not a certification from Shopify, OpenAI or anyone else. Nobody issues those yet. Treat it as a checklist with a number attached, and work down the list.

Questions

Questions people ask.

Does my Shopify store need an llms.txt file?

It is one of the endpoints an agent-facing scan checks, alongside robots.txt, products.json and the product page's structured data. It helps, but a robots.txt that blocks the assistants you want reading you undoes everything else first.

What most often blocks AI agents from a Shopify store?

robots.txt. It is the only item on the list that can take a store from visible to invisible in one line, and it takes five minutes to read. After that: an incomplete offer in the product JSON-LD and policies that are empty pages.

What is a complete offer in product structured data?

An offer carrying price, currency and availability — all three. A product block without them is indexed but not recommendable, because the agent cannot quote what you charge or whether it is in stock.

Want your catalogue made legible?Let’s build something different.
Start a project