先给结论:不要追求每次回答完全相同,要追求每次测试都能解释
AI 搜索结果出现差异,并不自动说明某一次测试失败,也不能直接说明页面内容发生了作用。生成式产品的公开界面通常只展示问题、回答和部分来源,模型版本、检索索引、排序策略、会话状态和实验配置并不一定全部可见。因此,一次测试最可靠的产物不是“这次出现了 ZenLeak”,而是一条能回答以下问题的记录:在什么条件下提交了什么问题,页面当时是什么版本,回答中看到了什么来源,哪些判断经过了核查,以及哪些因素仍然未知。
可复测的 GEO 实验也不等于把所有变量都控制住。实际目标是把变量分成三类:操作者能够提前冻结的条件、平台或网络带来的外部变化、以及当前无法观察的未知因素。只要这三类没有混在一起,下一轮即使得到不同回答,也能知道差异应如何记录,而不是凭印象选择更有利的一次结果。
本文讲人工可复测的 AI 搜索观察方法,不提供任何平台的排名公式,也不承诺页面会被检索、引用或推荐。国内平台的样本设计见国内 AI 引用实验方法;回答、来源和页面版本的归档见引用证据归档方法。本文不把构造示例当成真实平台结果。
结果为什么会变化:先拆原因,再谈内容
“同一个问题问两次,回答不同”是一个观察,不是一个原因。原因需要证据支持。测试前可以把可能影响结果的因素列出来,并标注哪些已经固定、哪些只是在界面上可见、哪些无法确认。下表中的“可能影响”不是某个平台公开的完整规则,而是实验设计时需要记录的混杂因素。
| 因素 | 实验中如何记录 | 不能直接推出什么 |
|---|---|---|
| 产品与模型 | 产品入口、可见模型名、模式和版本;界面没有显示就写“未披露”。 | 不能凭语气、长度或回答风格猜测后台模型版本。 |
| 联网与检索 | 记录界面显示的联网、搜索或研究模式;保存来源区域。 | 答案很新不等于已经联网,出现来源也不等于每句话都由来源支持。 |
| 索引与来源 | 记录回答生成时间、来源 URL、打开时间和来源页面版本。 | 今天打开的页面内容不能自动证明平台当时读取的就是同一版本。 |
| 地区与语言 | 固定时区、界面语言、地区和设备环境,至少写明已知值。 | 一次在某地区看到的结果不能外推到所有地区。 |
| 账号与会话 | 记录匿名或登录状态、是否新会话、是否有上一轮追问。 | 同一问题在带有历史上下文的会话中不再是同一测试。 |
| 问题文本 | 保存逐字原文、问题集版本、标点和提交顺序。 | “意思差不多”的问题不能作为严格复测。 |
| 观察时间 | 使用含时区时间,区分采集、来源核查和报告发布时间。 | 不同时间的结果变化不能直接归因于页面改稿。 |
这张表的作用是防止过早归因。例如,页面发布后第一次回答出现了本站链接,第二次没有出现。若两次使用了不同模式、不同会话或不同时间窗口,最多只能报告“两个条件下观察到不同结果”,不能写成“页面优化导致 AI 稳定引用”或“平台取消了对本站的引用”。
冻结测试环境:把能控制的条件写成协议
环境冻结不是把测试做得复杂,而是把下一次测试中最容易被遗忘的条件提前写下来。建议为每一轮实验生成一个版本号,例如 AI-VAR-2026-09-30-W1,并在提交第一道问题前锁定以下字段。实际无法做到的字段不应删除,而应标记为未知或未披露。
| 协议字段 | 推荐记录 | 变化后的处理 |
|---|---|---|
| 平台对象 | 公司、产品入口、网址、可见模型或模式。 | 入口或模式改变时,建立新测试对象,不覆盖旧记录。 |
| 问题集 | 问题 ID、逐字文本、语言、提问顺序和是否允许追问。 | 问题改动超过排版修正时,升高问题集版本。 |
| 页面对象 | 目标 URL、canonical、发布时间、修改日期和内容摘要。 | 定义、证据、标题或核心段落改变时,生成新的页面版本。 |
| 运行状态 | 联网模式、地区、时区、设备、登录状态和新会话规则。 | 任何已知条件改变,都在报告中单列为新窗口。 |
| 时间窗口 | 开始时间、结束时间、时区、轮次编号和复测日期。 | 跨窗口比较时保留原始日期,不把样本合并成一个时间点。 |
| 判定规则 | 提及、来源、页面引用、内容采用、准确和完整的定义。 | 规则修订时重新分析旧样本,并保留旧版报告。 |
如果界面没有显示具体模型版本、检索时间或地区,写“未披露”或“未知”。不要用“应该是联网”“看起来像某个模型”填补空白。未知值会降低结论强度,但保留未知比制造确定性更有研究价值。
设计重复采样:重复的目的不是凑次数
重复测试是为了观察结果是否在相同协议下稳定出现,而不是为了挑出一条最好的回答。最小设计可以从“同一问题、同一平台、同一窗口重复三次”开始;更稳妥的研究再增加不同日期窗口和多个非品牌问题。每一次提交都保留独立记录,不能只记录一个“出现过”状态。
| 设计层级 | 最小做法 | 能回答的问题 | 不能回答的问题 |
|---|---|---|---|
| 同条件重复 | 同一平台、同一问题、独立新会话,连续 3 次。 | 本窗口是否出现明显的回答或来源波动。 | 不能说明平台长期规律或页面带来的因果效果。 |
| 时间窗口重复 | 相同协议在 T+0、T+3、T+7 等时间再次测试。 | 观察结果是否随索引和产品状态变化。 | 不能隔离平台内部未披露的所有变化。 |
| 页面版本对照 | 冻结旧版和新版,分别测试相同问题与环境。 | 描述两版在指定样本中的差异。 | 少量样本不足以证明改稿造成了变化。 |
| 跨平台复制 | 相同问题集应用到多个产品入口,并分别保存证据。 | 比较不同平台在同一研究协议下的可见表现。 | 不能把一个平台的结果外推为行业平均。 |
三次都没有出现本站,并不等于平台永远不会引用;三次都出现本站,也不等于已经形成稳定流量。报告应该写清楚“重复次数”和“窗口范围”,例如“在 2026-09-30 10:00 至 10:20 的新会话三次提交中,观察到 1 次来源列表出现本站,2 次未出现”。这比“引用率 33%”更不容易被脱离语境误读。
拆分判定维度:不要把一个链接当成 GEO 成功
AI 搜索结果通常同时包含正文、来源卡片、脚注和推荐内容。不同区域的信号不能混为一个分数。建议至少使用以下六个字段,字段值可以是“是、否、未知、不适用”,并保存每个判断的理由。
| 维度 | 成立条件 | 典型误判 |
|---|---|---|
| 品牌被提及 | 回答正文出现 ZenLeak 或可确认的品牌别名。 | 品牌出现不等于回答读过本站页面,也不等于正面推荐。 |
| 出现来源 | 回答显示了来源名称、来源卡片、脚注或可打开链接。 | 来源存在不等于来源支持回答中的全部结论。 |
| 页面被引用 | 来源明确指向本站的具体页面 URL,而不只是一个域名。 | 域名出现在来源集合中,却无法对应到具体句子时不能强判。 |
| 内容被采用 | 回答使用页面中的独有定义、步骤、数据或限制,并能定位原文。 | 主题相同、通用常识相同或词语相似,不足以证明采用。 |
| 引用准确 | 页面能够支持相邻声明,且回答没有扩大范围、改变条件或忽略时间。 | 链接能打开不等于语义支持准确。 |
| 回答完整 | 回答覆盖问题核心、适用条件、重要边界和下一步。 | 文字很多、链接很多不等于已经完整回答。 |
“内容被采用”和“引用准确”尤其需要分开。回答可能准确链接了一个页面,但没有使用该页面的独有内容;也可能复述了页面内容,却把页面只适用于某类网站的建议扩大成所有网站的规则。审核时把回答拆成声明,再逐条关联来源,才能看出差异在哪里。
保存证据包:原始回答、来源和页面版本必须相互可追溯
一张截图只能证明截图里可见的部分,不能单独说明问题原文、完整回答、测试条件和来源版本。每个“平台 × 问题 × 轮次”建议保存一个独立证据包。W3C PROV 将来源信息组织为实体、活动和参与者之间的关系,这个思路适合用来检查 AI 观察是否能从结论回到原件,但不等于任何平台的官方认证。
records/
AI-VAR-2026-09-30-W1-DP-001/
record.json # 平台、问题、时间、条件、状态
prompt.txt # 逐字问题原文
answer.txt # 完整可见回答
interface.png # 来源区域和模式状态
sources.json # 来源 URL、打开时间、最终地址
target-page.json # 本站 URL、版本和核查摘要
claim-review.json # 声明级支持判断与理由
public-redacted.md # 对外脱敏副本
manifest.sha256 # 文件摘要清单原始采集件、转写件、脱敏件和报告应分层保存,后续修订不能直接覆盖原件。若回答无法复制,可以保留截图并把 OCR 结果标为转写件;如果来源无法访问,记录访问时间、状态和失败原因,不把“打不开”改写成“没有来源”。公开材料还要检查账号信息、私有会话、个人数据、平台条款和第三方内容授权。
| 字段 | 示例 | 作用 |
|---|---|---|
| record_id | AI-VAR-2026-09-30-W1-001 | 让一次提交和后续判断拥有稳定身份。 |
| observed_at | 2026-09-30T10:20:00+08:00 | 区分回答观察时间、来源核查时间和报告时间。 |
| prompt_version | questions-v1.0 | 证明问题没有在看到结果后临时修改。 |
| page_version | 页面 URL + 修改日期 + 内容摘要 | 避免把旧回答倒推到当前页面。 |
| answer_artifact | 原文、截图或平台导出文件 | 让审核者回到实际看到的回答。 |
| source_mapping | 回答第 2 段 → S1 → 页面第 4 节 | 说明来源与声明之间的具体关系。 |
| missing | 模型版本未披露、来源打不开 | 保留不确定性,避免空值被误读为否。 |
| review | 判断、理由、审核人、复核时间 | 把人工解释和原始事实分开。 |
比较不同轮次:先对齐对象,再计算结果
比较前先确认两轮是否真的测试了同一个对象:平台入口、问题版本、页面版本、运行模式和判定规则是否一致。若有一项发生变化,仍然可以比较,但应将它定义为“不同条件下的观察对照”,而不是严格复测。
| 比较情况 | 推荐写法 | 不应写成 |
|---|---|---|
| 同平台、同问题、同模式,不同日期 | “两个时间窗口的可见回答存在差异。” | “平台改变了引用规则。” |
| 同问题、不同平台 | “在本协议下,平台 A 和 B 的来源展示不同。” | “平台 A 比平台 B 更喜欢本站。” |
| 同平台、不同页面版本 | “页面版本 V2 在指定样本中的观察结果与 V1 不同。” | “V2 一定导致引用提升。” |
| 题目、环境和分母不一致 | “两组样本不可直接合并,分别报告完成数和缺失数。” | “把两轮结果相加计算总体引用率。” |
指标必须带分母。假设计划测试 15 个组合,只完成 9 个,其中 2 个出现本站页面链接,应该写“完成 9/15,页面引用 2/9 个已完成组合;其余 6 个未执行或无法审核”,而不是写成“页面引用率 13.3%”并隐藏缺失样本。对于跨窗口研究,最好同时给出计划数、完成数、可判定数、未知数和缺失原因。
解释结果边界:把观察、推断和结论分层
高质量 GEO 研究不是用更肯定的语气包装不确定结果,而是让不同强度的说法对应不同证据。可以把报告中的句子分成三层:事实观察、有限推断和行动建议。
- 事实观察。描述界面实际显示的内容,例如“本窗口三次提交中有一次来源列表出现本站具体 URL”。这需要原始回答或截图支持。
- 有限推断。说明在当前样本中可能存在的关系,例如“结果在相同问题下出现波动,单次回答不足以证明稳定引用”。这需要重复样本和条件记录支持。
- 行动建议。提出下一步,例如“增加下一日期窗口并保留当前页面版本”。建议是编辑判断,不应伪装成平台规则。
下面这些结论通常超出了单次测试能够支持的范围:平台永远不会引用某站、某次改稿一定造成引用、页面被收录就一定会被 AI 采用、出现品牌名就证明平台读取过页面、同一 Token 或同一域名就证明额度属于同一个统计口径。它们若没有额外证据,只能保留为假设。
“在【平台/入口】、【问题版本】、【时间窗口】和【页面版本】条件下,我们观察到【可见事实】。该观察支持【有限范围的判断】,但不能推出【明确排除的更强结论】。下一轮将保持【固定条件】,增加【重复次数或观察窗口】。”
自动化与人工审核:机器做记录,人做判断
自动化适合处理重复、结构化和容易漏记的工作:生成记录 ID、保存含时区时间、校验问题版本、计算文件摘要、检查 URL 是否属于目标站点、汇总计划数与完成数。它不适合在没有证据的情况下自动判断“内容被采用”或“引用准确”。
| 适合自动化 | 必须人工复核 | 原因 |
|---|---|---|
| 环境字段、时间、问题原文和版本号 | 是否真的使用了联网模式 | 界面状态和平台内部检索不一定完全可见。 |
| 来源 URL 提取、跳转记录和 HTTP 状态 | 来源是否支持相邻声明 | 链接可访问不等于语义上相关或准确。 |
| 域名匹配、重复 URL 检查和样本计数 | 内容是否被采用 | 主题相同或词语相似不能证明采用了页面独有信息。 |
| 缺失字段提醒、SHA-256 和报告目录 | 结论强度与外推范围 | 结论需要结合问题、样本、证据和研究限制。 |
自动化脚本还应保留原始响应,不能只输出一个布尔值。比如“找到 ZenLeak 域名”可以作为筛选提示,但不能直接写入“页面被引用且引用准确”。人工审核后仍应保存判定理由,便于第二位审核者复核或在规则变更后重新编码。
ZenLeak 实验协议:先建立基线,再观察变化
ZenLeak 当前国内 AI 引用基准使用 5 个国内 AI 平台、12 个固定中文问题和多个观察窗口。这个体系的价值不在于制造一个看起来精确的总分,而在于把问题、平台、环境、回答、来源和缺失样本放进同一个可复核框架。新一轮复测应继续使用已有问题集版本,除非明确建立新版本,不在看到结果后临时替换题目。
对本网站自身页面,建议把“页面发布或更新”与“AI 引用复测”分成两个动作:发布时记录页面版本、来源和内链;复测时固定问题和平台,保存回答原文或截图,再逐条核查来源。这样即使搜索引擎尚未收录、平台没有展示来源或某个组合无法访问,记录仍然有明确状态,不会把技术可访问误写成 AI 已引用。
| 阶段 | 动作 | 输出 |
|---|---|---|
| 发布前 | 冻结问题集、平台入口、页面版本和判定规则。 | 协议版本、问题清单、页面摘要。 |
| 第一窗口 | 按固定顺序提交,保存完整回答、来源和时间。 | 逐条原始记录与缺失原因。 |
| 人工审核 | 区分提及、来源、页面、采用、准确和完整。 | 声明级判断、证据位置和审核状态。 |
| 重复窗口 | 保持问题和条件,按预定日期重新测试。 | 新记录,不覆盖旧记录。 |
| 发布报告 | 公开分母、完成度、未知值、限制和下一轮计划。 | 可读报告、脱敏证据包和机器可读索引。 |
这个流程适合用来研究页面可理解性,但不能替代搜索引擎收录、服务器抓取或站长平台数据。AI 回答出现本站来源,只是引用观察的一部分;页面仍需单独检查 HTTP、robots、canonical、sitemap、索引状态和真实抓取证据。
常见问题
同一个问题问三次,答案不同,说明模型不可靠吗?
不能仅凭三次差异得出这个结论。你可以说在指定条件下观察到了回答波动;要评价可靠性,还需要预先定义任务、正确性标准、样本量和审核方法。
出现了 ZenLeak 链接,就算 GEO 成功了吗?
不算。它最多证明本次回答的可见来源中出现了本站具体 URL。还要核查页面是否支持相邻声明、回答是否采用了页面内容,以及结果是否能在后续窗口重复出现。
可以把同一平台的不同模式合并统计吗?
只有在研究协议明确把它们定义为同一观察对象,并且条件和判定规则一致时才可以。更稳妥的做法是先按产品入口和模式分别统计,再说明是否具有可比性。
如果平台没有显示模型版本,应该怎么填?
填写“未披露”或“未知”,并保留界面证据。不要根据回答风格猜模型,也不要为了让表格完整而填入未经确认的版本号。
页面更新后,旧的 AI 回答还有效吗?
旧回答仍然是旧窗口的观察,但不能直接代表新页面版本。页面更新后应生成新的版本标识,保留旧记录,并用相同问题和条件开展新一轮测试。
自动脚本能不能直接判断引用准确?
脚本可以提取来源、定位 URL 和提醒缺失,但引用准确涉及声明与页面内容的语义关系,通常需要人工审核并保存理由。
复测前检查清单
- 平台入口、模式、可见模型版本和联网状态已记录,未披露字段没有猜测。
- 问题原文、问题集版本、语言、地区、时区、账号和会话规则已冻结。
- 本站页面的 canonical、发布时间、修改日期和内容版本已保存。
- 每次提交都有独立记录 ID、含时区时间和完整回答原件。
- 来源 URL、最终地址、打开时间、响应状态和回答中的位置均可追溯。
- 品牌提及、来源出现、页面引用、内容采用、引用准确和回答完整分别记录。
- 无法访问、未执行、未披露和未知没有被自动改成“否”。
- 重复次数、观察窗口、计划数、完成数和各类分母已写入报告。
- 自动化结果经过人工审核,原始回答没有被摘要或脱敏副本覆盖。
- 结论只描述当前样本,并明确不能推出的平台规律、因果关系和长期排名。