TL;DR: Query fan-out is how an AI search engine answers a prompt: it splits one question into a handful of narrower sub-queries, retrieves pages for each, then writes a single answer. Google named the technique for AI Mode and AI Overviews, and ChatGPT does it too. A tracked prompt is only the parent question, and the gap between it and those sub-queries is why pages that "rank" for a tracked prompt still get left out of the answer.
What is query fan-out?
Ask a real question in Perplexity, Google's AI Mode, or ChatGPT with search. None of them simply run your exact words. Each one breaks your question into two, three, sometimes five narrower searches, pulls pages for each, and synthesizes the result into a single response.
Google described this behavior as "query fan-out" when it introduced AI Mode. The label is Google's. The behavior is not unique to Google. Any retrieval-augmented engine does some version of it, because a single broad question is a bad search query and a good answer needs more than one source.
So when a buyer asks ChatGPT "what's the best AEO agency for a B2B SaaS company," the model does not go looking for a page titled "best AEO agency for B2B SaaS." It fans the question out into things like "what does an AEO agency do," "how do SaaS companies get cited in ChatGPT," and "AEO agency pricing and results." Then it retrieves against those.
You optimized for the question. The model retrieved for the sub-questions. Those are not the same documents.
How many sub-queries does each AI engine actually run?
ChatGPT fans a prompt out on 47% of its answers. Perplexity does it on 2%. We measured both across 3,718 AI answers to our own tracked buyer prompts, between 26 July and 25 August 2026.
| Engine | Answers measured | Sub-queries issued | Answers that fanned out | Median per answer | Most in one answer |
|---|---|---|---|---|---|
| ChatGPT | 2,375 | 4,585 | 47% | 1 | 15 |
| Perplexity | 1,343 | 1,413 | 2% | 1 | 7 |
Read the median before the totals. Both engines answer most prompts on a single query, so any tool reporting an average will tell you fan-out is uncommon. It is not uncommon, it is lopsided. Almost half of ChatGPT's answers split the prompt, and its long tail runs to fifteen separate searches for one question. Perplexity barely splits at all.
That gap decides where the work goes. On Perplexity, the prompt you track is close to the query that actually runs, so ranking for the prompt itself is most of the job. On ChatGPT, the prompt you track is only a starting point, and the retrieval that decides the answer happens in sub-queries you never see unless you go and look at them.
One limit worth stating plainly. Google AI Overviews is tracked in the same project and returned no sub-query rows at all, so it is absent from the table. That is a gap in the measurement, not a finding about Google.
Why your tracked-prompt list is incomplete
Here is the part most teams miss. Your AEO tool, Peec, Profound, whatever you run, tracks the parent prompt. It tells you whether you showed up when someone asked the question you are tracking. Some trackers also log the queries the engine ran, but only in the answers the tool triggered itself, a sample of its own runs rather than your buyers' sessions.
That is not a flaw in the tool. It is what the tool is for. These platforms query the model from the outside and estimate your visibility statistically. Useful for brand monitoring. Limited as a content roadmap, because they mostly report the outcome, and the retrieval paths they do log come from their own runs rather than your buyers'.
The fix is to stop asking the model what it cites and start asking your own server what arrived. Every time an AI engine runs a fan-out and fetches a page, that fetch lands in your logs. Cloudflare's AI crawl data, your CDN logs, your server logs: those are direct observation of which URLs the bots pulled when assembling an answer. Deterministic. Free. Yours. The probability tool tells you "you're at 6% visibility on this prompt." The logs tell you "GPTBot fetched these four pages in the last hour." One is a guess about the answer. The other is the answer's raw material.
Run both. The probability tool tracks brand visibility over time. The logs feed the roadmap.
What each layer shows you
Three data layers sit between a buyer's question and your page landing in the answer. They report different things, and none of them substitutes for the other two.
| Layer | What it shows you | Blind spot | Where the data comes from |
|---|---|---|---|
| Your tracked prompt list | Whether the engine named you on a question you chose to watch, and how that moves week to week | The narrower searches the engine ran to build that answer | An AEO tracker querying the engines from the outside |
| A fan-out view | The sub-queries sitting under a parent prompt, and which URLs already get cited on each branch | Whether the engine ran that exact set in a given session, since the branches shift by engine and by session | Stress-testing the prompt by hand, or loading each sub-query as a tracked prompt of its own |
| Server logs and citation records | Which URLs an AI crawler actually fetched, and when | Which answer that fetch fed, and whether you were named in it | Your own server, CDN, and Cloudflare AI crawl logs |
Read it left to right and the working order falls out. The prompt list tells you where you stand. The fan-out view tells you what to write. The logs tell you whether the engines came and took it.
A query fan-out example
Take one prompt off your tracked list. We will use a real one we watch: "best agency for getting cited in ChatGPT."
Fanned out, that question becomes roughly:
- "what does it mean to get cited in ChatGPT" (definitional)
- "how do you get a company cited in AI search" (process)
- "agencies that do AEO or generative engine optimization for SaaS" (commercial)
Now check your own site against each one. Most teams have a single page built to win the parent prompt, a listicle or a service page. That page might answer the commercial sub-query. It almost never answers the definitional one or the process one, because those felt too "top of funnel" to bother with.
The model needed three answers. You supplied one. A competitor who published a clean "how do you get cited in ChatGPT" explainer just took the sub-query you skipped, and the model stitched their page into the same answer you were trying to win.
The prompt was never the unit of work. The fan-out is.
How to map your fan-outs
Three methods, cheapest to most reliable.
Stress-test the prompt by hand. Run your tracked prompt in Perplexity and watch the sub-queries it shows as it works. Perplexity exposes those steps directly. Google's AI Mode shows the sources it considered, which lets you infer the branches it took. ChatGPT exposes its sub-queries in its network traffic when it runs a web search, so a browser extension can capture them from your own chats. Not every OpenAI model exposes them, though. Failing that, read the set of sources it cites and work backward to the questions those pages answer. Ten minutes per prompt, with no tooling beyond the engines and, for ChatGPT, a browser extension. If you have no tracked prompt list yet, build one manually first.
Pull per-prompt research. For each tracked prompt, generate the likely fan-out set and see which competitor URLs are already being cited for each branch. This is where a tool earns its keep: not for the visibility score, but for surfacing which sub-queries exist and who owns them.
Read your logs. This is the ground truth. The pages AI bots actually fetch, in the minutes after a class of prompts gets popular, are the fan-out made visible. No estimation. If GPTBot pulled a page, that page matched a real sub-query for a real answer. We already run Cloudflare's AI crawl logs, so the dataset already exists. Most teams own this data and never look at it.
Is there a query fan-out tool?
Yes, with limits that depend on the engine. Recorders such as Profound, Goodie, Radarkit, Peec AI and Ahrefs Brand Radar log the queries an engine ran in the answers the tool triggered. On the API side, OpenAI's web search tool docs say a search call usually (but not always) includes the queries it searched, and Google's Gemini API docs say a grounded search call contains the search queries the model executed. Google AI Overviews exposed queries in 0 of 150 answers in our own sample. Our query fan-out tools comparison sorts the tools into simulators, recorders, and hybrids and session recorders, with the engines and starting price for each.
Query fan-out SEO: what to do once you have the map
Match the fan-out at the citation surface, not in the body.
Models extract citable answers from the top of a page. What sits below the fold rarely gets pulled. Glasp studied 400,000 pages and found the frequently-cited ones led with a tight summary: a TL;DR around 130 characters, two sentences, opening with the entity and a plain descriptive verb. Rarely-cited pages had throwaway summaries or buried the answer. The lift tracked with how often bots fetched the page.
So for each fan-out you want to win:
- Give it a title in question or command form, matching how the sub-query is phrased.
- Open with a self-contained two-sentence answer before any preamble.
- Lead the first sentence with the entity and the action.
- Let the body be the depth. If the model only reads the top, the answer should already be complete.
One page can serve several related fan-outs if each gets its own clearly-titled section with its own direct-answer opener, marked up with the schema types AI engines actually read. You are not writing one essay. You are writing a set of answers that happen to share a URL.
When we audit this on our own pages, the pattern holds. We sit near the top of the source list when we get retrieved at all, position around three. The constraint was never the quality of the answer once chosen. It was matching enough fan-outs to get chosen in the first place.
The metric that actually matters
Prompt-coverage percentage is a vanity number if you stop there. Impressions and clicks were the last era's vanity numbers. The market matured past them and stakeholders stopped being satisfied by them.
The only metric worth defending to the person who signs the check is whether qualified pipeline went up. Fan-out mapping is a means to that, not the goal. You map fan-outs so your pages get pulled into more answers, so more of the right buyers land on you mid-decision, so sales has more real conversations. If you can map every fan-out for every prompt and pipeline stays flat, you mapped the wrong prompts. Track the money.
Stop optimizing for queries the model never runs
If your AEO work starts and ends with a list of tracked prompts, you are optimizing for the question instead of the search. Map the fan-outs, match them at the top of the page, and measure it in pipeline.
This is the kind of work we do for B2B SaaS companies trying to get cited in AI search. If you want a second set of eyes on where your fan-outs are leaking, get an AEO audit.




