TL;DR: ChatGPT recommends products it can parse and verify. Two inputs are documented in writing by OpenAI: complete Product structured data on your pages, and a product feed that meets OpenAI’s published specification, which includes a required field called is_eligible_search that decides whether your product can appear at all. Everything else, real reviews, plain descriptions that say who a product suits, and mentions beyond your own site, decides which product gets named once you are eligible.

What ChatGPT Shopping is and why it matters to your store

ChatGPT Shopping is what happens when a buyer stops searching and starts asking.

Instead of typing “waterproof hiking backpack” and comparing ten results, they describe the situation: three-day trek, carries a tent, needs to fit a short torso, under $200. The assistant returns two or three products with reasons attached. Whatever is not named does not exist for that shopper.

This is a different competition from ranking. There is no page two, no scrolling, and no chance to win on a better ad. The product that gets named is the one the model could read, verify and describe confidently, which is a data problem before it is a marketing problem. We covered the wider shift in how buyers use assistants instead of search engines in our comparison of ChatGPT search and Google.

For a store owner the practical consequence is narrow and useful: you cannot buy your way into an AI recommendation, but you can make yourself the easiest product to recommend.

How ChatGPT decides which products to recommend

Three things, in the order they apply.

Fast Hippo Media graphic comparing traditional shopping, where customers search, scroll through many results, compare and decide, with ChatGPT shopping, where they describe their needs in natural language and receive a few recommended products

Can it read your product? Structured data, feed data, and page copy the model can parse without guessing. A specification buried in an image or a PDF does not exist to a machine.

Can it verify what you claim? Price, availability, ratings, and identity that agree between your product page, your feed, and third-party sources. Where those disagree, the safe move is to recommend something else.

Does your product actually match the request? This is the part most stores skip. “Premium quality backpack” answers nothing. “Fits torsos 16 to 21 inches, 40 liters, 1.4 kg” answers a specific person’s specific question, and specificity is what gets quoted.

Reviews sit across all three. Volume gives the model something to reason about, recency tells it the information is current, and the text of a review is often what gets paraphrased into the recommendation. A review saying “held up through four days of rain in the Rockies” is usable evidence. “Great product” is not.

The direct route: OpenAI’s product feed

Here is the part almost no guide on this topic covers, and it is the closest thing to a documented answer.

You do not have to hope ChatGPT discovers your catalogue by crawling. OpenAI publishes a product feed specification under its Agentic Commerce program: a structured file listing your products, prices, availability and identity, ingested and indexed directly. It works the way a Google Merchant Center feed works. Meet the spec, keep it current, and your catalogue becomes machine-readable at the source rather than inferred from your HTML.

The field worth knowing about first: The spec includes a required boolean called is_eligible_search, described as controlling “whether the product can be surfaced in ChatGPT search results.” A second flag, is_eligible_checkout, allows purchase inside ChatGPT and requires is_eligible_search to be true first. If you have ever wondered what the switch is, that is the switch.

What the spec requires on every product: for a standard non-Ads feed:

  • item_id, unique per variant, stable over time, up to 100 characters
  • title, up to 150 characters, no all-caps
  • description, plain text, up to 5,000 characters
  • url, which must resolve with a 200 response
  • image_url, JPEG or PNG
  • price, an amount plus a three-letter currency code
  • availability, one of in_stockout_of_stockpre_orderbackorderunknown
  • brand, up to 70 characters
  • seller_name and seller_url
  • return_policy as a URL
  • target_countries and store_country as ISO country codes

Read that list as a checklist of things you probably already have and have never had to state precisely. Most stores fail on description (marketing copy rather than plain specifications) and availability (stale).

About reusing your Google feed: You may have read that you can just point your existing Google Shopping feed at OpenAI. That is conditionally true and worth quoting exactly. The spec says: “If OpenAI confirms that your registered feed supports this format, you can upload a compatible delimited product data feed without renaming its columns to OpenAI field names. Otherwise, continue to use the OpenAI specification.”

So the compatibility path exists, it is not automatic, and the field names genuinely differ. OpenAI uses item_idurl and image_url where Google uses idlink and image_link. If you go the Google-compatible route, OpenAI’s spec points to Google’s product data specification for the field definitions, and expects idtitledescriptionlinkimage_linkavailabilityprice and brand on every row, plus a valid gtin or mpn unless the product genuinely has no identifier.

Getting the feed right is the most direct move available on this page, and most of your competitors have not opened the specification.

How to optimize product pages, step by step

The feed tells ChatGPT what you sell. Your pages are what it reads to decide whether you are worth recommending.

Step 1: Fix your structured data

Start with Product markup on every product page, complete rather than partial. Here is what a full block looks like:

<script type="application/ld+json">
{
  "@context": "https://schema.org",
  "@type": "Product",
  "name": "Trailhead 40L Hiking Backpack",
  "image": "https://examplestore.com/img/trailhead-40l.jpg",
  "description": "Waterproof 40L pack with a ventilated back panel, rated for three-day treks. Fits torsos 16 to 21 inches.",
  "brand": { "@type": "Brand", "name": "Example Outdoor Co." },
  "sku": "TH40-GRN",
  "gtin13": "0123456789012",
  "offers": {
    "@type": "Offer",
    "price": "149.00",
    "priceCurrency": "USD",
    "availability": "https://schema.org/InStock",
    "url": "https://examplestore.com/trailhead-40l"
  },
  "aggregateRating": {
    "@type": "AggregateRating",
    "ratingValue": "4.7",
    "reviewCount": "318"
  }
}

Two rules that break more stores than anything else. Markup must match the visible page, so a price in your schema that differs from the price on screen is worse than no schema at all. And generate it from your product data through your template, never by pasting per product, because pasted markup drifts the first time someone edits a price. Which types still earn rich results and which quietly stopped is covered in our guide to schema markup in 2026.

Step 2: Write descriptions a machine can use

Lead with what it is, who it suits and what it costs. Then the specifications, in text, in the page, never inside an image. A model cannot recommend what it cannot read, and it will not guess a measurement.

The test: could someone answer a shopper’s question using only your description? If not, the model cannot either.

Step 3: Add comparison points

Assistants are constantly answering “which of these should I get.” Give them the material: how this model differs from the one above it, who each suits, what the tradeoff is. Being honest about who a product is not for makes the recommendation more quotable, not less.

Step 4: Build real social proof

Volume, recency and specificity, in that order of neglect. Use a review platform that outputs structured data so ratings are machine-readable rather than rendered in a widget. Never offer anything in exchange for a review; incentivised reviews breach the policies of every major platform and, since 2026, must be disclosed before they appear in Review or AggregateRating markup.

Step 5: Answer buyer questions on the page

Sizing, materials, compatibility, care, shipping and returns. These are the questions a shopper asks an assistant, and a page that answers them in plain language is the page that gets used to answer them.

AI SEO best practices for ecommerce in 2026

Four habits that separate stores that get named from stores that do not.

Write for the question, not the keyword: People describe situations to assistants. Your content should match the way they ask, which means longer, more specific, more conversational than a keyword tool suggests.

Solve the problem around the product: Buying guides, comparisons, and use-case content give a model context to recommend you in, and give you somewhere to be cited outside a product page.

Go long-tail deliberately: “Waterproof backpack for three-day treks with a short torso” has almost no search volume and is exactly the shape of a real assistant query.

Watch what is actually happening: Ask the assistants your buyers’ questions, monthly, and note which products get named. That list is your real competitive set, and it is usually not the one you assumed.

How to strengthen E-E-A-T on product pages

Models weigh evidence they can corroborate, which means most of this work happens off the product page.

Show who you are: a real business address, real contact details, real policies. State your return and shipping terms plainly rather than burying them. Keep your brand facts identical across your site, your marketplace listings and your social profiles, because a conflict is a reason to skip you. And earn mentions in places that are not yours, buying guides, forums, industry roundups, because third-party corroboration is what turns a claim into a fact a model will repeat.

This is the same discipline as answer engine optimization applied to products rather than services.

How to improve your visibility faster

If you have limited time, this is the order.

Fill the missing structured data fields: Most product pages carry name, price and availability and stop. Brand, GTIN or MPN, and ratings are usually the gap.

Rewrite your first 150 words: That passage does most of the work in any extraction. What it is, who it suits, what it costs, what makes it different.

Refresh anything stale: Discontinued variants, old prices, out-of-date availability. Stale data is the fastest way to lose a recommendation you already had.

Add comparison content: One honest comparison page can be cited far more often than ten product pages.

Build mentions off-site: The slowest item and the one that compounds.

How to optimize Shopify products specifically

Shopify does some of this for you and less than store owners assume.

Themes can output Product JSON-LD through Shopify’s structured_data Liquid filter, and the default output is thin: typically name, price, availability and URL. Brand, GTIN, SKU, full descriptions and review data usually need to be added through the theme or an app. So the honest position is that Shopify gives you the skeleton and you supply the parts that decide whether a model can verify you.

Three specifics worth doing on Shopify:

  • Use metafields for real specifications, then surface them in the page text rather than only in the admin
  • Choose a review app that outputs structured data, not one that renders stars in JavaScript
  • Bind price and availability to live product variables, because hardcoded values in a theme’s JSON-LD drift the moment a price changes

If you would rather have the whole stack built and maintained, that is what our e-commerce SEO work covers.

Your first three moves

In order, and the first one is free.

Ask ChatGPT what your buyers ask: Five real purchase questions in your category. Write down which products and brands get named. That is your baseline and your competitive set.

Read the feed specification: Open OpenAI’s product feed spec and check your catalogue against the required fields, especially is_eligible_search. Most stores discover two or three fields they have never populated.

Complete your Product schema: Generated from your product data through your template, matching the visible page, with brand, identifier and ratings included.

We work on this with brands preparing for AI-led product discovery, and the pattern is consistent: the constraint is almost never the marketing, it is the product data nobody has ever had to state precisely. If you want the wider picture of how being recommended differs from ranking, our guide to why answer engine optimization matters covers the mechanism.