Two stores. Identical products, identical schema, identical SEO. One shows up inside ChatGPT Shopping, the other never does.
The difference isn't optimisation quality. The three engines don't read the same thing to find a product — and a store optimised for one pipeline can be structurally invisible to the other two.
Two pipelines, not one
Every one of these platforms runs two separate systems, and almost every AEO checklist conflates them.
The citation surface answers "what's the best way to do X" with numbered sources. Fed by web crawling. Your pages, schema, llms.txt and robots.txt rules all live here.
The shopping surface answers "best waterproof boots under €150" with a product carousel. On ChatGPT and Google this runs primarily on structured feeds rather than on a crawl of your site.
That's why you can allow every AI crawler, ship perfect JSON-LD, and still be missing from ChatGPT product comparisons.
ChatGPT complicates this, and it's worth stating up front because it cuts against the simple version of the rule. Alongside feed-driven results it runs Shopping Research, an agentic mode that browses in real time. OpenAI states plainly that results are organic and based on publicly available retail sites — reading product pages directly, citing sources, with a separate allowlist for merchants who want to be eligible.
So there are three routes on ChatGPT, not two. Pages are irrelevant to one and load-bearing on another. The lesson isn't "pages don't matter for shopping" — it's that feeds and pages feed different surfaces and neither substitutes for the other.
Who reads what
| ChatGPT | Perplexity | Google AI Mode | |
|---|---|---|---|
| Product source | ACP feed, pushed | Live page retrieval | Shopping Graph (Merchant Center) |
| Reads your page for shopping? | Not for feed-driven results; Shopping Research reads retailer pages | Yes | Secondary — schema.org markup contributes |
| Index crawler | OAI-SearchBot | PerplexityBot | Googlebot |
| Training crawler | GPTBot | — |
Google-Extended (token, not a bot) |
| Merchant onboarding | Feed access by application; Shopping Research by allowlist | Free, ~5 min | Merchant Center; UCP staged |
The OpenAI crawler split is load-bearing and widely misconfigured. GPTBot is training. OAI-SearchBot is search visibility. Blocking "OpenAI" wholesale usually means someone intended the first and accidentally did the second — which removes you from ChatGPT citations entirely, feed or no feed.
User-agent: GPTBot
Disallow: /
User-agent: OAI-SearchBot
Allow: /
Check what's actually hitting you
Don't trust anyone's summary, including this one:
grep -Eo "GPTBot|OAI-SearchBot|ChatGPT-User|PerplexityBot|Perplexity-User|Googlebot" \
/var/log/nginx/access.log | sort | uniq -c | sort -rn
You want OAI-SearchBot and PerplexityBot showing up regularly — those are the index builders. Their absence usually means a robots.txt rule, a WAF rule, or a CDN bot-management setting doing something you didn't intend.
Worth knowing: firewall blocking is invisible in robots.txt. Your rules can be perfectly permissive while Cloudflare silently rejects the request. The log is the only ground truth.
The geography bit
Two things get reported as one here, and separating them changes the plan.
Shopping features available to users are broad — shoppers in most markets can already ask these engines for product recommendations.
Merchant onboarding is not. Direct ACP feed access runs through an application with staged rollout. UCP checkout began in the US and reached Canada, Australia and the UK by May 2026, arriving by cohort. Perplexity's Merchant Program is free and open anywhere.
So your customers may already be asking about products like yours while your ability to push structured data to two of the three is still queued. Perplexity is the channel where good server-rendered markup produces results today, with no application and no wait.
That reorders the work. Page-level readability first — it's what Perplexity reads now, what OAI-SearchBot indexes for citations now, and what feeds the schema.org half of the Shopping Graph. Feeds second, built and validated so the application is a formality when your region opens.
What I'm not sure about
- How much ChatGPT's two shopping surfaces overlap is unclear. Feed-driven results and Shopping Research are documented separately; how presence in one affects the other is not spelled out.
- Ranking mechanics are undocumented on all three. Any "top 3 ranking factors" claim here is inference from correlation, not a vendor statement.
- Perplexity's crawling practices are contested — Cloudflare alleged undeclared crawlers in August 2025, Perplexity disputed the characterisation. I have no independent basis to adjudicate.
- Regional availability moves faster than any published guide. Re-verify before it drives a budget decision.
- I build open-source Magento AEO modules, so "prioritise page-level readability" aligns with what my tooling does. Check the claim rather than take it.
Full version with the decision table by merchant type, the Magento-specific paths, and the source list: original post on angeo.dev
Modules are MIT-licensed on Packagist if useful.
Top comments (2)
didn't realize Gemini relied so heavily on the google shopping graph compared to the others. interesting stuff
Yeah — and Perplexity is the real outlier there. It's the only one of the three where your page markup is the primary input rather than a feed.