GEO 优化效果怎么查:用 Knowledge Graph Search API 做品牌实体体检
客户上个月发来一句灵魂拷问:官网改版、Schema 标注、内容重建都做了一轮,GEO 优化到底有没有效果?我让他打开 Google 的 Knowledge Graph Search API,把品牌名丢进去查了一遍——实体在库,resultScore 41.7,但官网域名压根不在信源列表里。问题一下子清楚了:AI 引擎回答品牌词时没有可采信的第一信源。这篇文章就把这套"实体体检"方法完整摊开讲。
先搞清楚:GEO 效果核查到底在查什么
先给结论:GEO 效果核查的核心不是查排名,是查"实体是否被知识库收录、信源是否一致"。传统 SEO 看收录量和排名,AI 搜索语境完全不同——生成式引擎回答"XX公司是做什么的"这类品牌词时,它要先在知识图谱里定位到这个实体,再决定从哪些信源抽取事实。实体定位不到,后面一切归因都谈不上。
做 GEO 优化几个月,能拿到的可量化证据链其实就三段:
| 体检环节 | 用什么工具 | 判定标准 |
|---|---|---|
| 实体是否入库 | Knowledge Graph Search API | 返回非空结果,且类型匹配 Organization/Corporation |
| 实体置信度 | API 返回的 resultScore | 分值趋势逐月上升,同行对比不吃亏 |
| 信源一致性 | schema.org 标注 + Validator | 官网结构化数据与图谱描述字段能对上 |

这三段串起来,才是"品牌在 AI 搜索里的健康度"。少了任何一段,汇报里写的"效果不错"都站不住脚。还有一点要提醒:体检频率不用高,每月一次足够,但每次体检的动作、参数、口径必须固定,不然曲线就没法比了。
原理与机制剖析:resultScore 从哪来,AI 引擎又怎么用它
Knowledge Graph Search API 返回的每个实体都带一个 resultScore(取值 0 到 100+,无硬上限),官方文档没公布精确公式,但从公开资料和反复实测看,它至少由三块构成:实体在图谱内的连接密度(与其他实体、类别节点的关联边数量)、跨信源的证据强度(维基百科、官方站点、权威数据库等信源的互相印证程度)、以及查询词与实体名的匹配度。
理解这个构成,对 GEO 实操有两个直接推论:
- resultScore 不是固定分,是相对置信度。50 分不代表"及格",只代表"图谱对这个实体比较有把握"。所以体检要看趋势和同业对比,而不是死磕某个分数线。
- 信源一致性直接喂给置信度。官网 schema.org 标注里的名称、logo、sameAs 链接如果与图谱已有记录打架,等于自己往置信度上泼冷水。
再往下游看一层:AI 引擎(搜索摘要、对话式回答)在回答品牌词时,采信顺序大致是——知识图谱的实体摘要优先,其次是实体 sameAs 指向的高权重页面,然后才是普通网页索引。这条链路可以用一张时序图表达:
sequenceDiagram
participant U as 用户提问(品牌词)
participant E as 生成式引擎
participant K as 知识图谱
participant W as 官网结构化数据
U->>E: "XX公司主营业务是什么"
E->>K: 检索品牌实体
K-->>E: 返回实体 + resultScore + sameAs
E->>W: 按 sameAs 核对官网 Schema 标注
W-->>E: 名称/简介/logo/sameAs 一致则采信
E-->>U: 生成带实体背景的回答
体检能查到什么、查不到什么,也要先划清边界。能查到:实体是否存在、图谱给的描述文本、类型与 ID、关联信源、resultScore。查不到:具体哪款 AI 产品引用了你的实体、引用频率、回答里的情感倾向——这些得靠另外的监测手段,别指望一个 API 全包。
实操第一步:跑通 API 查询
KG Search API 免费但需要 API Key,在 Google Cloud Console 建项目、启用 Knowledge Graph Search API、创建 Key,五分钟能搞定。下面这段脚本是体检的起点,依赖 requests(2.31+)和 Python 3.10+:
# 依赖:Python 3.10+,requests 2.31+
# 安装:pip install requests==2.31.0
import requests
API_KEY = "你的-API-KEY" # 在 Google Cloud Console 创建
BRAND = "示例品牌名" # 要体检的品牌/企业名称
BASE = "https://kgsearch.google.com/apis/search" # 旧版查询端点
def lookup_entity(name: str) -> list:
"""按名称查知识图谱,返回实体列表"""
params = {
"query": name, # 查询词:品牌名或企业全称
"key": API_KEY, # 鉴权密钥,别提交进代码仓库
"limit": 5, # 只取前 5 条候选就够体检用
# 中英双语都取,便于与图谱英文别名对照
"languages": "zh,en",
}
resp = requests.get(BASE, params=params, timeout=10)
# 非 2xx 直接抛错,不吞异常
resp.raise_for_status()
# itemListElement 是返回 JSON 里的实体数组字段
return resp.json().get("itemListElement", [])
elements = lookup_entity(BRAND)
# 空结果是最危险的信号:实体未入库,AI 引擎无从定位
if not elements:
print("实体未入库,GEO 基础设施为零,先补结构化数据")
for el in elements:
# 每个元素里真正的实体对象嵌在 result 字段下
node = el["result"]
# name 与 types 是实体对齐的核心字段
print(node["name"], node.get("@type"), round(el.get("resultScore", 0), 1))
# detailedDescription 是 AI 引擎最常复用的摘要文本
desc = node.get("detailedDescription", {})
# 描述来源 URL 能告诉你图谱在采信哪个页面
print(" 描述来源:", desc.get("url", "无"))
拿到结果别急着高兴或沮丧,先做三件事:确认 name 和你的工商注册名一字不差;确认 types 里至少有一个组织类目;把 resultScore 记进台账——体检是拿数据说话,单次分数没意义,逐月趋势才有意义。如果首位候选根本不是你家实体,先停下来处理重名和消歧,别在错的实体上继续投入。
顺便说一个参数细节:languages 一定要带上 zh,否则中文品牌名可能只命中英文别名实体,体检结果会张冠李戴。另外 limit 别设太大,候选一多反而说明品牌名有重名歧义,这时候要先处理消歧问题再谈优化。
实操第二步:把单次查询做成月度体检脚本
单点查询只是挂号,真正有用的是批量体检加趋势台账。下面这段脚本把"查实体、算分、检查官网 sameAs、落盘 JSON"串成一条流水线,依赖同上,另需标准库 json、datetime:
# 依赖:requests 2.31+(与上一段共用环境)
import json
import datetime
import requests
# KG 查询端点,与上一段脚本共用
BASE = "https://kgsearch.google.com/apis/search"
# 体检台账,逐月追加,一行一条 JSON 记录
OUTPUT = "entity_checkup_log.jsonl"
def checkup(name: str, api_key: str, official_domain: str) -> dict:
"""对单个品牌做一次完整实体体检,返回结构化结果"""
params = {
"query": name, # 查询词用企业全称,别用简称
"key": api_key, # 密钥建议从环境变量读取
"limit": 3, # 候选太多说明品牌名有歧义
"languages": "zh,en", # 双语查询避免漏检
}
# 超时设 10 秒,批量跑几十个品牌时防止单点卡死
r = requests.get(BASE, params=params, timeout=10)
# 非 2xx 直接抛错,让批处理立即停下来人工介入
r.raise_for_status()
items = r.json().get("itemListElement", [])
if not items:
# 未入库要单独标记,方便月报里红字提醒
return {"name": name, "in_graph": False, "score": 0}
# 取分值最高的候选作为主实体,其余候选留作消歧参考
top = max(items, key=lambda e: e.get("resultScore", 0))
node = top["result"]
# 实体主页链接,常指向官网或维基百科词条
same_as = node.get("url", "")
return {
"name": name,
"in_graph": True,
"kg_id": node.get("@id", ""), # 图谱实体 ID,用于追踪
"score": round(top.get("resultScore", 0), 1),
"types": node.get("@type", []), # 类型列表,核对组织类目
# 官网域名是否出现在实体记录里,是信源一致性的粗筛
"official_in_sources": official_domain in json.dumps(node),
# 体检日期,供台账画趋势曲线用
"checked_at": datetime.date.today().isoformat(),
}
# 用法示例:结果追加写入台账文件
# result = checkup("示例企业全称", "API-KEY", "example.com")
# with open(OUTPUT, "a", encoding="utf-8") as f:
# f.write(json.dumps(result, ensure_ascii=False) + "\n")
台账跑三个月就能画出曲线。我们服务的一个客户,改版后首月 resultScore 从 12 爬到 27,第三个月稳定在 40 上下,sameAs 链接从指向一个废弃目录页修正回官网首页——这类细节比"流量涨了多少"更能说明 GEO 工作的杠杆点在哪。
信源一致性:Schema 校验是体检的第二条腿
KG API 只回答"图谱怎么看你",还要回答"官网自己怎么说"。两者对不上,实体置信度就漏气。这一步用两个官方工具交叉验证:
- Schema Markup Validator(https://validator.schema.org )——校验页面 schema.org 标注的语法与嵌套是否合法;
- Rich Results Test——Google 官方工具,验证标注能否被搜索系统解析出富结果,等于站在 Google 视角复核。
重点核对四个字段:name(必须与图谱记录的 name 逐字一致)、logo、sameAs(指向维基百科等图谱已收录的信源)、detailedDescription 的措辞不要与图谱描述冲突。改完之后流程如下:
flowchart LR
A[官网 Schema 标注] --> B{Schema Validator 校验}
B -- 报错 --> A
B -- 通过 --> C[Rich Results Test 复核]
C -- 不通过 --> A
C -- 通过 --> D[与 KG API 结果逐字段比对]
D -- 一致 --> E[体检通过,写入台账]
D -- 冲突 --> F[修正标注或提交信源更正]
一个常见翻车点:官网改版后模板里的 Organization 标注被前端同学顺手删了,页面看起来毫无异常,但下次体检 sameAs 全断。所以体检清单里必须包含"改版后 48 小时内复跑校验"这一项。
品牌实体体检清单表
把上面的方法固化成一张清单,每次体检照着打勾:
| # | 检查项 | 工具/方法 | 通过标准 |
|---|---|---|---|
| 1 | 实体是否入库 | KG Search API 按全称查询 | 返回非空且类型为组织类 |
| 2 | name 与注册名一致 | API 返回字段比对 | 逐字一致,无错别字 |
| 3 | resultScore 趋势 | 月度台账曲线 | 不低于上月,高于同业均值 |
| 4 | 官网域名在信源中 | official_in_sources 字段 |
为真 |
| 5 | sameAs 指向正确 | 图谱 url 字段 | 指向官网首页或官方社媒 |
| 6 | Schema 标注合法 | Schema Markup Validator | 零 Error 级报错 |
| 7 | 富结果可解析 | Rich Results Test | Organization 识别正常 |
| 8 | 描述文本无冲突 | 图谱描述 vs 官网标注 | 关键事实口径一致 |
八项全绿,才敢在月报里写"品牌实体健康"。
两个容易踩的误区
误区一:把 resultScore 当排名分数卷。它衡量的是图谱对实体的把握程度,不是搜索排位。有客户要求"把分数刷到 80",这种执念会引导出大量无效操作。正确的姿势是盯趋势和一致性,分数自然水涨船高。
误区二:只体检 Google,不管中文 AI 引擎。KG Search API 是 Google 生态的体温计,国内 AI 搜索有各自的知识来源。方法可以平移——查实体、核对信源、建台账——但工具要换,别拿一把尺子量所有引擎。往远看,各家 AI 引擎对实体化知识源的依赖只会加深,实体体检大概率会像当年的收录查询一样,成为内容团队的日常动作。建议现在就把脚本和台账流程跑顺。
工具、方法、清单都在这了,你在体检里踩过什么奇怪的坑,欢迎评论区交流。
参考与延伸
- Google Knowledge Graph 官方文档:https://developers.google.com/knowledge-graph
- Schema.org 官网(Organization 等类型定义):https://schema.org
- Schema Markup Validator(官方校验工具):https://validator.schema.org
GEO 优化、Knowledge Graph Search API、实体体检、resultScore、实体对齐、Schema.org、AI 搜索