五道引擎,一条闭环
不是一次性的报告,而是可以反复跑的流水线。 最后一环的数据回流到第一环,越跑越准。 引擎用纯 Python 标准库写成,零第三方依赖——拷到你自己公司的电脑上就能跑。
collect / analyze / score / entities /
fetch / generators / report / visibility
不装任何第三方包
不用把资料交到我们服务器
诊断引擎
把四关模型变成一张可打分的试卷。给分只是副产品,归因和处方才是交付物。
输入
- 站点 URL(支持一次跑多站,用于集团站群)
- 行业权重配置
engine/config.py - 可选:已知的实体口径真值(品牌事实卡)
做什么
- 抓取首页与关键内页,落库原始 HTML
- 按四关 + 地基五个维度逐项判定,共数十个检查点
- 每个失分项回溯到具体证据(哪个标签、哪一行)
- 按「修复性价比」排序输出处方,而不是按严重程度
输出
一份 reports/<站点>GEO体检.json + 一份可直接给人看的 HTML 报告。
| 维度 | 权重 | 典型失分原因 |
|---|---|---|
| 地基 | 14 | canonical 缺失、sitemap 不全 |
| 看得到 | 18 | robots 拦爬虫、Crawl-delay 过长 |
| 看懂 | 30 | H1 缺失或重复、结构化数据未声明实体 |
| 信得过 | 18 | 同一实体多来源口径冲突 |
| 值得引 | 20 | 无定义句、无问答对、语料厚度不足 |
实测样例:蓝图主站 63.2 分(C 级)。 看完整报告与问题清单 →
实体引擎
这是整套系统里唯一「不靠技术、靠判断」的部分,也是我们花时间最多的地方。
品牌事实卡:唯一真源
先建立一份企业自己的「事实卡」——把法定主体、成立年份、地址、电话及其角色、 业务范围、方法论定义、可核验资质、客户规模口径等,逐字段写定。 这份卡是后面所有工作的裁判:任何一个线上表述与它不符,就是需要修的对象。
跨站口径漂移核查
把事实卡当作基准,去扫集团旗下所有站点与已知的第三方来源,输出一张冲突清单:
- 哪个站、哪个页面、哪一行,说了与事实卡不符的话
- 冲突字段属于哪一类(主体 / 地址 / 电话 / 年限 / 规模 / 业务范围)
- 严重度分级:直接判定不可靠 vs 仅影响归因
- 建议处置:改哪一处、改成什么、要不要留档
事实卡字段(节选)
{
"legalName": "青岛蓝图文化传播有限公司",
"brandName": "蓝图品牌集团",
"foundingDate": "1996",
"addresses": [
{"role": "总部/生产基地",
"value": "青岛市城阳区仙山东路7号",
"postalCode": "266107"},
{"role": "设计/接待中心",
"value": "青岛市市南区福州北路6号"}
],
"phones": [
{"role": "合作热线", "value": "400-8558-816"},
{"role": "总机", "value": "0532-85779539"},
{"role": "客户服务", "value": "15865328855"},
{"role": "创始人", "value": "15589810168"}
],
"methodology": {
"name": "TVOC 品牌方法论",
"scales": ["<1.0 负向投入", "=1.0 保本",
"1.0–1.5 亚健康", "1.5–2.0 健康",
"2.0–3.0 优秀", ">3.0 卓越"]
},
"customerCount": "3000 家以上",
"caseCount": "一万多个"
}
字段一旦写定,就成为全站群唯一口径。 电话必须带角色——同一个号码标错角色(比如把 400 热线写成传真号), 在机器眼里就是一条错误信息。
意图引擎
客户不会搜你的品牌名——他们搜的是自己的问题。 这一关把「客户会怎么问」穷举出来,才知道该准备哪些语料。
购买意图
认知 / 比较 / 决策 / 复购。同一个客户在不同阶段的问法完全不同, 答案里该出现的品牌角色也不同。
决策阶段
「这个行业有谁」→「这家怎么样」→「为什么贵」→「怎么签」。 越靠后的问题,越需要具体事实而非品牌形容词。
品牌实体
把品牌名、法定主体、产品线、方法论名一起挂进提示词, 覆盖「知道名字」和「不知道名字」两类提问。
data/提示词矩阵.csv)——
三维交叉后得到数百条客户真实可能提问的问句,作为第 ④ 关语料工程的选题来源,
也是第 ⑤ 关可见度监测的题库。两边用同一套题,才能对得上账。
语料引擎
不是写更多内容,而是把已有内容改写成人能搬、机器能引的规格。
五类引用标准件
- 定义句——可整句引用的品牌/方法论定义
- 问答对——问题来自意图矩阵,答案能独立成篇
- 数据锚——具体数字 + 时间 + 统计口径
- 结构化数据——给机器的事实表,含实体
@id串联 - llms.txt——给 AI 的站点说明书
交付形态
引擎生成的是可直接上线的东西,不是建议文档:
- 可复制的 JSON-LD 结构化数据块
- 可粘贴的 llms.txt 全文
- 改好的正文段落(含改前改后对照)
- 爬虫策略 robots.txt 重写稿
每次上线都带备份、带回滚路径、带验证清单。
可见度引擎
前面四关都是「我们做了什么」,这一关是「结果怎么样」——而且是唯一不能自己说了算的一关。
用意图引擎生成的那套题,定期去各主流 AI 平台问一遍,记录每个问题里:有没有提到你、说了什么、第几句说的、谁被一起提到。
指标不只看「上榜词数」,还看「准确上榜词数」——
我们额外判定「提到的那些里,说对了几个」。
因为被错误描述的曝光是负资产:它占用了你被引用的位置,还把错误信息传播给了每一个读答案的人。 只看上榜率,会把这种负资产统计成成绩。
监测指标
| 指标 | 含义 |
|---|---|
| 引用率 | 题库中被提到的比例 |
| 准确率 | 被提到且描述正确的比例 |
| 声量份额 | 与同赛道品牌被提及的占比 |
| 首提位置 | 在答案中出现的先后 |
| 情感倾向 | 正面 / 中性 / 负面 |
| 信源缺口 | 模型引用了谁、为什么不是你 |
「信源缺口」是最有用的一项——它直接告诉你:AI 是从哪儿了解到你所在行业的,你缺的是哪一块资料。
我们不用云端 SaaS 兜售你的数据
引擎是纯 Python 标准库实现的,没有第三方依赖。 这意味着它可以被完整地拷到任何一台装有 Python 的电脑上运行——包括你自己公司的。
| 对比项 | 常见 GEO SaaS | 蓝图 GEO 系统 |
|---|---|---|
| 运行位置 | 厂商云端,数据必须上传 | 可本地运行,诊断数据不出门 |
| 依赖 | 账号 + 订阅 + 联网 | 一个 Python,零第三方包 |
| 交付物 | 后台里的分数与报表 | 可上线的文件:Schema、llms.txt、正文 |
| 归因 | 告诉你哪项低分 | 告诉你哪一行、为什么、怎么改 |
| 口径判定 | 不涉及 | 以品牌事实卡为裁判的冲突清单 |
| 可解释性 | 黑箱评分 | 权重与规则写在 config.py 里,可查可改 |
engine/config.py 看我们给每一项打了多少分、为什么这样打。
评分规则不藏在黑箱里。