Feed Optimization Guide

Product Feed Optimization Guide for ChatGPT Shopping

Learn the required fields, format specifications, and optimization strategies for ChatGPT Shopping feeds.

WISEPIM·
12
Required Fields
40+
Optional Fields
Daily
Refresh Rate
Overview

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

PlatformOpenAI ChatGPT Shopping / Instant Checkout (ACP)
Feed Format
XML
Max ProductsUnlimited
Refresh RateDaily
Field Requirements

ChatGPT Shopping Field Requirements

Required and optional fields for your product feed

Required
ide.g. SKU-AIRMAX90-BLK-42
String
50
titlee.g. Nike Air Max 90 - Men's Running Shoes - Black/White - Size 42 EU
String
150
descriptione.g. Iconic running silhouette with visible Max Air heel cushioning, synthetic-leather and mesh upper, and a rubber waffle outsole.
String
5000
linke.g. https://www.example.com/products/nike-air-max-90-black
URL
2000
image_linke.g. https://cdn.example.com/products/airmax90-black-1200.jpg
URL
2000
pricee.g. 149.95 EUR
String
availabilitye.g. in_stock
Enum
brande.g. Nike
String
70
gtine.g. 0194501234567
String
14
conditione.g. new
Enum
google_product_categorye.g. Apparel & Accessories > Shoes > Athletic Shoes > Running Shoes
String
750
Schema.org Product on landing pagee.g. { "@type": "Product", "name": "...", "offers": { "@type": "Offer", "price": "149.95", "priceCurrency": "EUR" } }
JSON-LD
Optional
sale_pricee.g. 119.95 EUR
String
sale_price_effective_datee.g. 2026-05-15T00:00:00+02:00/2026-05-31T23:59:59+02:00
String
additional_image_linke.g. https://cdn.example.com/products/airmax90-side.jpg
URL
2000
colore.g. Black/White
String
40
sizee.g. 42 EU
String
100
materiale.g. Synthetic leather, mesh
String
200
item_group_ide.g. AIRMAX-90
String
50
product_highlighte.g. Visible Max Air cushioning in the heel
String
150
mpne.g. CW7483-002
String
70
shippinge.g. NL:::5.95 EUR
String
Schema.org AggregateRatinge.g. { "@type": "AggregateRating", "ratingValue": "4.6", "reviewCount": "1247" }
JSON-LD
Feed Structure

How ChatGPT Shopping Feeds Are Structured

Key structural rules and formatting requirements for this feed type

  1. 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. 2

    Emit Schema.org Product JSON-LD on every product landing page

    ChatGPT&apos;s answer-grounding crawler relies heavily on Schema.org Product structured data when grounding live answers. JSON-LD inside a <script type=&quot;application/ld+json&quot;> 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. 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. 4

    Write descriptions as natural language, not keyword lists

    ChatGPT&apos;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. 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&apos;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 &amp; Accessories &gt; Shoes &gt; Athletic Shoes &gt; Running Shoes</g:google_product_category>
  6. 6

    If integrating Instant Checkout, build against the ACP REST API on agenticcommerce.dev

    Agentic Commerce Protocol (ACP) is OpenAI&apos;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&apos;s purchase intent
    Spec home: agenticcommerce.dev (OpenAI + Stripe, Apache 2.0)
Optimization

ChatGPT Shopping Optimization Tips

Proven strategies to improve your feed performance and product visibility

  1. 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 - Black
    Bosch Series 8 60cm Induction Hob - 4 Zones - Black Glass
  2. 2

    Ensure Schema.org Product/Offer JSON-LD price matches the feed and the rendered page

    ChatGPT&apos;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. 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. 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) < 8
    Registration: gs1.org for new manufacturer codes
  5. 5

    Refresh the feed daily and after every price change

    ChatGPT&apos;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 Center
    Real-time: push deltas via the Content API on every price change
  6. 6

    Whitelist GPTBot, OAI-SearchBot, and ChatGPT-User in your CDN

    OpenAI&apos;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 indexing
    OAI-SearchBot - search-grounded answers
    ChatGPT-User - live fetches during user sessions
Troubleshooting

Common ChatGPT Shopping Feed Errors

Frequent feed issues and how to resolve them

  • Error

    Treating ACP as a required product feed format

    Solution

    ACP (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

    Solution

    OpenAI 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

    Solution

    Provide 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

    Solution

    ChatGPT 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

    Solution

    ChatGPT&apos;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

    Solution

    Image 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.

Metrics

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&apos;s Rich Results Test or Schema.org&apos;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

1

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&apos;s crawlers.

2

Add Schema.org Product JSON-LD to every product landing page

Emit a <script type=&quot;application/ld+json&quot;> 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&apos;s Rich Results Test. JSON-LD must match the rendered DOM price exactly - generate both from the same source of truth.

3

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.

Free Download

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&apos;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&apos;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&apos;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
Get Free Template

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

checklist.html
  • Inventory all product sources
  • Define your attribute schema
  • Normalize brand names
  • Add alt-text to every primary image
+ more steps in the attachment
Printable checklistHTML · 10 steps

The product feed optimization checklist

Actions:10Phases:4Format:HTML · print → PDFOwners included:Yes

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.

Inside WISEPIM

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.

WISEPIM Feed Hub — multi-channel feed management dashboard

Ready to Optimize Your ChatGPT Shopping Feed?

WisePIM automatically generates optimized product feeds for all major channels from your central product catalog.