Step 1 — Run a baseline AI-readiness audit
Before you change anything, measure. Baseline metrics let you attribute every win to a specific change.
You cannot improve what you cannot measure. AI-readiness is a composite score, not a single metric: it combines crawler access, Schema.org coverage, answer-density, and entity clarity. Running a full audit takes 3 minutes and sets the baseline for every later change.
- Fetch the store as GPTBot, ClaudeBot, and PerplexityBot — all three should return 200 with complete HTML.
- List every Schema.org type present on /, /products, /products/{handle}, /collections/{handle}, /pages/about.
- Flag pages where <1 product FAQ is present (retrievers need Q&A pairs to quote).
Step 2 — Ship llms.txt and llms-full.txt
An llms.txt file is the single highest-leverage change. It tells AI crawlers what to index, in what order.
llms.txt is to AI retrievers what robots.txt was to search engines in 1995 — the standard is young but retrievers are already using it. A well-formed llms.txt gives GPTBot, ClaudeBot, and PerplexityBot a curated map of the site: canonical URLs, page types, priority, and a short summary of each.
What goes in the file
- A one-paragraph description of the store — this is often the first thing quoted when an AI answers 'what does this store sell?'
- A structured list of the top 20 product pages, 5 collection pages, and every policy/about page.
- A link to llms-full.txt — the full-text dump retrievers use for deep retrieval.
Step 3 — Complete the Schema.org gap
Shopify ships basic Product + Organization schema. Retrievers want the 60% they don't: FAQ, HowTo, BreadcrumbList, and Offer aggregates.
Schema.org coverage is the second-biggest AI-readiness signal after llms.txt. The default Shopify themes emit Product schema with price and SKU — which is enough for Google Shopping but wildly insufficient for ChatGPT, Perplexity, and Claude's Shopping mode.
- Add FAQPage schema to every product page with ≥3 Q&A pairs drawn from your support tickets.
- Add BreadcrumbList to every non-home page so retrievers can reconstruct the navigation graph.
- Add AggregateRating with genuine review counts — retrievers quote this as social proof.
{
"@context": "https://schema.org",
"@type": "FAQPage",
"mainEntity": [
{
"@type": "Question",
"name": "How long does shipping take?",
"acceptedAnswer": { "@type": "Answer", "text": "Orders ship within 24 h and arrive in 3-5 business days." }
}
]
}Step 4 — Write answer blocks, not walls of text
Retrievers prefer 40-80 word self-contained answers. Reformat your product copy into quotable blocks.
AI systems summarise by quotation, not by compression. The atomic unit they quote is a self-contained paragraph that answers a specific question. Product pages that are all marketing prose get skipped; product pages with 3-4 crisp answer blocks get cited verbatim.
- 'Who is this for?' — two sentences max, use buyer-intent language.
- 'How is this different from X?' — explicitly name the competitor; retrievers use this to disambiguate.
- 'What's the catch?' — honest, concrete, limits clearly stated. This one is quoted 4× more than marketing copy.
“Retrievers reward the page that honestly answers the shopper's question over the page that out-markets its competitors. In ChatGPT Shopping tests, the store that said 'best for tall frames, not short' got cited twice as often as the one that said 'best for all frames.'”
Step 5 — Make your entity unambiguous
If ChatGPT can confuse your brand with another, it will. Tighten Organization schema, sameAs, and founder mentions.
Entity recognition is the step most merchants skip. Retrievers build an internal graph of who-is-who; if your brand is a homonym, ambiguously named, or lacks anchoring links, you get conflated with competitors and your citations leak to them. Fixing this is a 30-minute job with outsize returns.
- Add Organization schema to the home page with @id, url, logo, sameAs (LinkedIn, Crunchbase, Instagram, YouTube).
- Add Person schema for the founders — retrievers correlate people to companies to resolve ambiguity.
- Include a one-sentence 'What is {brand}?' block on the About page — retrievers quote this verbatim.
Step 6 — Verify every AI crawler can reach you
Half the stores we audit block AI crawlers at Cloudflare or via a stale robots.txt. Fix this before anything else matters.
If GPTBot or ClaudeBot cannot reach your product pages, every other step on this list is wasted. Cloudflare added an AI-scrapers toggle in 2024 that blocks by default on new zones. Shopify's default robots.txt is fine but many merchants layer a theme-level override that accidentally disallows /products/*.
- GPTBot
- Allow
- ChatGPT-User
- Allow
- ClaudeBot
- Allow
- Claude-User
- Allow
- PerplexityBot
- Allow
- Google-Extended
- Allow
Step 7 — Start measuring Share of AI Voice
You can't improve what you don't track. Set up a weekly prompt panel across your top 20 buyer questions.
Share of AI Voice (SAIV) is the AI-era equivalent of search share. You run your top 20 buyer-intent prompts through ChatGPT, Perplexity, and Claude every week and count how often your brand is mentioned vs. competitors. Track it as a time-series and every GEO change becomes attributable.
- List your 20 highest-intent prompts (e.g. 'best running shoes for flat feet under $120').
- Run each prompt through ChatGPT, Perplexity, and Claude once per week.
- Log brand mentions per prompt — that's your Share of AI Voice.
Step 8 — Automate the regeneration cycle
llms.txt, Schema, and answer blocks are not one-time work. New products, policy changes, and pricing updates invalidate them weekly.
The biggest long-term mistake we see is treating GEO as a launch project. Every product you add, every policy change, every pricing move invalidates some piece of the retriever's cached model of you. Without an automation cycle your AI-readiness score drifts down 2-4 points per month.
- Regenerate llms.txt and llms-full.txt on every product add / edit / delete.
- Regenerate the NDJSON product feed nightly for Perplexity Shopping + ChatGPT Shopping.
- Run the AI-readiness audit weekly and alert on any 5+ point drop.