You cannot pay, pitch or prompt your way into ChatGPT's product results. OpenAI's help center says product results are "selected independently by ChatGPT and are not ads", and that a product shows up when ChatGPT judges it relevant to what the shopper asked (OpenAI Help Center). So "how to rank in ChatGPT" really means: make your products easy for ChatGPT to find, read, trust and compare. Nobody can promise you a placement, and anyone who does is guessing.
What you control is concrete. Let OpenAI's search crawler reach your product pages, put price, stock and GTIN in structured data, describe products in the attributes people actually ask about, keep price and availability identical everywhere, collect real reviews and, if you sell in the US, apply to send OpenAI a product feed. This guide walks through each input with field names and a worked example, then shows how to check whether it is working.
What OpenAI says ChatGPT weighs when it picks products
OpenAI publishes more about shopping results than most people realize. According to its help article on shopping, ChatGPT considers three things when it decides which products to surface:
- Structured metadata from first-party and third-party providers, such as price and product description, plus other third-party content.
- ChatGPT's own answer to the question before it looks at fresh search results.
- OpenAI's safety standards and product policies, which can exclude categories outright.
It also uses the shopper's context: the wording of the request, plus Memory and custom instructions when those are switched on. Someone who told ChatGPT they hate clowns will not see clown costumes. That is why two people asking the same question can get different products, and why a fixed "rank" does not exist.
Once a shopper clicks a product, ChatGPT may list the stores that sell it. OpenAI says that merchant list is ranked on factors like availability, price, quality and whether the seller is the maker or primary seller of the item. For brands that sell direct, that last factor is worth noting: your own store can be the preferred source for your own products, provided its data is complete.
Ads do not change this. On October 5, 2026, OpenAI announced a new visual ad format and repeated that advertising does not influence the answers ChatGPT provides (OpenAI). Ads are a separate, labeled slot. Buying them is a media decision, not a lever on organic product results.
Two ways your catalog reaches ChatGPT: the crawl and the feed
ChatGPT can read your product pages through OpenAI's crawler, and it can ingest a product feed you send. OpenAI's merchant page answers the obvious question directly: you do not need a feed if ChatGPT already crawls your site, but a feed gives you more control over how products appear and keeps the information current.
- The crawl: open to every store. It works only if OAI-SearchBot can fetch your pages and those pages state price, stock and specs in plain HTML or structured data.
- The feed: sent through the Agentic Commerce Protocol (ACP), OpenAI's open standard for sharing catalogs with ChatGPT. On the publish date of this guide, OpenAI's merchant page says shopping is live for US users, feed access runs through an application and waitlist, and a self-service merchant portal is planned. Shopify and Etsy catalogs are already integrated, with no application needed.
- A ChatGPT app: an option OpenAI positions for larger merchants that want their own experience inside ChatGPT. Walmart launched one in March 2026.
Checkout has changed as well. OpenAI launched Instant Checkout in September 2025. On March 24, 2026, it said the first version did not offer the flexibility it wanted and began letting merchants use their own checkout while it focuses on product discovery (OpenAI). On the publish date of this guide, the merchant page says OpenAI is moving away from a standalone in-chat checkout, that purchases are completed on the merchant's own site or app, and that there are no fees on purchases that start in ChatGPT. For ranking, that keeps things simple. The fight is over the product result. The sale still happens in your store.
Step 1: let OAI-SearchBot fetch your product pages
OpenAI runs separate user agents for separate jobs (OpenAI crawler documentation). OAI-SearchBot is the search crawler, and OpenAI states that sites opted out of it will not be shown in ChatGPT search answers. GPTBot collects content that may be used for model training and is controlled separately, so you can block training and still allow search. ChatGPT-User visits a page when a person asks ChatGPT to, and it is not used for automatic crawling. After you change robots.txt, OpenAI says search can take about 24 hours to adjust.
Four crawl checks for OAI-SearchBot
None of this is new; it is ordinary crawlability. If you have not audited it in a while, our technical SEO checklist for online stores covers status codes, rendering and crawl traps in more depth.
Step 2: mark up every offer with Product and Offer structured data
Structured data hands every crawler the same machine-readable facts, and "structured metadata" is the first input on OpenAI's list. OpenAI does not publish a markup spec of its own, so the most complete public reference is Google's merchant listing documentation: name, image and an Offer with price and priceCurrency are required, while gtin, brand, availability, aggregateRating, review, shippingDetails and hasMerchantReturnPolicy are recommended (Google Search Central). The fields that matter most for AI shopping assistants:
- gtin13 (or gtin8, gtin12, gtin14): the identifier that lets an assistant match your offer to the same product sold elsewhere and merge reviews and prices. Check every code with an EAN and GTIN validator before it goes live, and read how GTIN, UPC and EAN differ if your catalog mixes them.
- offers.price and offers.priceCurrency: the price a shopper pays on that page, not a "from" price for the cheapest variant.
- offers.availability: InStock, OutOfStock, PreOrder or BackOrder, matching what the add-to-cart button actually does.
- brand.name and mpn: a second way to identify the product when no GTIN exists.
- aggregateRating and review: only for reviews that are visible on the page itself.
- shippingDetails and hasMerchantReturnPolicy: delivery cost, delivery time and return window are exactly what shoppers ask an assistant about.
To spot-check a template, paste one product into the product schema generator and compare its output with what your theme renders. Missing gtin and availability are the two gaps we see most often.
Step 3: describe products in the attributes shoppers ask about
People do not type product names into ChatGPT. They describe a situation: "the quietest cordless stick vacuum for a small apartment, under $300". To answer that, the assistant needs a noise level, a weight, a storage size and a price for every candidate. If your page says "whisper-quiet power" and nothing else, there is nothing to compare, and a competitor with a decibel figure wins the shortlist.
Here is the same illustrative product before and after an attribute pass:
One stick vacuum before and after an attribute pass
| Title | VX200 Stick Vacuum Grey | Lumo VX200 Cordless Stick Vacuum, 62 dB, 1.4 kg, 45-Minute Runtime, Grey |
|---|---|---|
| Description | Powerful, whisper-quiet cleaning for every home. | Not part of this example |
| color | grey | Grey, in the title |
| noise_level | Not listed | 62 dB in eco mode |
| weight | Not listed | 1.4 kg without the battery dock |
| runtime | Not listed | 45 minutes in eco mode, 12 minutes in boost |
| dustbin_capacity | Not listed | 0.4 L |
| filter_type | Not listed | HEPA |
| storage | Not listed | Wall mount included, 112 cm tall when mounted |
| gtin, mpn, brand | Not listed | The GS1-issued EAN, VX200-GR, Lumo |
| price, availability | Not listed | $279, in stock |
A useful rule: every adjective in a description should have a number or a named standard behind it somewhere in the attributes. Keep units consistent within a category, so that every vacuum states weight in kilograms and noise in decibels. Assistants compare across stores, and a mix of units is an easy reason to leave a product out.
Step 4: keep price and stock identical on the page, the feed and the cart
OpenAI's help article admits that price and shipping changes can take time to show in ChatGPT, and its merchant ranking weighs availability and price. A product that appears in stock at $279 in ChatGPT and sold out at $299 on your site loses the shopper and the trust. The feed specification is explicit: update the feed when a sale starts or ends and when stock status changes (OpenAI feed reference).
- Model sales with a sale price and start and end dates instead of overwriting the base price, so every channel switches back at the same moment.
- Use the availability values the channel expects. OpenAI's own format accepts in_stock, out_of_stock, pre_order, backorder and unknown.
- Give every size and color its own row with its own stock, linked by a shared group ID. A parent product that says "in stock" while size 43 is sold out is the classic mismatch.
- Push stock changes from one source. When the store, the feed and the marketplace each hold their own stock number, they drift.
Step 5: earn reviews and third-party coverage ChatGPT can read
ChatGPT may show review summaries generated from reviews on public websites, and labels such as "Budget-friendly" can come from what reviewers mention rather than from your price. OpenAI notes that it does not verify these reviews. In practice, reviews shape how a product is described, not only whether it appears.
- Ask for a review after delivery, not at checkout, so the review describes the product rather than the ordering process.
- Render reviews in the page HTML. Reviews that only load inside a third-party widget after a click may never be read.
- If you send review_count and star_rating in a feed, they must describe the same set of reviews, as OpenAI's spec requires.
- Reply to critical reviews with facts. A summary that says "runs small, but the brand offers free size exchanges" beats silence.
Never write or buy reviews. Besides the legal risk, inflated ratings that do not match independent review sites make your listing look less credible to a system that reads both.
Reviews are one kind of third-party content, and OpenAI lists "other third-party content" next to structured metadata as an input. For a product, that means independent reviews, comparison articles and forum answers that name it with specific facts. You cannot write those yourself, but you can make them easier to get right: send review samples with a spec sheet, keep a public page with the exact attributes and identifiers, and correct outdated specs on comparison sites when you find them.
Step 6: prepare an OpenAI product feed before you are approved
If you sell in the US, a direct feed is the most controllable input you have. The OpenAI feed reference lists nine required fields: item_id, title, description, url, brand, seller_name, image_url, availability and price. The optional fields are where products become comparable:
Optional OpenAI feed fields that make products comparable
| gtin | exactly 8, 12, 13 or 14 digits with a valid check digit. Leave it out if the product has none, and never invent one. |
|---|---|
| mpn | submit it together with brand, especially when no GTIN exists. |
| review_count and star_rating | both describing the same review population. |
| accepts_returns, return_deadline_in_days and return_policy | the return terms an assistant can quote. |
| group_id, listing_has_variations and variant_dict | for variant rows, where group_id must differ from item_id. |
| is_eligible_search | on by default (older feeds may still send the accepted alias enable_search). OpenAI notes that eligibility does not guarantee display. |
The spec's examples use JSONL, one product or variant per line, and OpenAI also accepts a Google-compatible TSV or CSV file once it confirms that format for your feed. Even if your application is still on the waitlist, building the feed now is the fastest way to find the gaps: every product that fails the required fields today is a product the crawl is probably misreading too. Our ChatGPT Shopping feed guide goes field by field.
Measuring whether ChatGPT shows your products
There is no ChatGPT equivalent of Search Console for product results, so measure with a fixed sample and accept that it is a sample.
- Write 20 to 30 prompts per category the way customers phrase needs. Search Console queries and customer service emails are good sources: "cordless vacuum for stairs", "vacuum quiet enough for a sleeping baby".
- Run them monthly in a fresh chat with Memory off, and note whether your product appears, which store is listed first for it, and which price and facts ChatGPT shows.
- Log every factual error. A wrong price points to feed freshness, a wrong spec points to a missing or conflicting attribute, a missing product often points to crawl access.
- Track sessions referred by chatgpt.com in your analytics, landing page by landing page, to see which products already earn clicks.
Treat the results as a direction, not a ranking. The same prompt can return different products for different people, which is exactly how OpenAI describes the system.
Google AI Mode, Perplexity and Copilot read the same signals
ChatGPT is one AI shopping assistant among several. Google shows Merchant Center product listings in AI Mode in Search and in the Gemini app, announced dozens of new Merchant Center attributes for conversational commerce in January 2026, and documents optional conversational attributes such as question_and_answer and related_product. Perplexity builds product cards from merchant catalogs and the open web, and Microsoft Copilot runs its own shopping results. Inside the big marketplaces, assistants such as Amazon's Rufus answer from your listing content.
The pipes differ, but the inputs barely do: crawlable pages, valid identifiers, typed attributes, accurate offers and real reviews. That is why one clean product record pays off across all of them. Our AI shopping readiness guide covers the channel-specific details.
Five ChatGPT ranking myths that waste a quarter
- "An llms.txt file gets my products into ChatGPT." OpenAI's shopping and crawler documentation does not mention it. Our llms.txt guide covers what the file can and cannot do. Crawl access, structured data and a feed are the documented inputs.
- "Blocking GPTBot keeps me out of ChatGPT." GPTBot governs training. OAI-SearchBot governs search. Blocking the wrong one either leaks content you wanted to protect or hides products you wanted to show.
- "Buying ChatGPT ads lifts my organic results." OpenAI says advertising does not influence ChatGPT's answers. Ads and product results are separate.
- "Keyword-stuffed titles help." ChatGPT may generate simplified product titles from the data it receives, because merchants title the same product differently. Specific attributes survive that rewrite; keyword lists do not.
- "It is a one-off project." Prices change, stock runs out and new variants arrive weekly. Visibility follows data that stays current, which makes it an operating routine.
Most of this work is product data work, and that is where WISEPIM helps: AI enrichment fills the typed attributes and descriptions, Quality Guard blocks products with a missing GTIN, price or image before they reach a channel, and Feed Hub generates the ChatGPT Shopping feed from the same record that feeds your store. See how it fits together on the agentic commerce readiness page.

