Research · 01
Who AI Search Cites When Buyers Ask for AEO Help
A source-level analysis across seven buyer-relevant AEO questions, four AI engines and repeated runs.
· dataset and methodology downloadable below · re-measurement declared for 17 August 2026
I run a citation-measurement harness on my own business as Case Study Zero. On 16 July 2026 I pointed the same harness at a broader question: when a founder asks an AI engine a buyer-relevant question about AEO and AI-search visibility, what kinds of sources does the engine actually cite?
This report is descriptive. It shows what four engines cited for seven fixed questions inside a single collection window, with every observation, URL and classification downloadable below. It makes no causal claims about what earns citations.
The headline findings
1. Across this mixed seven-query AEO set, vendor-owned pages dominated and independent comparisons were rare. Of 649 classified citation appearances, 61.9% pointed at pages owned by companies selling in the category: agency blogs, tool-vendor guides, service pages. Independent comparison content, the listicles and directories often assumed to own commercial answers, accounted for 0.6%. This does not establish what happens for explicit shortlist, “best provider” or vendor-comparison queries, which this query set does not contain.
2. The four engines behave like four different research assistants. Perplexity produced 312 citation appearances across 98 domains. ChatGPT produced 39 across 13 domains, and for two of the seven questions returned no structured citations at all across all three runs. Claude leaned hardest on vendor content (81.5%). ChatGPT leaned on platform documentation (79.5% of its citations were educational or reference pages, including OpenAI’s own help centre).
3. Citations churn between identical runs. Re-running the same query on the same engine minutes apart produced a mean Jaccard overlap of 0.41 between runs’ cited-domain sets, over the 26 engine-query cells that returned sources. Of 328 cell-domain pairings, 55% appeared in just one run of three; 26% appeared in all three. Three cells were identical across all runs; one was fully disjoint. This echoes, at small scale, what larger studies of AI-answer volatility have reported: a single-run “AI visibility” measurement is a snapshot of a distribution, not a score (see Sielinski’s statistical framework for generative search measurement and rank-stability follow-up).
4. No winner-take-all source pool. The ten most-cited domains (YouTube, LinkedIn, Reddit, Semrush, Google, Search Engine Land, HubSpot, arXiv, Adobe, OpenAI) captured 35% of appearances; the top twenty captured 45%. The remaining 199 domains split the rest.
The numbers
Source types (all engines, all queries)
| Source type | Appearances | Share | Unique URLs | Share |
|---|---|---|---|---|
| Vendor pages (VEN) | 402 | 61.9% | 227 | 61.0% |
| Social and video (SOC) | 92 | 14.2% | 55 | 14.8% |
| Educational / reference (EDU) | 52 | 8.0% | 28 | 7.5% |
| News / trade press (NEWS) | 37 | 5.7% | 20 | 5.4% |
| User-generated (UGC) | 31 | 4.8% | 19 | 5.1% |
| Research / data (RSR) | 26 | 4.0% | 16 | 4.3% |
| Independent comparisons (CMP) | 4 | 0.6% | 4 | 1.1% |
| Other, preserved as ambiguous (OTH) | 5 | 0.8% | 3 | 0.8% |
Two further appearances were unresolvable Gemini redirect URLs, counted and excluded from classification. Percentages are reported over citation appearances and over unique normalised URLs. Domains are not a source-type denominator: one domain can host pages of different types.
By engine
| Engine | Appearances | Unique domains | Top type | Mean run overlap (Jaccard) |
|---|---|---|---|---|
| Perplexity | 312 | 98 | VEN 60.3% | 0.69 (7 cells) |
| Gemini | 217 | 104 | VEN 65.0% | 0.27 (7 cells) |
| Claude | 81 | 46 | VEN 81.5% | 0.33 (7 cells) |
| ChatGPT | 39 | 13 | EDU 79.5% | 0.31 (5 source-bearing cells; 2 zero-citation cells) |
VEN led the pooled distribution for every query (45.5% to 77.8%) and led three of the four engines. Because the headline is calculated over citation appearances, engines that returned more citations contribute more weight: Perplexity and Gemini together account for 529 of the 649 appearances.
Method
- Queries: the locked seven-question buyer set from Case Study Zero (querySetVersion 1), verbatim, spanning how-to, definition, hiring, measurement, content and an AEO-versus-SEO contrast. Published in full in the dataset.
- Engines: Perplexity, ChatGPT, Claude and Gemini via DataForSEO’s grounded-answer endpoints, fresh context, no history. GB was pinned where the endpoint supports it; Gemini does not support country pinning and is recorded as unpinned.
- Runs: three per query per engine. 84 answer observations, zero errors, one collection window on 16 July 2026, total API cost $1.94.
- Extraction: one citation appearance per normalised URL per answer. Normalisation strips tracking parameters and fragments and treats protocol, www and trailing-slash variants as one URL. Gemini’s redirect URLs were resolved once (217 of 219); the two failures are flagged and excluded.
- Classification: each of the 372 unique URLs was classified once against a taxonomy frozen before collection, engine and run identity withheld, with the deciding rule logged per URL. A 20% sample (fixed seed 20260716) was re-classified: 74 of 74 consistent. That figure is deterministic same-classifier consistency, not independent inter-rater agreement, and not evidence that every judgement is substantively correct. The full URL-by-URL audit table ships with the dataset.
The methodology was frozen (v1.1) before any data was collected. Reconciliation note: the scanner’s own summary reported 213 unique domains before complete Gemini redirect resolution; this analysis contains 219. The six additional domains came from successfully resolved Gemini redirects. Two appearances remained unresolved and are excluded throughout.
Limitations
These results come from DataForSEO’s API-grounded endpoints, not the logged-in consumer apps. They are useful for controlled comparison, but they are proxies rather than replicas of what an individual user sees. Results may differ by surface, model, account, locale and time.
Seven queries in one commercial niche. Eighty-four answer observations in one window on one day. Engines are non-deterministic and personalise: clean-context, mostly-GB results will differ elsewhere, and as the stability section shows, they differ between minutes. The source-type distribution is descriptive; nothing here demonstrates that producing a given content type causes citation. The classifier was a single reviewer applying frozen rules, with the audit table published so anyone can dispute any label. Three runs cannot establish stability; they can only show observed churn.
The data
- Full dataset (CSV, 651 rows)
one row per citation appearance: query text, engine, run, timestamp, position, title, URL, domain, source type, deciding rule
- Classification audit table (CSV, 372 URLs)
every page-level judgement reviewable: URL, title, domain, label, rule
- Methodology freeze v1.1
frozen before collection: taxonomy, ambiguity rules, denominators, failure policy
- Per-run analysis (JSON)
concentration, per-cell Jaccard, by-query and by-engine distributions
Answer data was collected through DataForSEO’s AI-answer API endpoints, and is distributed with DataForSEO’s written permission, subject to their Terms of Service. The compilation, source-type classifications, deciding rules and analysis are © Patrick Robinson and licensed under CC BY 4.0 — that licence covers my original work only, not DataForSEO’s service data or any third-party page titles or content within the dataset.
Re-measurement date: Monday 17 August 2026. The same protocol re-runs against the same 28 engine-query cells and the follow-up numbers will be appended here whatever they show.
I ghostwrite the content that gets cited by AI search, and I measure my own citation rate in public before selling the method to anyone. The measurement stack behind this report is the same one behind Case Study Zero.