One thing worth saying before the steps: ChatGPT's shopping results are organic and unsponsored, ranked on relevance, so you cannot buy your way in [1]. You earn it with clean data, which is the whole reason this is a job you can do yourself rather than a budget you have to find.
Check where you actually stand
Before you change anything, find out whether you have a problem. Open ChatGPT and Perplexity and ask, as a customer would, what to buy in your category: best waterproof dog coat for a labrador, UK. See whether your brand and products come up, and who comes up instead. Ten minutes, and it tells you whether you are invisible, mentioned, or already cited. Do it now, and note what you see, so you can measure the change in a fortnight.
For the wider picture, including ChatGPT’s shopping research and Instant Checkout, and what they mean for stores on any platform, see what ChatGPT shopping means for a store like yours.
Shopify is already sending your products to AI
Before the crawler and markup work, it helps to know what Shopify now does on its own. According to Shopify’s guide to product discovery for agentic storefronts, eligible products are automatically discoverable by AI channels through Shopify Catalog, which acts as the product data feed to those storefronts. It sends each product’s title, description, options, images, price, availability and other key attributes.
Which assistants it reaches
Shopify’s guide names ChatGPT, which merchants can opt out of; Microsoft Copilot, which can be switched on or off; Google’s AI Mode and Gemini, through the Google & YouTube sales channel, which it describes as rolling out to eligible stores; and Meta’s surfaces through the Facebook and Instagram channel. It doesn’t mention Perplexity, which still relies on crawling your pages.
What that changes about this walkthrough
It means the quality of your product data now travels further than your own site. The feed uses the same titles, descriptions, options and images you keep in the Shopify admin, so a product with a two-word title and a supplier’s description is as thin in ChatGPT as it is on your store. The schema work below still matters for crawlers such as Perplexity’s and for Google, but the first job is the product data itself.
How to control it
Setting a product’s status to Unlisted hides it from AI channels, though Shopify notes it also hides the product from sitemaps, search engines and your own store search. Shopify also lets a theme add agents.md.liquid, llms.txt.liquid and llms-full.txt.liquid templates to customise the files AI agents read. Treat those as a bonus: Google’s guidance on AI features says you don’t need new machine-readable files, AI text files or markup to appear in its AI Overviews and AI Mode.
My view: fix the product data first
If you only have an afternoon, spend it on the twenty products that sell most: a clear, specific title, your own description with sizes, materials and use, every option named properly, and good images. That improves the Catalog feed, the schema your theme outputs and the page a customer lands on, all at once.
Let the right crawlers in
The most common reason a store is invisible is the dullest: its robots.txt is quietly blocking the crawler that feeds AI search. The important point is that these crawlers are separate levers, and people confuse them, blocking the training bot to protect their content and accidentally taking themselves out of search too [2].
| Crawler | Controls | If your goal is AI-search visibility |
|---|---|---|
| OAI-SearchBot | Whether you appear in ChatGPT search answers. | Allow. Blocking it hides you from ChatGPT search. |
| PerplexityBot | Whether you appear in Perplexity's answers. | Allow. Blocking it takes you out of Perplexity. |
| GPTBot | OpenAI model training only. Does NOT affect ChatGPT search. | Your call. Block it to stay out of training; you still appear in search. |
On Shopify you cannot fully hand-edit robots.txt, but you can customise it with a robots.txt.liquid template. If your goal is to be found in AI search, allow the two search crawlers explicitly and decide the training crawler on purpose:
The trap: a store that pastes in a blanket block all AI bots rule to feel safe locks itself out of the exact citations it wanted. Decide each crawler on purpose, not in one nervous sweep [2].
Fix the Product schema that actually matters
This is the core of it. An assistant reads your Product structured data and ranks you on what it can parse. Themes built on Shopify’s structured_data filter already output a reasonable baseline: a Product, or a ProductGroup when there are variants, with the name, brand, description, images and offer. Older themes, and markup added by hand or by apps, often carry far less, sometimes just a name and a price, which is close to nothing for a machine to work with. Here is the difference between invisible and legible. First, what a thin store ships:
Now the version that gets read. The highlighted lines are the ones the thin markup leaves out, and they are exactly the fields an assistant ranks on:
Those property names are the schema.org standard, not a preference [3]. Google, whose rules still shape what crawlers expect, needs name plus an offers block with price and priceCurrency for a merchant listing, and treats brand, sku, gtin and availability as recommended [4]. Recommended does the quiet work here: the stores that get read are the ones that fill the recommended fields in too, because that is the data an assistant ranks on. On Shopify this lives in your theme's product template, or a metafield-driven JSON-LD block; add the fields your theme omits. In short, add these:
| name | Waterproof Dog Coat | Required |
| offers.price | 39.00 | Required |
| offers.priceCurrency | GBP | Required |
| brand | Your Brand | Recommended |
| sku | WDC-LAB-01 | Recommended |
| gtin13 | 5012345678900 | Recommended |
| offers.availability | InStock | Recommended |
| aggregateRating | 4.7 from 212 reviews | Recommended |
Put your real reviews in the markup
If you show ratings and reviews on the page for humans, mirror them in aggregateRating and review so a machine can read them [3]. Reviews are one of the signals assistants weigh, and a store that displays 4.7 from 212 reviews but does not mark it up is handing the machine nothing. Most Shopify review apps can inject this; confirm yours actually does, because plenty render stars as images with no structured data behind them, which looks fine to a shopper and is invisible to a crawler.
Signal freshness, honestly
Freshness helps a little, and only when it is real. Analysis of millions of cited URLs found assistants cite slightly fresher pages on average, though cited pages still averaged nearly three years old [5]. So set a correct dateModified when you genuinely revise a page, and do not churn the date on a page you did not change. Fix the substance, then let the timestamp be true.
Verify
Close the loop. Three checks, in order:
- Validate the Product schema on three real product pages, using Google's Rich Results Test or the Schema.org validator, checking name, image, brand, sku, gtin, and an offers block with price, priceCurrency in GBP and availability.
- Confirm robots.txt allows OAI-SearchBot and PerplexityBot, and that your GPTBot decision is the one you meant to make.
- Re-ask ChatGPT and Perplexity the question from the first check in a week or two and see if you have moved. Citation is not instant, but readable data is the precondition for it.
Google’s AI answers play by Google’s rules
Everything above is aimed mostly at ChatGPT and Perplexity. Google’s AI Overviews and AI Mode work differently, and more simply.
No special files or markup
Google’s guidance on AI features says you don’t need new machine-readable files, AI text files or special markup to appear in them. A page needs to be indexed in Google Search and eligible to show a snippet. That’s all.
So ordinary SEO is the work
For Google, being in its AI answers starts with being in its ordinary results. If the store isn’t indexed, or a page is set to noindex or nosnippet, it can’t appear in either. The guide to a Shopify website that isn’t showing up on Google covers that side.
Check a page in two minutes
The free AI visibility checker on this site reads a page the way these crawlers do: whether each one is allowed in, whether the content is there without JavaScript, and whether the structured data parses. Run it on a product page and a collection page, not just the home page.
◆ Questions store owners ask
No, though it does no harm. Google says it needs no AI text files for its AI features, and no major assistant has said it relies on llms.txt to decide what to show. Shopify lets a theme add one through an llms.txt.liquid template if you want it. Fix the crawlers and product data first.
That’s a business decision, not a visibility one. GPTBot is OpenAI’s training crawler; OAI-SearchBot is the one behind ChatGPT search. Blocking GPTBot keeps your content out of model training without removing you from ChatGPT’s search results, as long as OAI-SearchBot is still allowed.
No. OpenAI describes the shopping results as organic and unsponsored, ranked on relevance. The way in is product data that’s clear enough to be chosen.
There’s no fixed time and no guarantee. Crawlers have to revisit your pages and the assistants have to re-rank. Re-check the same questions a week or two after the changes, and again a month later.
The crawler and schema sections apply to any store. The Shopify Catalog feed is specific to Shopify; other platforms reach the same assistants through their own feeds or through crawling alone.
What still trips stores up
Two things, and they are both mundane. The first is blocking the wrong bot, from the crawler section: a blanket AI-bot block that quietly removes you from search while leaving training access open. The second is broken or missing schema, which is more common than it should be.
The reassuring part is that what works is not exotic. The peer-reviewed study that coined generative engine optimisation found structured, well-cited, statistic-bearing content lifted a page's visibility in AI answers by up to 40% [7]. Be legible, be specific, be verifiable. On Shopify, that is mostly the five steps above, done properly once.
If you would rather have it checked
This is a job most store owners can do in an afternoon, and this walkthrough is meant to let you. If you would rather have someone confirm your schema is valid across the catalogue and your crawler settings are doing what you think, that is what an AI-visibility audit covers. Either way, the five steps are the same; the only question is whether you want a second pair of eyes on the catalogue.
◆ Glossary
- GEO / AEO
- Generative (or answer) engine optimisation: making your pages easy for AI assistants like ChatGPT and Perplexity to read, trust and cite, rather than optimising only for a blue-link result.
- Structured data / schema
- Machine-readable labels on your pages, using the schema.org vocabulary, telling a crawler exactly what each thing is: this is the price, this is the brand, this is the stock status.
- Product schema
- The schema.org Product type and its Offer, carrying the fields an assistant ranks on: name, brand, sku, gtin, price, currency, availability, ratings and reviews.
- GTIN
- Global Trade Item Number, the barcode (EAN or UPC) that uniquely identifies a product so an assistant can match your item to the same one sold elsewhere.
- robots.txt
- The file at your site root that tells crawlers which paths they may fetch, and where you allow or block specific AI crawlers. On Shopify, customised via robots.txt.liquid.
- OAI-SearchBot / GPTBot / PerplexityBot
- The crawlers for ChatGPT search, OpenAI training, and Perplexity respectively. They are controlled separately, which is the point most stores miss.
- aggregateRating
- The schema.org field that carries your average review score and review count in machine-readable form.
- dateModified
- A schema.org timestamp declaring when a page was genuinely last updated, used as one freshness signal.
◆ Sources



