How ChatGPT Shopping Actually Picks Products (And How to Show Up)

A founder-voice guide to the signals ChatGPT Shopping uses to pick products, the gap between SEO and AEO, and the fastest fixes for a brand that is invisible.

O
Oeave Team
April 29, 2026
7 min read
How ChatGPT Shopping Actually Picks Products (And How to Show Up)

If you sell a premium product on Shopify or a headless storefront and you have searched for your own brand in ChatGPT lately, you have probably already had the moment where it recommended a competitor. The question that follows is the same in every founder Slack: how does ChatGPT Shopping actually pick products, and what does a brand have to ship to show up. The answer is mostly mechanical and mostly fixable in a few days.

How does ChatGPT Shopping decide which products to recommend?

ChatGPT Shopping ranks on three signals. The first is the structured product data on the page itself: Schema.org Product, Offer, and AggregateRating in JSON-LD that the model can read in a single fetch. The second is third-party review consensus across sites like Trustpilot, Reddit, G2, and category-specific review sites the model trusts. The third is merchant product feeds submitted directly to OpenAI through their Commerce specification. Backlinks barely move the needle. The brands that show up consistently have all three signals working at once, with the schema and the feed doing most of the work.

The asymmetry between retrieval and citation is the part most founders miss. A Search Engine Land study found that only 15% of pages ChatGPT retrieves end up in the cited answer. The model fetches a lot of pages, then a second pass picks which ones get quoted. Pages that survive the second pass share one trait: a clean answer near the top, structured for extraction.

The three signals in plain terms

Signal one: structured product data. ChatGPT reads the page like an API. If the price, availability, brand, and specs sit in JSON-LD Schema.org Product markup in the head, the model gets them in one fetch. If those fields live inside JavaScript that runs only after the page is interactive, the model often misses them. A page that hides price behind a variant selector that loads on click is a page that does not exist for an AI shopping query.

Signal two: third-party review consensus. ChatGPT trusts a brand more when independent sites describe the brand the same way. Five Trustpilot reviews, a Reddit thread comparing the brand to a competitor, and a G2 entry for a B2B product give the model three angles on the same brand. A site with no third-party presence is a site the model has no reason to trust over a competitor that does.

Signal three: merchant product feeds. OpenAI publishes a public Commerce specification for merchant product feeds. Brands submit a structured file with each product's id, variants, media, pricing, and seller information. ChatGPT Shopping uses that feed as a primary source for live product data. A brand that has not submitted a feed is shipping schema-only signal, which works but leaves the easiest win on the table.

Why SEO authority does not transfer

A common pattern in founder Slack: the brand has spent two years on backlinks and content marketing, ranks well on Google for the key category terms, and still gets ignored by ChatGPT. The reason is simple. Domain authority is a Google ranking signal, not an LLM citation signal.

ChatGPT Shopping ranks on retrievability and content match. A 1500-word category page with great backlinks and weak schema gets retrieved and dropped because the model cannot extract a clean answer. A 600-word product page with crisp Schema.org markup and a 2-sentence answer at the top of the body gets cited because the answer is right there.

That is the reframing most brands need. The page is being read by a machine that will quote it back to a buyer in 50 to 200 words. The page that gets quoted is the one that already wrote those 50 words clearly.

What ChatGPT Shopping looks like from the buyer side

A buyer asks ChatGPT "what is the best leather backpack for daily commute under $400." The model retrieves 10 to 20 pages from brand sites, review sites, and Reddit. It composes an answer that lists 3 to 5 products with a sentence each.

The brands that appear in those 3 to 5 share a profile:

  • A product page with Schema.org Product, Offer, AggregateRating in JSON-LD.
  • A 2 to 3 sentence direct answer in the first 150 words of the body that names the buyer's question and answers it.
  • At least one third-party review site with consensus on the brand's positioning.
  • A product feed submitted to OpenAI Commerce that lists current variants and pricing.

Brands that miss two of those four are usually not in the response. Brands that miss three are usually not retrieved.

The fastest fixes for a brand that is invisible

If you are starting from zero on ChatGPT Shopping, the order of operations matters. Fix the cheapest, highest-impact signal first.

Day one: ship clean Schema.org Product markup on every PDP. Validate it with Google's Rich Results Test. Make sure price, availability, brand, image, and AggregateRating are all in JSON-LD in the page head. This single fix moves a brand from invisible to retrievable.

Day two: rewrite the first 150 words of every PDP. Open with a 2-sentence direct answer to the question a buyer would ask about the product. "What is this." "Why does it cost $400." Then ship the spec table. ChatGPT extracts from the top of the body, not the bottom.

Day three: audit third-party review presence. Check Trustpilot, Reddit, and any category-specific review sites. If the brand has fewer than 5 reviews on Trustpilot or no Reddit mentions, that is the gap to close next. Customer email flows that ask for a Trustpilot review after delivery move this faster than ad spend.

Day four: submit a product feed to OpenAI Commerce. The specification is straightforward. Most brands can build the feed from existing Shopify product data in an afternoon. The brands that have submitted feeds get an advantage in retrieval that brands relying on schema-only do not.

These four days fix more than three months of generic content marketing aimed at LLM citation does.

What does not move the needle

A few patterns founders try that produce little to no lift on ChatGPT Shopping:

  • Adding more backlinks. Helps Google, barely helps ChatGPT.
  • Writing more long-form blog content. The blog gets retrieved; the product page is what gets cited. Fix the product page first.
  • Buying ads. ChatGPT Shopping is not a paid placement system. The recommendation does not respond to spend.
  • Targeting "ChatGPT" as a keyword. There is no SEO play for ranking on the model itself. The play is structured signal on the page.
  • Long FAQ sections written for SEO. A 30-question FAQ with no schema is noise. A 4-question FAQPage JSON-LD with crisp answers is signal.

Where to start if you are already doing the basics

If your PDPs already have schema, you have third-party reviews, and you have submitted a product feed, the next lever is content depth on the product page. The full guide to getting product pages cited by ChatGPT, Claude, and Perplexity covers what to write inside the body to get the second-pass cite.

If you are missing one or more of the basics, fix that first. The ecommerce agent API explainer covers the next step after a feed: live data endpoints that an AI agent can call instead of reading a static feed.

The buyer is asking the question on a phone in a coffee shop. The AI is fetching the page. The page either has a clean answer at the top, with schema and proof and a feed behind it, or it does not. There is no middle.