How ChatGPT product recommendations actually happen
ChatGPT does not keep a ranked list of stores waiting to be unlocked. When a shopper asks for a recommendation, the assistant runs a pipeline, and each stage can silently drop you:
| Stage | What the assistant does | What makes a store survive it |
|---|---|---|
| 1. Retrieval | Finds candidate pages — from an index of the web or by fetching URLs live during the conversation | Being findable and fetchable: stable public URLs, fast responses, no login walls |
| 2. Extraction | Parses each response into facts it can use: price, availability, shipping, returns, specs | Facts stated plainly in the response — not buried in scripts, accordions, or JavaScript-rendered widgets |
| 3. Citation | Recommends the products whose facts it could verify, and links the shopper out | Complete facts. An assistant that cannot find your return policy recommends the store where it can |
The stage merchants consistently underestimate is extraction. An assistant reads your page under a token budget — every byte of theme CSS, mega-menu markup, and tracking script is noise it pays for before it reaches your price. And the citation it produces is worth winning: AI-referred visitors convert ~38% higher than search visitors (Cyber Week 2025 retail data). They arrive pre-qualified, because the assistant already did the comparison shopping.
Where that citation lands also changed in merchants’ favor. OpenAI shifted from in-chat checkout toward discover in chat, transact on the merchant’s site: ChatGPT shortlists, and the buyer completes the purchase on your store. The recommendation is the contested step; win it and the rest of the funnel is yours.
Why clean, machine-readable content wins
Here is what extraction looks like against a typical product page. Our reference capture — deterministic, generated from committed fixtures, re-verified on every run — fetches the same demo product page two ways: as served by a standard storefront theme, and as served through a gateway that answers Accept: text/markdown with markdown rendered from the merchant’s product data.
| Response | Bytes | Approx tokens |
|---|---|---|
| Before — full product-page HTML | 91,226 | ~22,789 |
| After — gateway markdown | 1,315 | ~328 |
| Reduction | 98.6% | 98.6% |
In the gateway markdown, price is on line 4 and every buying fact fits in the first screenful — roughly 69x less context for the same facts, front-loaded instead of excavated. The before-HTML makes the assistant work for each of those facts: the first machine-readable price does not appear until character offset 23,185, and then only inside a JSON blob; the availability signal is a <span> with no label; shipping and returns wait in collapsed accordions behind eighteen reviews of widget markup.
Serving that clean format is not a niche trick; it is the highest-leverage mechanism anyone has measured. A mid-2026 study across 300k domains found content negotiation — answering the standard HTTP Accept: text/markdown header with clean text — ~4.2x more effective than llms.txt for accurate retrieval.
- Context reduction, gateway markdown vs product-page HTML
- 98.6%
- Rebilder reference capture
- Content negotiation vs llms.txt, accurate retrieval
- ~4.2x
- 300k-domain study, mid-2026
- Conversion lift, AI-referred visitors vs search
- ~38%
- Cyber Week 2025 retail data
How to get recommended by ChatGPT: the working checklist
Everything below is either free or already part of running a good store. Start by seeing your store the way an agent does:
curl -si -H 'Accept: text/markdown' \
https://your-store.example/products/best-seller- Look at what agents currently get. Run the request above against your best-selling product page and read the response honestly — could you state the price, stock, shipping cost, and return window from it in one pass? Or use the side-by-side preview in the Rebilder Console: it fetches any public URL twice, once as an agent and once as a browser, and works before you install anything.
- Front-load the buying facts. Price, availability, shipping cost, delivery estimate, and return window should be stated in plain text in the response — not rendered by JavaScript, not hidden in a collapsed accordion, not only present inside a JSON blob at character offset 23,185.
- Keep structured product data accurate. Schema.org Product markup is standard extraction input. A stale price or wrong availability there means an assistant either cites the wrong thing or drops you for a store it can trust.
- Serve agents markdown via content negotiation. This is the measured ~4.2x mechanism. Rebilder’s gateway does it free: it detects agents, answers
Accept: text/markdownwith markdown rendered from your source-of-truth product data, and passes every human and search crawler straight through to your normal site. Five adapters: Next.js, Shopify, Express, Fastify, and Cloudflare Workers. - Publish llms.txt — as the cheap extra, not the strategy. The gateway generates one from the same product data, or build one by hand in minutes with the free generator. More on honest expectations below.
- Keep policies on stable public URLs. Shipping and returns pages that answer fast, without login walls or region blocks, are what the extraction stage follows when your product page cites them.
- Measure, then iterate. The Console visit log records every classified request, including a platform column that shows when
chatgptvisited and whether it was served markdown or your full HTML.
How to get listed in ChatGPT Shopping
“ChatGPT shopping” gets used to mean two different things, and the distinction decides what you should build:
- Being recommended in conversation. ChatGPT names your product and links the buyer to your site. This is the surface everything above targets — legibility work, no application form, no fee.
- Protocol checkout. An agent completes the purchase over commerce rails. The rails are real: ACP, the Agentic Commerce Protocol from OpenAI and Stripe, has been live since September 2025; UCP followed from Google and Shopify in January 2026; and all three major card networks support agent-initiated payments.
The pattern that dominates mid-2026 is still the first one, reinforced by OpenAI’s own shift to discover in chat, transact on site. So the unglamorous answer to how to get listed in ChatGPT shopping conversations is: the same legibility work, done thoroughly. The shortlist is drawn from stores whose facts the assistant could retrieve and verify — and the stakes of being on it compound during demand spikes, when agent-integrated retailers saw ~7x Cyber Week 2025 sales growth versus those without.
llms.txt: ship it, but know what it is
llms.txt is a markdown index served at /llms.txt — a curated map of your products, policies, and key pages with one-line notes, built so an assistant can orient without crawling. It costs almost nothing to publish and it is genuinely useful as an index. It is also the most oversold artifact in this space.
The same 300k-domain study that measured content negotiation at ~4.2x found that llms.txt alone shows no citation lift. So publish one — the gateway generates it from your product data, or the free generator builds one by hand — and then put your remaining effort into the mechanism that measurably works: answering the Accept header with clean markdown.
The snake-oil test
The search results for this topic are crowded with vendors selling certainty that does not exist. Three questions filter them quickly:
- Do they guarantee placement or rankings? Nobody outside OpenAI controls what ChatGPT recommends. A guaranteed placement is a fabricated promise by definition.
- Can they show request-level evidence? If a vendor claims agents now read your site differently, they should show the requests: which platform, what was asked for, what was served. No log, no claim.
- Do they suggest showing agents different substance? Different prices or availability per requester is cloaking. It risks search penalties — and an assistant citing an offer you never honor. Same substance, different format is the defensible line.
Measure it: know when ChatGPT reads your store
Agent visits are invisible to normal analytics. An agent fetch runs no JavaScript, so it registers as a bounce or as nothing at all — which is how stores end up guessing about their fastest-growing audience. Request-level observation is the fix, and it is where this work stops being faith-based.
The Rebilder Console — free — records every request the gateway classifies: agent, human, search crawler, or protocol probe; the platform when identifiable, chatgpt among them (full list); what was served; and how long the render took. When the work on this page pays off, you see it in the log first — chatgpt rows answered with clean markdown instead of 91,226 bytes of theme — and in agent-referred orders after.
