Qforia walkthrough: how we run query fan-out for B2B SaaS buyer queries
Query fan-out is how Google's AI search answers a question. Here is how we run Qforia, iPullRank's free fan-out simulator, as a repeatable audit, and what it found when we pointed it at our own site.
What is query fan-out, and how do you audit for it?
Query fan-out is how Google's AI search answers a question: a custom Gemini model splits one query into many background sub-queries, then builds a single response from passages that answer them. Qforia, a free simulator from iPullRank, generates a credible model of that fan-out for any seed query. We cluster its output into a coverage map of themes, then check which themes our pages answer at passage level.
Query fan-out is how Google's AI search answers a question: a custom Gemini model splits one query into many background sub-queries, then builds a single response from passages that answer them. In August we ran a fan-out audit on our own site, and four of our five priority head terms showed no real coverage. On the questions buyers actually generate, our pages were indistinguishable from background noise. That is one site's result, ours, from two runs and a few cents of API calls. It is also why we trust the method. An audit that does not flatter the people running it is an audit you can believe.
What is query fan-out?
Google introduced the term with AI Mode. When a query needs more than a lookup, a custom version of Gemini breaks it into subtopics and fires many searches at once in the background, then synthesises one answer from whatever comes back. It runs across AI Mode, Deep Search, and some AI Overviews, and Deep Search can issue dozens or even hundreds of background queries for a single prompt.
Two properties matter for everything that follows. First, fan-out is non-deterministic: the same query, run twice, returns different sub-queries. Second, Google is explicit that the ordinary foundations of Search still apply. If a passage cannot be crawled, indexed, and understood, it cannot be retrieved, and retrieval (the engine fetching candidate passages before it writes a word) is the step where you are either present or absent. iPullRank's write-ups sort the sub-queries by type, and Qforia asks its model for six: reformulations, related queries, implicit questions, comparisons, entity expansions, and personalised variants.
The practical consequence is that your buyers' questions get answered at passage level, not page level; we covered why in our passage-first piece. Fan-out is the machinery that makes it true.
What is Qforia and what does it actually give you?
Qforia is a free query fan-out simulator built by Mike King and the team at iPullRank, who own most of the public thinking on fan-out; this piece stands on their work, and the source is public. The tool costs nothing, but it runs on your own Gemini API key, so the usage cost is yours. You give it a seed query and one of two modes: AI Overview (Simple), which asks the model for at least 10 sub-queries, or AI Mode (Complex), which asks for at least 20. Worth knowing: those floors live in the prompt text, not in enforcing code, so treat them as requests rather than guarantees.
What comes back is the useful part, and it is more than a list of queries. Each row carries six fields: the subquery itself, its type, the user intent behind it, the model's reasoning, a routing_format label, and a format_reason. The routing_format is Qforia's read on the content shape that best answers the sub-query, drawn from a fixed list of 23 labels. Eleven of those labels are the ones that matter for B2B SaaS buyer queries: comparison_table, buyers_guide, pricing_page, api_reference, case_study, review_roundup, product_spec_sheet, code_samples/docs, calculator/tool, pdf_whitepaper, and interactive_widget.
Qforia changed in October. Version 2 defaults to Gemini 3.8 Flash and runs the same prompt several times, five by default. It then counts how often each sub-query comes back: in Qforia's terms, high-count queries are the stable core of its simulated fan-out, and one-off queries are the long tail. For an audit, that is the change that matters: it shows which sub-queries the model keeps returning and which turned up once.
One caveat before anything else: Qforia does not show you Google's actual fan-out. It shows you a credible model of it, generated by the same family of model Google uses. Like the real thing, it is non-deterministic, which is exactly why two runs disagree.
How do we run the walkthrough?
This is the method we use internally, condensed. It ends in a map, not a pile of queries.
- Frame the seed. Classify the buyer query against the six B2B SaaS buyer-query types: problem-aware, solution-aware, comparison and alternatives, pricing and ROI, integration and technical fit, and job-to-be-done. This is buyer-query fan-out rather than generic keyword expansion, and the frame stops it drifting into consumer breadth.
- Generate the fan-out twice, from two sources. Fan-out is non-deterministic, so one run is a single sample. Qforia's repeat passes now show which sub-queries one model keeps returning; a second, different generator tells you which themes were one model's mood.
- Read the full query object. The type, user intent, and routing_format fields are the analysis; the query string on its own is trivia.
- Deduplicate by intent. Collapse same-intent variants into one, and drop recency and personalised or location-tied queries: they belong to one searcher's context, not to your content plan.
- Cluster to a fan-out coverage map. Group the surviving sub-queries into themes your pages must answer at passage level. Never a page-per-query list; that way lies the long-tail trap.
- Match format to intent. Use the routing_format labels to name the shape each theme wants: a comparison table, a pricing page, a calculator. An input to judgement, not gospel.
- Optionally, reverse-intersect. For a deeper pass, collect the URLs AI Overviews actually cite for the related queries and intersect them with your map (Mike King's method).
- Grade the evidence. Mark each theme documented, supported, or folklore, and gap-check it against the page you actually have, so nothing folklore-grade ships as doctrine.
The output is a coverage map: themes, intent, recommended format, covered or gap, evidence grade. That map is the deliverable. Everything after it is ordinary content work.
What did we find on our own site?
We ran this on ourselves twice in August, with two deliberately different generators.
The first run, on 19 August 2026, used our own command-line tool with a deterministic heuristic planner: 18 sub-queries per head term, scored against the 23 pages our site had at the time, using lexical retrieval. To be plain about what that is: the heuristic planner is We Are All Connected's own fixed query generator. It is not Qforia, it does not call Gemini, and it is not a mimic of either; it exists to give us a stable, repeatable baseline. Scored against a calibrated bar (details in the box below), the result across our five priority head terms was blunt: effectively nothing cleared it. Four of the five terms sat at background-noise level, meaning the scorer could not distinguish our pages' relevance to those fan-outs from their relevance to a nonsense control query.
The fifth term is the reason we believe the zeros. On "llms.txt best practices", the one head term where we know we have genuine passage-level coverage because we published a full piece on it, the instrument separates cleanly from noise. The meter can read non-zero; on the other four terms it simply had nothing to find. An audit tool that returned zero on everything would deserve suspicion. One that detects the coverage you know exists, and only that, has passed its own positive control.
The second run, on 20 August 2026, was live Qforia: the prompt taken verbatim from the public repo, seed "answer engine optimization", AI Mode (Complex). Back came 26 sub-queries spanning all six transformation types and 14 distinct routing formats, for a few cents of API credit. Reading the full object earns its keep immediately: "AEO vs SEO key differences" (live run, 20 Aug 2026) arrives typed comparative and routed comparison_table, which is a content-shape decision handed to you. Scored against the same 23 pages with the same calibrated bars, the live set agreed with the heuristic verdict: no real coverage on this head term either.
What makes that agreement meaningful is that the two query sets barely overlap. Beyond a shared definitional core, the live run skews to platform-and-action queries such as "how to get cited by ChatGPT" (live run, 20 Aug 2026), while the heuristic run skews conceptual, such as "does answer engine optimization affect AI Overviews or AI Mode" (heuristic run, 19 Aug 2026). All three examples quoted in this piece are from single runs; yours will differ, and neither query set is canonical. Two different generators, pointed at the same site, returned the same verdict. The agreement of verdicts, not the similarity of sets, is the evidence.
The runs also show the method finding coverage where coverage exists. Seeded from section 05 of our flagship AEO guide rather than from a bare head term, the map lights up: several themes show genuine deep coverage, while mechanism, comparison, and most authority themes remain gaps. The instrument is not a doom machine; it is a torch.
A useful way to picture the result, as a mental model rather than documented Google behaviour, is the shortlist gate: before an AI system writes its answer, it has assembled a shortlist of candidate passages, and on four of our five head terms nothing of ours was on the list. Whatever we had published on those topics was not in the room when the answer was written.
Methodology: the runs behind the numbers
Run 1: heuristic fingerprint, 19 August 2026. Our own CLI with a deterministic heuristic planner (6 themes × 3 = 18 sub-queries per term), lexical retrieval. This is heuristic planning, not live Qforia, and the planner is not a Gemini mimic. Corpus: the 23-page weareallconnected.co.uk site corpus as it stood on 19 August. Calibration: a sub-query counts as covered only when its top-1 evidence score clears that sub-query's own null-control score; the null seed, "best electric SUV for driving up Mt Rainier", is one the uncalibrated tool happily marks fully covered. Strict bar: at least max(2× control, control+10). Results: 0/90 sub-queries covered at the strict bar across the five priority head terms. Four of five terms had median top-1 scores at control level (16 to 18, against a control of 16.3); "llms.txt best practices" separates (median 24.4; 17/18 at the loose bar, control+5). Article-seed map from the same run: 7/18 strict when seeded from the flagship guide's section 05.
Run 2: live Qforia reproduction, 20 August 2026. Prompt verbatim from iPullRank-dev/qforia @ a1f1925; seed "answer engine optimization"; AI Mode (Complex). Model disclosure: at the time, Qforia pinned gemini-2.5-pro, which Google had retired for new API keys; this run substituted gemini-3.1-pro-preview, Google's suggested successor, prompt unchanged. Qforia v2 (7 October 2026) now defaults to Gemini 3.8 Flash. Output: 26 queries, all six transformation types, 14 distinct routing formats, about $0.05 of API credit. Scored with the same lexical algorithm and null-control bars (control top-1: min 8.6, median 16.5, max 33.3): 0/26 strict, 1/26 medium, 4/26 loose. The best live query scored 27.0, below the null control's own maximum.
Overlap. The two query sets share only a definitional core: one exact match, three loose matches at Jaccard ≥ 0.5, two genuine matches on reverse recall.
Caveats. The lexical scorer is a calibrated heuristic with a null control, not a validated instrument. Fan-out is non-deterministic: neither query set is canonical, and you should expect a different set every run. And this is one 23-page site, n=1, not a study of B2B sites in general.
What should you do with a near-zero result?
Run the walkthrough on your own head terms before you spend anything on AEO tactics. It costs a few cents and an afternoon, and it converts the vague anxiety of "are we visible in AI search?" into a specific list of themes you do or do not cover. We can only prove the result on our own site. But if your positioning pages were written for rankings rather than for the questions buyers actually ask, as many B2B sites' pages were, we would expect your map to look uncomfortably like ours. The way to know is to run it.
Read a near-zero map as a to-do list, not a verdict. It does not say AEO is dead, and it does not say your content is bad; it says the specific passages that would answer the fan-out's specific questions do not exist yet. Expect your query sets to change run to run; the stable deliverable is the themes. And treat the payoff soberly: the evidence that fixing coverage improves AI visibility is one small Semrush test (four articles, citations rising from 2 to 5 over a month), so any lift is indicative scenario modelling, not a promise.
This is the audit we run first for clients. The companion question, what not to spend the budget on, is the llms.txt piece linked above.
What do we do differently because of this?
The gaps the runs exposed, mechanism, comparison, and authority themes across four head terms, are now the passage-level to-do list for what we publish next, and How to do AEO properly in 2026 is the repair manual for gaps like these. Since the August runs we have published AEO vs SEO vs GEO, a comparison piece aimed at the kind of "AEO vs SEO key differences" question the live run surfaced. We have not re-scored the site since.
Credit where it belongs: Mike King and iPullRank own the theory of query fan-out, and their walkthroughs are the canonical ones. What we can add is narrower and, we think, more useful to a B2B buyer: we ran the method on our own site, and we published the unflattering result. The rest of our AEO thinking is on our blog.
Frequently asked questions
Is Qforia showing me what Google actually runs?
No. It is a reconstruction built on Google's public descriptions of fan-out and iPullRank's analysis, generated by the same family of model Google uses. Fan-out is non-deterministic, and Qforia's output is a probabilistic sample, not ground truth. Treat it as a well-informed model of the question space, never as a leak of Google's internals.
What does it cost to run?
Qforia itself is free; it runs on your own Gemini API key, so the usage cost is yours. Our single live run in August cost about $0.05 of API credit; version 2 runs five passes by default, so expect roughly five calls per seed. At that price the constraint is discipline, not budget: the temptation is to run it once and treat the output as canon.
Do I need a page for every query in the fan-out?
No, and building one is the classic misuse. Coverage is judged at passage level: one strong page can cover many sub-queries through well-structured sections. A page-per-query plan is the long-tail trap, and an agency proposing 26 new pages off the back of one Qforia run is selling the wrong deliverable.
Does fixing fan-out coverage actually improve AI visibility?
Supported, not proven. The one public test we know of (Semrush, four articles, one month, September 2025) lifted citations from 2 to 5, and in the same window citations peaked at 9 before a platform-level cut pulled them back across every tracked brand. Coverage can earn citations, volatility is real, and any projection should be framed as a scenario, not a commitment.
Want to make this practical?
Book a call and we will walk through your current stack, what is worth wiring first, and what should wait.
Book a call