GEO Query Fan-Out: The Most Underappreciated Factor
LLMs rewrite your question into sub-queries before searching. Optimizing for these machine-generated queries is what actually gets you cited.
Most GEO advice focuses on content optimization: add FAQ schema, write comparison tables, use structured data. That advice is fine but misses the most important and underappreciated factor: query fan-out. When an LLM searches on your behalf, it rewrites your question into sub-queries that look nothing like what a human would type. You need to optimize for these machine-generated queries, not just human search terms.
How query fan-out works
A user asks Perplexity: "what CRM should a 10-person startup use?" Perplexity does not search for that exact phrase. It generates 3-5 sub-queries: "crm pricing comparison small business 2026", "crm ease of use reviews", "crm slack integration", "crm free tier comparison." Your content needs to rank for these fan-out queries to appear in the final answer.
Reverse-engineering fan-out queries
Take your target prompts. Run them through multiple LLMs and observe what search queries they generate. If you have access to search logs from an MCP server or API gateway, the fan-out queries are visible in the logs. Collect these machine-generated queries and treat them as your real keyword targets.
The content gap this reveals
Human keyword research targets phrases like "best CRM 2026." Fan-out analysis reveals that LLMs also search for "crm data import from spreadsheet" and "crm mobile app offline mode." These are specific, comparison-oriented queries that most content strategies miss entirely. The teams that rank for fan-out queries get cited in LLM responses. The teams that only target human keywords do not.
Google AI Overviews as a GEO proxy
AI Overviews are the most measurable GEO surface because they show explicit citations. Track whether your pages appear as AI Overview sources for your target keywords. This is a deterministic metric that does not have the probabilistic variance of tracking mentions in ChatGPT or Claude. If you can only measure one GEO metric, measure AI Overview citation share.
import requests, os
H = {'x-api-key': os.environ['SCAVIO_API_KEY']}
def citation_share(keywords: list, domain: str) -> float:
cited = 0
total_with_overview = 0
for kw in keywords:
data = requests.post('https://api.scavio.dev/api/v1/search',
headers=H, json={'platform': 'google', 'query': kw}, timeout=10).json()
sources = data.get('ai_overview', {}).get('sources', [])
if sources:
total_with_overview += 1
if any(domain in s.get('link', '') for s in sources):
cited += 1
return cited / max(total_with_overview, 1) * 100