Query Fan-Out 内容规划:先把 AI 搜索的子问题画出来,再决定写什么
你在 AI 搜索里问一个问题,引擎背后其实拆出了十几个子问题分别去搜,再把答案拼起来。这意味着内容竞争的单位变了:不是抢一个主词,而是接住每一个分支。这篇讲一个零依赖的 Python CLI,怎么把任意种子词的子查询树完整生成出来,用真实的自动补全校验哪些分支有真实搜索需求,再从里面挑出高商业意图、低竞争的金矿分支。全部命令和输出都是真实跑出来的,工具的启发式哪里会骗人也一并说清楚。
TL;DR:AI 搜索回答你之前,先把你的问题拆成 8 到 12 个子问题(价格分支、替代品分支、场景分支、疑虑分支),并行检索后合成一个答案。只回答主词的文章,只在十几个分支里竞争了一个。zens-ink 包里的 geo_fanout 是一个零依赖 CLI,输入种子词就能生成完整子查询树:7 个意图维度、每个种子 55 条子查询、用免费的自动补全接口校验真实需求、给每条打金矿分。真实跑一次 ai seo tools:55 条子查询、23 条金矿、38 条通过需求校验。竞争度估算是词数代理,别当真实难度用,写之前再过一道 SERP 难度评分。整个报告里被低估的是「意外发现」那一段:模板生成不出来、只有真实需求才能给出的查询,内容缺口真正藏在那里。
你在 Perplexity 或 ChatGPT 里问一句话,背后发生的事比看起来多。系统先把你的问题拆成一串子问题:多少钱、有什么替代品、适不适合你的行业、靠不靠谱、怎么入门,每个子问题分别去搜,最后把这些答案拼成一段回复给你。Google 给这个机制起了名字,叫 query fan-out,AI Mode 和 AI Overviews 都在用。
这个机制改变了内容竞争的单位。传统 SEO 抢一个主词,谁的页面排第一谁拿流量。AI 搜索不是这样:一次提问扇出十几个分支,引擎从每个分支里挑最好的段落来引用。你的文章只回答了主词,就只在十几个分支里竞争了一个。排第一也未必被引用,因为合成答案时引擎看的是分支覆盖,不是主词排名。
所以写内容之前,应该先把这棵子查询树画出来,再决定哪些分支值得单独成文。这篇讲一个干这件事的 CLI 工具,命令和输出全部真实。
工具生成什么
工具是 zens-ink 包里的 geo_fanout,纯标准库,零依赖,不需要任何 key。方法论基础来自 Span 的 AI 引用排名因子研究和 GEO 论文(arxiv:2311.09735),核心结论是 AI 引擎偏好能直接回答具体子问题、结构上可摘录的内容。
它把种子词沿七个意图维度展开,每个维度带商业意图权重:
- 人群
{关键词} for developers、for small business、for agencies(高) - 场景
{关键词} workflow、use cases、examples(中) - 价格
{关键词} pricing、cost、free alternative、roi(极高) - 功能
{关键词} api、integrations、open source(中) - 竞品
{关键词} alternatives、best {关键词}、review(极高) - 疑虑
{关键词} safe、worth it、is {关键词} legit(中) - 入门
what is {关键词}、how does {关键词} work(低)
每个种子 55 条候选子查询。生成本身是即时的、离线的。有意思的是下一步:每条子查询会拿去查 Google 自动补全,十个节流请求打公开接口,不要 key,看真人是不是真的在搜它。生成出来但补全里毫无踪迹的查询只是一个假设,补全里有确认的才是需求。
每条子查询再算一个金矿分:商业意图权重加倍,减去竞争度惩罚,通过真实需求校验的再加一分。4 分以上进金矿列表。
真实跑一次
种子词 ai seo tools,人群 solo developers:
python3 -m zens_ink.geo_fanout "ai seo tools" --icp "solo developers"
报告开头:
GEO Fan-out Report: "ai seo tools"
ICP: solo developers
Total sub-queries generated: 55
Gold mine opportunities: 23
Live search demand validated: 38 queries
GOLD MINE QUERIES (high intent + low competition)
Query Intent Comp Live
----------------------------------------------------------------
ai seo tools free alternative very_high low ✓
ai seo tools vs free very_high low ✓
ai seo tools vs competitors very_high low ✓
ai seo tools pricing very_high medium ✓
ai seo tools cost very_high medium ✓
cheapest ai seo tools very_high medium ✓
ai seo tools roi very_high medium ✓
ai seo tools for solo developers high low ✓
ai seo tools for small business high low ✓
...
再往下是从头部金矿推导的支柱加集群内容计划,10 篇集群文章各有意图和竞争度标注。
对比一下 --no-live(纯离线生成,零请求):同样 55 条子查询,金矿只剩 15 条。差的那 8 条全靠真实需求校验捞回来,这一步就是内容日历和愿望清单的区别。
真正该看的那一段
金矿表看起来是报告的精华,其实只是及格线。价格和替代品查询,任何内容规划工具都会生成。报告里信号密度最高的部分在最底下,很容易漏看:意外发现查询:自动补全里真实出现、但不匹配任何模板的查询。
那次真实运行的产出:
SERENDIPITOUS QUERIES (from live search, not in templates)
• ai seo tools 2026
• ai seo tools for marketing agencies
• ai seo tools for shopify
• ai seo tools for wordpress
• ai seo tools for youtube
• ai seo tools hostinger
• ai seo tools reddit
• best ai seo tools for early stage startups
• best ai seo tools for saas
• best ai seo tools for solo founders
• best ai seo tools reddit
ai seo tools hostinger 这种查询,模板永远生成不出来,只有需求能。平台修饰词(for shopify、for wordpress、for youtube)和人群修饰词(for solo founders、for early stage startups)正是 AI 合成引擎奖励的具体性信号,而且它们来自真实接口,不是猜测。一份扇出报告如果只带走一样东西,带走这一段。reddit 后缀出现两次本身也是一个信号:搜索者在这个话题上更信论坛而不是厂商,这是引用来源层面的洞察,不只是个关键词。要系统性地挖这一层,配合 Reddit 关键词研究管线。
启发式哪里会骗你
两个诚实的局限,naive 使用会白白烧掉写作预算。
竞争度估算是词数代理。五词以上判低、三四词判中、更短判高。长尾方向上没问题,但 best project management software for construction 是五个词的 DR 90 血战。金矿分只用来在报告内部排序,永远不要当难度结论。入围的集群文章动笔前,跑真实的 SERP 难度评分,按页面类型和品牌指纹对实际 SERP 打分,那才是值得拿来规划的竞争度数字。
需求校验是子串匹配。模板 ai seo tools free 会匹配任何包含或被包含于这个字符串的补全建议,所以校验打勾的含义是「存在相关的补全面」,不是「这个精确串被建议过」。信号是真的,但是粗的。终选清单要精确需求量的话,过一遍 Bing Webmaster 搜索量管线。整个工作流就是:扇出时放开撒,校验时收窄。
在管线里的位置
扇出规划插在发现和聚类之间:
- 发现种子词,来源是自动补全和 GSC 挖掘管线
- 扇出,把每个种子展开成子查询树(这个工具),生成式,包含还没有内容的分支
- 聚类,合并后的关键词集做主题分组,回顾式归并已观察需求,见关键词聚类方法
- 难度校验,入围清单跑真实 SERP 难度
- 发布,按扇出结构写:每节自带 BLUF 答案、对比表、FAQ 结构化数据
第 2 步和第 3 步经常被混为一谈,它们方向相反。聚类压缩你见过的需求,扇出扩展 AI 引擎会去找的需求。两步都要,先扇出后聚类。
覆盖分支的目的既然是被合成引擎引用,发布后的另一半循环也得有:GEO 得分方法审计已发布页面是否真的可摘录,见 GEO 得分方法论;定期的 AI 搜索可见度审计告诉你这一切有没有起效,见 AI 搜索可见度审计。扇出规划是循环的输入侧,审计是反馈。
工具本身在 开源 SEO 工具 里,pip install zens-ink,纯标准库,可离线跑,自动补全校验的成本只是一秒钟的礼貌请求。
FAQ
什么是 query fan-out(查询扇出)?
AI 搜索引擎在回答之前做的查询扩展步骤。系统不直接拿你输入的原话去检索,而是生成 8 到 12 个相关子问题,覆盖不同意图维度(价格、替代品、使用场景、疑虑、入门),每个子问题各自检索排序,最后合成一个带引用的答案。Google 的 AI Mode、Perplexity、ChatGPT 搜索都是这个架构。对内容策略的含义是:竞争单位从主词变成了扇出树的每个分支。
扇出规划和关键词聚类有什么区别?
聚类是把已有的关键词(GSC 导出、自动补全、竞品数据)按语义分组,是回顾式的,基于已观察到的需求。扇出规划是生成式的:枚举 AI 引擎会把种子词扩展成哪些子问题,包括还没有人写过内容的分支。两者是上下游关系,先用扇出生成子查询树,再对产出聚类排优先级,落成支柱加集群的内容计划。
这个工具需要 API key 或付费数据源吗?
不需要。geo_fanout 是纯 Python 标准库实现。模板生成完全离线可用(--no-live 参数)。真实需求校验用的是 Google 公开自动补全接口,不需要 key,和关键词挖掘管线用的是同一个免费端点,每个种子约十次节流请求,一秒左右跑完。
报告里的竞争度估算准吗?
它是刻意的代理指标:按词数算。五个词以上判低竞争,三四个词判中,更短判高。方向上符合长尾规律,但它不是难度分。一个五词查询如果 SERP 前排全是 DR 90 的对比页,它一点也不容易。正确用法是拿金矿分在报告内部排优先级,入围的查询写之前再跑真实 SERP 难度评分。