cd /news/ai-products/every-ai-assistant-reads-a-different… · home topics ai-products article
[ARTICLE · art-128949] src=dev.to ↗ pub= topic=ai-products verified=true sentiment=· neutral

Every AI assistant reads a different web. I counted the citations in 141 answers

A developer ran the same 47 buying questions through ChatGPT, Perplexity and Google AI Mode on the same day and classified every citation across the resulting 141 answers, finding Perplexity averaged 16.7 citations per answer versus 3.7 for Google AI Mode and 1.6 for ChatGPT. The study also found that all 507 Google Maps links ChatGPT produced were constructed search queries rather than real listings, and that JSON-LD injected via Next.js next/script never appears in server HTML, leaving structured data invisible to non-JavaScript fetchers.

by read2 min views1 publishedSep 14, 2026

I put the same 47 buying questions to ChatGPT, Perplexity and Google AI Mode on the same day, and classified every citation across the resulting 141 answers. The engineering-relevant part of the result is not the ranking. It is how differently the three engines behave as clients of your site.

Citations per answer. Perplexity 16.7, Google AI Mode 3.7, ChatGPT 1.6. Perplexity cited provider websites 667 times across its 47 answers. ChatGPT cited them 47 times, almost exactly one per answer.

That gap is the whole engineering brief. Against Perplexity, the page you ship is genuinely in play: it reads widely and shows its work. Against ChatGPT, at roughly one site per answer, selection happens before your page is read, and no amount of on-page work changes the shortlist you were not on.

A trap worth naming. ChatGPT referenced Google Maps in 23 of 47 answers, which reads as an argument for a verified business listing. It is not. All 507 Maps links were of the form google.com/maps/search/Name,+City, a constructed query. Links to actual listings, /maps/place/, numbered zero. The model finds the provider by ordinary web search and renders the map link as an affordance. Check link shapes before drawing a conclusion from a hostname.

One implementation detail that surprised me while checking my own site. JSON-LD rendered through Next.js next/script does not appear in the server HTML at all, including with strategy="beforeInteractive". The content is queued into self.__next_s and injected after hydration. Google executes JavaScript and gets there eventually. Most of the fetchers behind assistant answers do not. On one page I could see it directly: a FAQPage block emitted through a plain <script> tag showed up in curl output, while a BlogPosting block emitted through next/script on the same page did not.

If you are marking up a site for this, use a plain <script type="application/ld+json" suppressHydrationWarning>. It is a one-line difference and it decides whether your structured data exists for non-JS readers. The channel split. The Google results page for these commercial terms is roughly half listicles and half agency landing pages. Assistant answers on the same subject lean on video, professional networks, forums and established publishers. Optimising for one does not move the other.

Full method, all the tables, the sample size caveats and a section on what the data does not support: https://www.bandziuk.com/blog/ai-assistant-recommendations-study

── more in #ai-products 4 stories · sorted by recency
── more on @chatgpt 3 stories trending now
sponsored brought to you by zahid.host 4,200+ EU-deployed projects
reading about agents? ship yours in a single git push.

Run your AI side-project on zahid.host

EU-based hosting, git-push deploys, automatic HTTPS, no cold starts. Free tier with a custom domain — perfect for shipping the agent you just read about.

$git push zahid main
Live at https://your-agent.zahid.host
Get free account → Pricing
from €0/mo · no card required
LIVE [news/every-ai-assistant-r…] indexed:0 read:2min 2026-09-14 ·