How ChatGPT Shopping Picks Products (And Why Yours Might Be Invisible)
Shopping behavior is shifting. A growing number of people are skipping the search results page entirely and asking ChatGPT directly: "What is the best standing desk under $400?" or "Which protein powder is best for endurance athletes?" When ChatGPT answers those questions with specific product recommendations, the stores whose products appear get real consideration. The stores that do not appear are invisible to that shopper.
This post explains how ChatGPT Shopping actually works, what signals it appears to rely on, and what you can do to improve your chances of being included. A word of caution upfront: OpenAI does not publish a detailed ranking algorithm for ChatGPT Shopping. What follows is based on observable mechanics, publicly available documentation, and patterns that practitioners have identified. Treat it as a well-informed working model rather than an official specification.
The Shift: From Googling to Asking
Traditional search requires a shopper to interpret a results page, visit multiple sites, compare options, and form their own conclusion. AI shopping assistants compress that process into a conversation. The AI reads, synthesizes, and recommends on the shopper's behalf.
This changes the nature of visibility. In traditional search, your goal is a high ranking so the shopper clicks your link. In AI shopping, your goal is being part of the information the AI has indexed and trusts enough to cite. You are no longer competing for attention from a human scrolling a page. You are competing to be in the AI's working knowledge.
How ChatGPT Actually Sources Products
ChatGPT Shopping draws on at least three sources of product information. Understanding each one helps you target your effort.
Web crawling via OAI-SearchBot and GPTBot
OpenAI operates web crawlers that index publicly accessible content. GPTBot is the primary training crawler. OAI-SearchBot is used specifically for real-time search and browsing features, including ChatGPT's Shopping mode. Both crawlers respect robots.txt instructions.
If your robots.txt blocks GPTBot or OAI-SearchBot, OpenAI's crawlers will not read your product pages. Your products cannot appear in results that depend on that crawled content. Many store owners block these crawlers inadvertently, either from a blanket "disallow all unknown bots" policy or from a general AI-training opt-out that was copied without understanding its scope.
Product feeds and merchant data
OpenAI has announced partnerships with shopping platforms and data providers. Products submitted through these channels can appear in ChatGPT Shopping results with price, availability, and merchant details. The availability and reach of these integrations is evolving. Web crawlability remains the more universal factor, especially for stores that do not participate in direct feed programs.
Structured data on product pages
Schema.org Product JSON-LD markup is machine-readable metadata embedded directly in your HTML. It tells crawlers exactly what a page is about, what the product is called, its price, its availability, its identifier, and more. AI crawlers can read and extract this information with high confidence, which is why well-marked-up products are more likely to be accurately represented in AI responses.
The Signals That Matter Most
Based on the observable mechanics of how AI shopping engines process product pages, these signals carry the most weight.
Product identifiers: GTIN and MPN
A GTIN (Global Trade Item Number, which includes standard barcodes) or MPN (Manufacturer Part Number) uniquely identifies a specific product across sellers. These identifiers allow AI systems to match your listing to the same product sold elsewhere, confirm product identity, and cross-reference against known product databases. Without them, an AI cannot be confident your listing is the same item a shopper is asking about. Including them in your Product JSON-LD is one of the highest-leverage changes you can make.
Price and availability markup
An Offer element in your Product JSON-LD with a current price, currency, and availability (InStock, OutOfStock, PreOrder) gives the AI the information it needs to present your product accurately. Stale prices or missing availability make your listing less trustworthy as a source. Using priceValidUntil signals that your price data is actively maintained.
Descriptive, substantive titles and descriptions
AI models summarize and paraphrase. A vague product title like "Blue Widget XL" gives the AI little to work with. A descriptive title and a thorough product description that addresses use cases, specifications, and differentiators give the model the raw material it needs to accurately recommend your product in context.
Review and rating markup
AggregateRating in your Product JSON-LD provides a quick signal that real buyers have evaluated the product. This is one of the factors AI models use to assess whether a product is worth recommending. Individual Review markup adds further detail. Only mark up reviews that are genuinely on your page.
Crawlability
All of the above only matters if the AI can reach and read your pages. Your product pages must be accessible to OAI-SearchBot and GPTBot in robots.txt, must load without errors, and must render their key content in server-side HTML rather than relying entirely on JavaScript.
The Three Silent Killers
Most store owners who are invisible to ChatGPT Shopping are not missing one signal. They have hit one of three fundamental blockers that prevent any signals from being read at all.
1. Blocking GPTBot or OAI-SearchBot in robots.txt
This is the most common problem we see. A robots.txt entry like Disallow: / under a GPTBot or OAI-SearchBot User-agent block means OpenAI's crawlers cannot index a single page on your site. You are opted out entirely, often without realizing it.
Check your robots.txt (visit yourdomain.com/robots.txt) and look for these user-agent names. If they are blocked, allowing them is the single highest-impact change you can make. Note that allowing crawling for AI shopping does not mean you consent to your content being used for model training; those are governed by different policies, but the crawlers share some infrastructure.
2. JavaScript-only rendering
Many modern e-commerce storefronts render product content (including the Product JSON-LD block) exclusively via JavaScript. When AI crawlers fetch the page, they receive an HTML shell with no visible product data. Unlike Googlebot, which has a sophisticated two-pass rendering system, many AI crawlers read only the initial server-rendered HTML.
The fix is server-side rendering (SSR) or static generation of your product pages, so the product title, description, price, and JSON-LD block are present in the raw HTML delivered by your server. If you run a headless commerce setup, confirm your frontend framework is SSR-configured for product routes.
3. Missing or broken Product JSON-LD
A product page with no structured data markup is a page of unstructured text. The AI must infer what the product is, what it costs, and whether it is available. That inference is noisy and unreliable. Broken JSON-LD (a syntax error, an unclosed bracket, invalid property values) is worse: it can prevent any schema from being parsed, even if only part of it is malformed.
Use Google's Rich Results Test or a JSON-LD validator to check your product pages. The Krytho scanner does this automatically when you run a scan.
A Practical Checklist
Here is what you can check and act on today. Go through each item for your top-priority product pages first, then work through the rest.
- Check robots.txt. Visit
yourdomain.com/robots.txtand confirm GPTBot and OAI-SearchBot are not blocked. Allow them on product pages at minimum. - Verify server-rendered HTML. Use "View Page Source" (not browser DevTools) on a product page. If you cannot find the product title or JSON-LD block in the raw source, you have a JavaScript rendering problem.
- Add or audit Product JSON-LD. Ensure every product page has a valid
@type: Productblock with at minimum: name, description, and an Offer containing price, priceCurrency, and availability. - Include product identifiers. Add
gtin(the product's barcode or EAN) ormpn(manufacturer part number) to your Product markup if available. - Add AggregateRating markup. If you display ratings, mark them up with
aggregateRatingin your Product JSON-LD. - Keep prices current. Use
priceValidUntilin your Offer markup and ensure your price data reflects actual current pricing. - Write real descriptions. Aim for at least 100-200 words of substantive description covering use cases, materials, dimensions, or key differentiators. Thin descriptions hurt both AI visibility and conversion.
- Add multiple product images. Include ImageObject markup for your product images. Multiple images covering different angles are better than one.
- Check for JSON-LD errors. Run your product page URL through Google's Rich Results Test or the Krytho scanner to surface syntax errors or missing required fields.
- Re-check after platform updates. Theme updates, app installs, and platform migrations frequently break structured data. Build a regular review into your workflow.
A Honest Note on Change
ChatGPT Shopping is a relatively new feature and its mechanics are actively evolving. OpenAI has not published a detailed specification for how products are ranked or selected. The guidance above is based on observable signals and documented crawler behavior, but the specifics may shift as the product develops.
What will not change is the underlying logic: machine-readable, accurate, and crawlable product data is the foundation. Stores that build that foundation now are well-positioned regardless of how the specific algorithm evolves. Stores that wait for certainty may find themselves playing catch-up.
Run a free scan at Krytho to see exactly where your product pages stand today.
Is your store ready for AI shopping?
Paste any product URL. Instant, free results showing exactly what AI shopping engines see.Run a free AI readiness scanFrequently asked questions
Does blocking GPTBot affect ChatGPT Shopping?
Yes. If you block GPTBot or OAI-SearchBot in your robots.txt, OpenAI's crawlers cannot index your pages. Your products will not be considered for ChatGPT Shopping recommendations that draw from web content. Check your robots.txt and ensure these user-agents are allowed on product pages.
Do I need to be on Shopify to appear in ChatGPT Shopping?
No. ChatGPT Shopping is platform-agnostic. What matters is that your product pages are crawlable, server-rendered, and carry complete Product JSON-LD markup. Shopify stores benefit from some automatic schema generation, but any platform can meet the requirements with the right configuration.
Does my existing SEO ranking carry over to ChatGPT?
Not directly. ChatGPT and traditional search engines use different signals and different indexes. A high Google ranking does not guarantee ChatGPT visibility, and vice versa. That said, many of the same fundamentals overlap: clear product data, good descriptions, and crawlable pages help with both.
How do I check if my products appear in ChatGPT Shopping?
Search for your product category or a specific product name in ChatGPT and see whether your store appears in results. You can also run a free audit with Krytho at krytho.com/scan, which checks the structured data and crawlability signals that AI shopping engines rely on.
How often should I re-audit my product pages?
AI shopping engines update their criteria as they evolve, and your own pages change with price updates, inventory changes, and platform upgrades. Running a check at least quarterly is a reasonable baseline. If you push major site changes, audit immediately after.