Step 1 — Understand ChatGPT Shopping's ingestion model
ChatGPT Shopping fetches NDJSON product feeds + Product schema + FAQ schema. Each plays a different role.
ChatGPT Shopping does not re-crawl your product pages on every query — it ingests a structured product feed (NDJSON preferred) on a cadence, enriches it with Schema.org during crawl windows, and retrieves from that indexed store at query time. Understanding the three inputs and their cadences is the difference between 'my changes showed up this week' and 'my changes show up in 90 days.'
- NDJSON product feed
- Fetched weekly on average; drives catalogue availability.
- Product schema
- Fetched on crawl; drives price + variant accuracy.
- FAQPage schema
- Fetched on crawl; drives answer-block citation rate.
- AggregateRating
- Fetched on crawl; drives ranking order on ties.
Step 2 — Ship the NDJSON product feed
One JSON object per line. Retailers that ship NDJSON get indexed 3× faster than those relying on Schema alone.
An NDJSON product feed is a file at /products.ndjson where each line is a self-contained JSON object representing one product. ChatGPT Shopping, Perplexity Shopping, and several emerging AI retrieval engines fetch this format directly. Shopify's default Product JSON API is close but not identical — a 10-line transform script is usually needed.
{"id":"8273","sku":"ISAB-1CT-14K","title":"Isabella 1ct Solitaire","price":{"amount":1490,"currency":"USD"},"availability":"in_stock","brand":"Kloira","url":"https://kloira.com/products/isabella-solitaire","image":"https://…","description":"…","gtin":"0123456789012","category":"Jewelry > Rings > Engagement"}Step 3 — Tune the top 20 product Q&A pairs
ChatGPT Shopping cites Q&A blocks more often than marketing copy. Write the questions your shoppers actually ask.
The single highest-leverage copy change is replacing generic FAQs ('Do you offer refunds?') with the specific questions your support team receives daily ('Will this 1 ct look too small on a size 7 finger?'). ChatGPT's citation engine pattern-matches between user queries and your Q&A headers — specific matches beat generic ones every time.
- Pull your top 20 support tickets per product from Gorgias/Zendesk.
- Convert each into a 1-sentence question + 40-80 word answer.
- Wrap in FAQPage schema and publish on the product page.
- Reference the same questions (verbatim) in your llms-full.txt dump.
Step 5 — Test inside the ChatGPT Shopping surface
Before measuring, verify you can find yourself. Run 20 prompts manually and log the results.
Don't measure blind — first verify ChatGPT Shopping can find you at all. Run your 20 buyer-intent prompts manually in ChatGPT with shopping enabled and log: (a) did your brand appear, (b) at what rank, (c) was the quoted information correct. This baseline is what every future week compares against.
“We ran the 20-prompt baseline on Kloira before any GEO changes — 3 of 20 prompts surfaced the brand, all at positions 4-6. After the 8-step GEO quickstart, 14 of 20 surfaced at positions 1-3 within 10 days.”
Step 6 — Run the weekly measurement loop
Prompt panel → citation count → diff vs. last week → targeted fixes. 30 minutes per week.
The measurement loop is deceptively simple but ruthlessly effective. Once per week, run the same 20 prompts; log citations; diff against last week; pick the 3 prompts where you lost ground and identify which signal is weakest on that prompt's target page. Over 12 weeks this consistently moves Share of AI Voice 15-30 points.
- Run the 20-prompt panel on Monday.
- Log: cited (yes/no), rank, quote accuracy.
- Compare against prior week; flag drops of ≥2 positions.
- For each flagged prompt, inspect the target page's llms.txt coverage, Schema completeness, and answer-block specificity.
- Ship 3 fixes, regenerate feeds, wait 7 days.