Product Feed Optimization Guide for ChatGPT Shopping
Learn the required fields, format specifications, and optimization strategies for ChatGPT Shopping feeds.
What is ChatGPT Shopping?
ChatGPT Shopping is the product discovery and recommendation experience inside ChatGPT, where users describe what they want in natural language and the assistant returns a curated shortlist with prices, retailer signals, and (for participating merchants) a path through OpenAI's Instant Checkout. ChatGPT has become one of the highest-volume consumer surfaces for product research; for merchants, presence inside ChatGPT answers is increasingly a function of how cleanly your product catalog is published to the open web rather than how aggressively you bid on a paid channel.
Two distinct mechanisms govern merchant presence in ChatGPT. First, organic discovery: ChatGPT's shopping answers are sourced from the open web through OpenAI's crawlers (GPTBot for general indexing, OAI-SearchBot for search-grounded answers, ChatGPT-User for live fetches during a user's session). The product catalogs OpenAI most reliably reads are merchants who publish a Google Shopping XML feed and surface Schema.org Product structured data on their landing pages - the same investments that benefit Google, Bing, and Perplexity also benefit ChatGPT. Second, Instant Checkout: a separate opt-in program backed by the Agentic Commerce Protocol (ACP, agenticcommerce.dev), an open spec co-authored by OpenAI and Stripe.
ACP is a checkout/agent protocol, not a product feed format. It defines REST endpoints (checkout_sessions, payment tokens, agent flows) and an MCP-compatible interaction layer that lets ChatGPT initiate a purchase on the user's behalf without leaving the conversation. Merchants who want Instant Checkout integrate against the ACP API on top of their existing Stripe payments stack; ACP does not require submitting a separate product feed. Importantly, organic ChatGPT discovery is independent of ACP - merchants without Instant Checkout can still surface in answer cards if their catalog is well-indexed by GPTBot. The strategic implication: invest in feed quality (Google Shopping XML + Schema.org Product on landing pages) for organic visibility; layer ACP/Instant Checkout on top if you want frictionless in-conversation conversions.
At a Glance
ChatGPT Shopping Field Requirements
Required and optional fields for your product feed
How ChatGPT Shopping Feeds Are Structured
Key structural rules and formatting requirements for this feed type
- 1
Publish a Google Shopping XML feed (RSS 2.0 with Google namespace)
OpenAI's crawlers index merchants who publish a standard Google Shopping XML feed (RSS 2.0 with xmlns:g="http://base.google.com/ns/1.0") and merchants who emit Schema.org Product structured data on landing pages. There is no separate ChatGPT-specific feed format. The same feed you submit to Google Merchant Center, Bing Shopping, and Perplexity is the catalog OpenAI reads.
<rss version="2.0" xmlns:g="http://base.google.com/ns/1.0"><channel><title>My Store</title><link>https://www.example.com</link><item><g:id>SKU-001</g:id><g:title>Product Title</g:title><g:price>29.99 EUR</g:price></item> - 2
Emit Schema.org Product JSON-LD on every product landing page
ChatGPT's answer-grounding crawler relies heavily on Schema.org Product structured data when grounding live answers. JSON-LD inside a <script type="application/ld+json"> block is the most reliable encoding. Include name, description, image, offers (price, priceCurrency, availability), brand, gtin/sku, and aggregateRating where applicable. This is independent of the XML feed - ChatGPT uses both signals together to verify the catalog claims.
<script type="application/ld+json">{"@context":"https://schema.org","@type":"Product","name":"Nike Air Max 90","image":"https://cdn.example.com/...","offers":{"@type":"Offer","price":"149.95","priceCurrency":"EUR","availability":"https://schema.org/InStock"}}</script> - 3
GTIN drives cross-merchant matching in ChatGPT answers
When ChatGPT returns a shopping answer covering a product available from multiple retailers, it deduplicates by GTIN to avoid showing the same product as ten near-duplicate cards. Listings without GTIN cannot enter the comparison and only surface for highly specific queries. Aim for 95+ percent GTIN coverage on branded SKUs. For private-label products without manufacturer GTIN, set identifier_exists to false explicitly.
<g:gtin>0194501234567</g:gtin><g:identifier_exists>false</g:identifier_exists> - 4
Write descriptions as natural language, not keyword lists
ChatGPT's LLM matches descriptions semantically against user queries. Lists of synonyms (running shoes, jogging shoes, athletic footwear, sports shoes) without sentence structure are flagged and demoted. Write the way a knowledgeable salesperson would describe the product. The assistant frequently lifts snippets directly into the answer card, so write copy you would be happy to see quoted.
Good: The padded collar prevents heel slip on long runs; visible Max Air cushioning protects the heel on impact.Avoid: Padded collar comfortable premium quality long-lasting durable running shoes. - 5
Use the most specific google_product_category available
google_product_category drives topical relevance and the kinds of follow-up questions ChatGPT will ask the user (size for shoes, capacity for storage devices). Use the deepest applicable node in Google's taxonomy. The current taxonomy is at google.com/basepages/producttype/taxonomy-with-ids.en-US.txt and is updated several times a year.
<g:google_product_category>Apparel & Accessories > Shoes > Athletic Shoes > Running Shoes</g:google_product_category> - 6
If integrating Instant Checkout, build against the ACP REST API on agenticcommerce.dev
Agentic Commerce Protocol (ACP) is OpenAI's open checkout protocol co-authored with Stripe. It defines REST endpoints (checkout_sessions, payment tokens, agent flows) and an MCP-compatible interaction layer that lets ChatGPT initiate a purchase. ACP is NOT a product feed format - it is the API ChatGPT calls when a user clicks Buy in an answer. Implementation is built on top of your existing Stripe stack. Full spec at agenticcommerce.dev. Instant Checkout is opt-in; organic answer-card inclusion does not require ACP integration.
ACP entry point: POST /checkout_sessions to create a session for a user's purchase intentSpec home: agenticcommerce.dev (OpenAI + Stripe, Apache 2.0)
ChatGPT Shopping Optimization Tips
Proven strategies to improve your feed performance and product visibility
- 1
Lead titles with brand and product name in natural-language phrasing
ChatGPT matches titles semantically against user queries. Lead with the brand and product name, then the most distinguishing attribute, then the variant. A clean Sony WH-1000XM5 Wireless Noise-Cancelling Headphones - Black is far more effective than Sony WH-1000XM5 Bluetooth Wireless Premium Active Noise Cancelling Over-Ear Headphones Hi-Fi Audio.
Sony WH-1000XM5 Wireless Noise-Cancelling Headphones - BlackBosch Series 8 60cm Induction Hob - 4 Zones - Black Glass - 2
Ensure Schema.org Product/Offer JSON-LD price matches the feed and the rendered page
ChatGPT's answer-grounding crawler validates JSON-LD price against the rendered DOM and against your feed. Mismatches between any of the three (feed, JSON-LD, rendered DOM) trigger a soft demotion. Generate JSON-LD from the same source of truth as the rendered price; do not hard-code stale values in JSON-LD templates.
Source of truth: product database -> feed + JSON-LD + rendered DOM together - 3
Include AggregateRating in Schema.org for trust signaling
ChatGPT prominently displays rating averages and counts in the answer card when AggregateRating JSON-LD is present. Products with declared ratings outrank products without them, even when other signals are equal - ChatGPT treats absence as a weak negative signal. Pull from your reviews platform (Trustpilot, Google Reviews, native) and refresh on the same cadence as the feed.
"aggregateRating": { "@type": "AggregateRating", "ratingValue": "4.6", "reviewCount": "1247" } - 4
Maintain GTIN coverage above 95 percent of catalog
ChatGPT cannot confidently surface a product in cross-retailer comparison answers without GTIN. Audit your catalog quarterly: pull items emitting identifier_exists false and check whether the manufacturer has since assigned a GTIN. For private-label brands, register your own GTINs through GS1 - the per-code cost is small and the discovery uplift is significant.
Audit query: SELECT COUNT(*) FROM products WHERE gtin IS NULL OR LENGTH(gtin) < 8Registration: gs1.org for new manufacturer codes - 5
Refresh the feed daily and after every price change
ChatGPT's answer-grounding gives weight to recently-refreshed feeds in tiebreakers. Stale prices are the second-most-common reason for losing the comparison spot - if the feed says 99 EUR but the landing page charges 109, ChatGPT will demote the listing for the next ingest cycle even if you fix it within the hour.
Scheduled fetch: every 4 hours via Merchant CenterReal-time: push deltas via the Content API on every price change - 6
Whitelist GPTBot, OAI-SearchBot, and ChatGPT-User in your CDN
OpenAI's three documented crawlers serve different purposes: GPTBot for general crawling and indexing, OAI-SearchBot for search-grounded answers, ChatGPT-User for live fetches inside an active user session. All three must be allowed in robots.txt and in any CDN bot-management rules - for the feed URL, all image URLs, and all product landing pages. Blocking ChatGPT-User in particular causes live answer grounding to fall back to stale GPTBot snapshots, suppressing fresh inventory and price changes.
GPTBot - general indexingOAI-SearchBot - search-grounded answersChatGPT-User - live fetches during user sessions
Common ChatGPT Shopping Feed Errors
Frequent feed issues and how to resolve them
- Error
Treating ACP as a required product feed format
SolutionACP (Agentic Commerce Protocol, agenticcommerce.dev) is a checkout/agent protocol authored by OpenAI and Stripe - REST endpoints + MCP layer, NOT a JSONL or XML feed format. Organic ChatGPT discovery is driven by your existing Google Shopping XML feed and Schema.org Product JSON-LD on landing pages. ACP integration is an opt-in addition for merchants who want Instant Checkout (in-conversation purchase). Confusing ACP with a feed format leads merchants to either skip ChatGPT entirely (waiting for an ACP-compatible exporter) or build something that does not exist.
- Error
Whitelisting OpenAI-User instead of the documented agents
SolutionOpenAI does not use a user agent named OpenAI-User. The three documented agents are GPTBot, OAI-SearchBot, and ChatGPT-User (full reference at platform.openai.com/docs/bots). Whitelisting the wrong name leaves the actual crawlers blocked. Update robots.txt and CDN bot rules to match the documented strings exactly.
- Error
GTIN missing or invalid
SolutionProvide a valid 8-, 12-, 13-, or 14-digit GTIN that passes check-digit validation. EAN-13 is most common in Europe, UPC-A in North America. If the product genuinely has no manufacturer-assigned GTIN, set identifier_exists to false explicitly. Do not invent GTINs - both invented and reused codes result in long-term suppression rather than a single rejection.
- Error
Price mismatch across feed, JSON-LD, and rendered DOM
SolutionChatGPT validates feed prices against landing-page JSON-LD and the rendered DOM on every ingestion. Differences trigger soft demotion. Causes are usually one of: timezone-mismatched promo windows, JSON-LD generated from a different data source than the rendered price, or a stale feed cache. Generate all three from the same source of truth.
- Error
Description detected as keyword stuffing
SolutionChatGPT's LLM scores descriptions for naturalness. Lists of synonyms repeated without sentence structure are flagged and the product is demoted. Rewrite as full sentences focused on features, materials, and use cases. Read-aloud test: if it sounds like marketing word-salad when spoken, the model thinks so too.
- Error
Image link returns 403 to OpenAI crawlers
SolutionImage URLs must respond with HTTP 200 to GPTBot, OAI-SearchBot, and ChatGPT-User from any IP. Pre-signed URLs that expire, CDN URLs that block bot user agents, and URLs that require referrer matching all fail. Whitelist all three OpenAI agents in your CDN bot rules and verify by curling with each user-agent string from a clean network.
Feed Performance Metrics to Track
Key metrics that indicate how well your product feed is performing
Answer Inclusion Rate
The percentage of ChatGPT product-intent prompts in your category where at least one of your products appears in the answer card. There is no public dashboard from OpenAI; merchants typically estimate this via referral-traffic analytics tagged with utm_source=chatgpt. A healthy estimated inclusion rate for an established merchant is 15-30 percent in their primary category.
Comparison Win Rate
When ChatGPT collapses multiple retailers selling the same GTIN into one card, exactly one retailer wins the buy box. ChatGPT weights price competitiveness, return policy, shipping speed, and trust signals (Schema.org AggregateRating, account tenure). A 30-day free return policy and 1-day shipping can flip the spot away from a 5-percent-cheaper competitor.
Click-Through Rate (CTR) from answers
Of users who see your product in a ChatGPT answer card and either click the link or proceed through Instant Checkout, the percentage who interact. Average rates are 6-12 percent across categories - meaningfully higher than traditional Shopping ad CTR because the user has already received a tailored recommendation. Below 4 percent typically indicates a weak product image or a price visibly higher than competitor cards.
Schema.org Validation Status
Use Google's Rich Results Test or Schema.org's validator to verify Product/Offer JSON-LD on a sample of product pages monthly. Validation failures (missing required fields, malformed JSON) cascade into ChatGPT demotion - the answer-grounding crawler treats invalid structured data the same as missing structured data.
Conversion Rate from ChatGPT Traffic
ChatGPT traffic typically converts at 1.5x-2.5x the rate of paid Shopping ads because users have already received an LLM-generated recommendation. If your conversion rate from ChatGPT (tagged via UTM or attributed via Instant Checkout) is at or below your overall site average, the most common cause is the answer-card price differing from the landing-page rendered price.
How to Set Up Your ChatGPT Shopping Feed
Step-by-step guide to creating and optimizing your product feed
Audit your existing Google Shopping XML feed for ChatGPT readiness
Pull a sample of 100 random items and verify: every item has a GTIN passing check-digit validation; every google_product_category is at least 4 levels deep in the taxonomy; every description reads as natural language rather than a keyword list; every image URL returns HTTP 200 to an unauthenticated request. Items failing any of these will be ingested but rarely surface in ChatGPT answers. Fix the systemic causes (often in the feed-generation script) before exposing the catalog to OpenAI's crawlers.
Add Schema.org Product JSON-LD to every product landing page
Emit a <script type="application/ld+json"> block on every product page with @type=Product, including name, description, image, brand, sku, gtin, and a nested Offer with price, priceCurrency, and availability. Where applicable, include AggregateRating with ratingValue and reviewCount from your reviews platform. Validate with Google's Rich Results Test. JSON-LD must match the rendered DOM price exactly - generate both from the same source of truth.
Whitelist GPTBot, OAI-SearchBot, and ChatGPT-User in your infrastructure
Add all three OpenAI user agents to robots.txt, to your CDN bot-management rules, and to any anti-bot WAF policies. This must apply to the feed URL, all image URLs, and all product landing pages. Verify by running curl with each user-agent string against a sample of URLs from outside your office network. Without proper whitelisting, GPTBot indexes the catalog but ChatGPT-User cannot ground live answers, suppressing fresh inventory and price changes.
ChatGPT Shopping Visibility Checklist
Download the complete checklist for getting your products into ChatGPT shopping answers and (optionally) Instant Checkout. Covers the Google-Shopping-XML-plus-Schema.org dual-signal pattern OpenAI's crawlers expect, the GPTBot/OAI-SearchBot/ChatGPT-User whitelist most merchants miss, and the Stripe-based ACP integration path for merchants who want Instant Checkout.
- Step-by-step audit of the Google Shopping XML feed signals OpenAI's crawlers actually use - GTIN coverage, category depth, description naturalness, image accessibility - with the systemic fixes for each
- Schema.org Product/Offer/AggregateRating JSON-LD template ready for any storefront platform, with validation against Google's Rich Results Test and the JSON-LD-vs-DOM consistency pattern that prevents soft demotion
- Complete OpenAI user-agent whitelist for GPTBot, OAI-SearchBot, and ChatGPT-User across Cloudflare, Akamai, AWS WAF, and Fastly so live answer-grounding never silently fails
- ACP / Instant Checkout integration roadmap on top of the Stripe stack - what to build, in what order, and how to measure incremental ChatGPT-attributed revenue before committing engineering time
Frequently Asked Questions
Common questions about ChatGPT Shopping product feeds
Google Product Category Lookup
Full taxonomy list, IDs, and how to map your products correctly.
Explore More Feed Guides
- Inventory all product sources
- Define your attribute schema
- Normalize brand names
- Add alt-text to every primary image
The product feed optimization checklist
Ten hard steps that bring your rejection rate down and your CTR up — from title templates to source-side structured data.
- Record your current rejection rate first as a baseline
- Per-channel title templates (no copy-paste)
- Pipe errors into Slack/email for same-day triage
One email, no follow-up spam. Print it and get to work.
Generate every feed automatically from one catalog
The WISEPIM Feed Hub turns your central product data into ready-to-publish feeds for every channel in this guide — and dozens more. Map fields once, schedule refreshes, monitor errors per channel, and push fixes back to the source. No manual exports, no format-juggling, no chasing rejections one channel at a time.

Ready to Optimize Your ChatGPT Shopping Feed?
WisePIM automatically generates optimized product feeds for all major channels from your central product catalog.