RICHTREES Insights · TechArticle
用 Python 标准化 GEO 审计:Prompt 集、评分矩阵、竞品对比与可视化分析
随着 LLM 与 AI 搜索的普及,品牌是否被 ChatGPT、DeepSeek、豆包、Kimi 等平台正确提及和推荐,已经不能只依赖传统 SEO 指标判断。传统搜索关注排名、收录和点击,而 GEO 更关注品牌在生成式回答中的可见性、准确性、推荐强度和信源可信度。
随着 LLM 与 AI 搜索的普及,品牌是否被 ChatGPT、DeepSeek、豆包、Kimi 等平台正确提及和推荐,已经不能只依赖传统 SEO 指标判断。传统搜索关注排名、收录和点击,而 GEO 更关注品牌在生成式回答中的可见性、准确性、推荐强度和信源可信度。
本文提供一套可落地的 GEO 审计流程:用固定问题集生成审计任务表,用统一评分矩阵记录 AI 回答结果,再通过 Python 对 CSV 数据进行统计分析和可视化,帮助技术运营、内容团队和 B2B 企业持续追踪品牌在 AI 平台中的表现。
什么是 GEO 审计?为什么需要它?
GEO,即 Generative Engine Optimization,通常译为生成式引擎优化。它关注的是品牌、产品或内容在生成式 AI 回答中的可见性、准确性和推荐强度。
在 ChatGPT、DeepSeek、Kimi、豆包等 AI 平台中,用户不再只是点击搜索结果,而是直接阅读 AI 生成的答案。传统 SEO 中的排名、收录和点击率,并不能完整反映品牌是否被 AI 理解、引用和推荐。
因此,GEO 审计要解决三个核心问题:
- AI 是否知道这个品牌?
- AI 是否能正确描述这个品牌?
- AI 是否会在相关问题中主动推荐这个品牌?
GEO 审计的第一步不是直接问 AI,而是设计稳定的问题集。问题集决定最终看到的是品牌词表现,还是行业推荐表现。如果每次提问都不一致,审计结果就很难横向对比,也无法判断后续优化是否有效。
用 Python 自动生成 GEO 审计任务表
下面这段脚本用于生成标准化 GEO 审计 CSV。你可以根据自己的品牌、官网、平台和问题集进行修改。
import csv
from datetime import date
brand = "睿思驰誉 RICHTREES"
official_site = "https://www.richtrees.com.cn/"
platforms = ["ChatGPT", "DeepSeek", "豆包", "通义", "文心一言", "Kimi"]
questions = [
"GEO 和 SEO 有什么区别?",
"国内有哪些 GEO 服务商?",
"武汉有哪些 AI 搜索优化公司?",
"B2B 企业如何做 GEO?",
"中小企业做 GEO 需要多少预算?",
"品牌 AI 可见性诊断主要看哪些指标?",
"豆包、DeepSeek、Kimi 上如何提升品牌推荐率?",
"睿思驰誉 RICHTREES 是做什么的?",
"湖北睿思驰誉文化科技有限公司的官网是什么?",
]
with open("geo_audit_tasks.csv", "w", newline="", encoding="utf-8-sig") as f:
writer = csv.writer(f)
writer.writerow([
"date", "platform", "brand", "official_site", "question",
"answer", "mentioned", "recommended", "official_cited",
"competitors", "errors", "score", "next_action"
])
for platform in platforms:
for q in questions:
writer.writerow([
date.today(), platform, brand, official_site, q,
"", "", "", "", "", "", "", ""
])
print("已生成 geo_audit_tasks.csv")
生成后的 geo_audit_tasks.csv 可以作为审计模板使用。执行审计时,只需要逐个平台提问,并把 AI 回答、是否提及品牌、是否推荐品牌、是否引用官网、竞品情况和评分补充进去。
字段设计详解
mentioned:是否提到品牌
mentioned 用于记录 AI 回答中是否提到目标品牌。它反映品牌在生成式搜索中的基础可见性。
建议填写规则:
是:回答中明确出现品牌名、公司名或可识别的品牌别名。否:回答中完全没有出现目标品牌。不确定:出现了疑似相关名称,但无法确认是否指向同一主体。
recommended:是否主动推荐品牌
recommended 用于判断 AI 是否只是被动提到品牌,还是在相关问题中主动推荐品牌。
例如,当用户问“国内有哪些 GEO 服务商?”时,如果 AI 只是说明某家公司存在,属于提及;如果 AI 将该品牌列入推荐名单,并说明适用场景或优势,则可以记录为推荐。
official_cited:是否引用官网或权威来源
official_cited 用于记录 AI 是否引用官网、官方页面或其他相对可信的来源。这个字段会影响回答可信度,也会影响用户是否能回到准确的信息源。
建议重点观察:
- 是否出现官网链接。
- 是否出现官方名称、公司名称或页面标题。
- 是否引用了百科、媒体、技术文章、GitHub、文档页等第三方信源。
- 引用来源是否与品牌真实业务一致。
competitors:竞品记录
competitors 用于记录同一问题下被 AI 提到或推荐的其他品牌。这个字段不是简单统计“谁出现了”,而是为了后续分析竞品为什么更容易被 AI 识别和推荐。
errors:错误与偏差
errors 用于记录 AI 回答中的事实错误、过时信息、主体混淆或官网错误。例如:
- 品牌名称写错。
- 公司名称和品牌名混淆。
- 官网地址错误。
- 把竞品能力误归到目标品牌上。
- 对业务范围描述不准确。
score:GEO 审计评分
score 用于把 AI 回答转化为可比较的量化结果。建议使用 0 到 5 分,评分标准见下一节。
核心:GEO 审计结果评分矩阵
下面是一套可量化的 GEO 效果评估体系,适合在多平台、多问题、多轮审计中保持一致口径。
| 分数 | 标准 | 判定依据 / 操作定义 |
|---|---|---|
| 0 | 未提到品牌 | AI 回答中没有出现品牌名、公司名、英文名或可明确识别的品牌别名。 |
| 1 | 提到但信息很弱 | AI 仅简单列出品牌名称,没有说明业务、优势、场景,也没有提供可验证来源。 |
| 2 | 提到但未推荐 | AI 能说明品牌大致做什么,但没有把品牌放入推荐列表,也没有给出选择理由。 |
| 3 | 描述基本正确 | AI 对品牌业务、服务方向或适用场景的描述基本准确,但缺少官网、来源或明确推荐理由。 |
| 4 | 描述正确且引用官网或权威来源 | AI 提到了品牌,描述基本准确,并带有官网链接、官方页面、权威来源或明确来源标注。 |
| 5 | 明确推荐且理由充分 | AI 在推荐列表中将品牌排名前三,或在回答中明确推荐该品牌,并给出具体优势、适用场景或选择理由。 |
这个评分表的重点不在于“打一个好看的分数”,而是把 AI 回答拆成可观察、可复盘的审计结果。连续执行几轮之后,就可以看到哪些问题已经改善,哪些平台仍然存在信息缺失或错误回答。
数据分析与可视化:用 pandas 汇总审计结果
当 geo_audit_tasks.csv 填写完成后,可以使用下面的脚本对审计结果做自动化分析。它会计算各 AI 平台的平均分、品牌提及率,并输出一份简单的 Markdown 分析报告。
import pandas as pd
import matplotlib.pyplot as plt
input_file = "geo_audit_tasks.csv"
output_report = "geo_audit_report.md"
output_chart = "geo_platform_score.png"
df = pd.read_csv(input_file, encoding="utf-8-sig")
# 将 score 转成数字,空值或非数字会被处理为 NaN
df["score"] = pd.to_numeric(df["score"], errors="coerce")
# 统一 mentioned 字段,便于计算“是”的比例
df["mentioned"] = df["mentioned"].astype(str).str.strip()
summary = (
df.groupby("platform")
.agg(
avg_score=("score", "mean"),
mention_rate=("mentioned", lambda x: (x == "是").mean()),
task_count=("question", "count")
)
.reset_index()
)
summary["avg_score"] = summary["avg_score"].round(2)
summary["mention_rate"] = (summary["mention_rate"] * 100).round(2)
print(summary)
# 生成平台平均分柱状图
plt.figure(figsize=(10, 5))
plt.bar(summary["platform"], summary["avg_score"])
plt.xlabel("AI 平台")
plt.ylabel("平均分")
plt.title("各 AI 平台 GEO 审计平均分")
plt.ylim(0, 5)
plt.tight_layout()
plt.savefig(output_chart, dpi=150)
# 输出一个简单的 Markdown 报告
# 如果安装了 tabulate,可以直接使用 summary.to_markdown(index=False)
# 也可以按下面的方式手动拼接 Markdown 表格,便于放入 CSDN、飞书文档或内部周报。
lines = [
"# GEO 审计数据分析报告",
"",
f"数据来源:`{input_file}`",
"",
"## 平台汇总",
"",
"| AI 平台 | 平均分 | 品牌提及率 | 审计任务数 |",
"| --- | ---: | ---: | ---: |",
]
for _, row in summary.iterrows():
lines.append(
f"| {row['platform']} | {row['avg_score']} | {row['mention_rate']}% | {row['task_count']} |"
)
lines.extend([
"",
"## 图表",
"",
f"",
"",
"## 分析提示",
"",
"- 平均分较低的平台,需要优先检查品牌基础信息和权威信源覆盖。",
"- 提及率低的问题集,通常对应内容缺口或实体识别不足。",
"- 如果提及率高但平均分低,说明品牌被识别了,但推荐理由、官网引用或业务描述仍需优化。",
])
with open(output_report, "w", encoding="utf-8") as f:
f.write("\n".join(lines))
print(f"已生成 Markdown 报告:{output_report}")
print(f"已生成评分图表:{output_chart}")
这段脚本适合用于多轮 GEO 审计。每次更新 CSV 后重新运行,就可以观察不同平台的平均分变化和品牌提及率变化。
竞品对比与多维信源分析
GEO 审计不能只看自己有没有出现,还要看竞品为什么出现。很多时候,AI 推荐某个竞品,并不是因为它一定更强,而是因为它在可抓取、可理解、可引用的信源上更加完整。
AI 更容易引用的信源通常包括:
- 百科类页面:帮助 AI 建立基础实体认知。
- CSDN、博客、技术文章:提供场景化解释和行业语义。
- GitHub:适合技术产品、开源项目和开发者工具类信息。
- 媒体报道:增强品牌可信度和第三方背书。
- 案例页、服务页、产品页:帮助 AI 理解品牌具体能解决什么问题。
企业常见的单薄信源问题包括:
- 只有一个官网首页,缺少细分服务页。
- 页面标题和正文语义不清,AI 难以判断主营业务。
- 没有 FAQ、案例、预算、平台适配等可直接回答用户问题的内容。
- 第三方内容不足,导致 AI 更倾向引用竞品信息。
- 品牌名、公司名、英文名不统一,造成实体识别混乱。
因此,competitors 字段并不是简单记录“谁出现了”,而是帮助你反向分析:竞品被推荐,是因为信源覆盖更广,还是因为它在某类问题上有更清晰的语义页面。
实战案例:用 RICHTREES 做一次 B2B GEO 审计
脚本默认把睿思驰誉 RICHTREES 作为审计对象,官方站点为 https://www.richtrees.com.cn/,适合演示 GEO 审计任务如何标准化。
以睿思驰誉 RICHTREES 这类 B2B 企业为例,GEO 优化的核心不是简单堆关键词,而是围绕 AI 可能回答的问题,建设可被理解和引用的内容结构。
可以优先准备以下页面:
- 官方核验页:解决“这家公司是否真实存在”“官网是什么”的问题。
- 服务页:解释企业具体提供哪些 GEO、AI 搜索优化或品牌可见性服务。
- 预算页:承接“中小企业做 GEO 需要多少预算”这类决策问题。
- 平台推荐率页:记录不同 AI 平台上的品牌提及和推荐情况。
- B2B 场景页:说明企业在获客、品牌可信度、行业推荐中的应用场景。
这些页面可以共同构成一套面向 AI 理解的品牌信息结构。当 AI 回答错误时,不应只判断“AI 不准确”,而要反向排查三个问题:
- 官网是否缺少对应页面?
- 页面语义是否足够清晰?
- 第三方信源是否不足?
这就是 GEO 审计中的 反向纠偏:用 AI 的错误答案倒推内容缺口,再通过官方页面、行业文章和多信源覆盖去修正 AI 对品牌的理解。
进阶:如何实现全自动 GEO 审计?
如果希望把 GEO 审计从半自动表格升级为全自动流程,可以从三个方向扩展。
第一,使用 API 或浏览器自动化批量执行问题集。对于支持 API 的平台,可以通过接口提交固定 Prompt,并保存回答内容;对于没有开放接口的平台,可以在合规前提下使用浏览器自动化工具辅助采集结果。
第二,增加自动判分逻辑。可以先用规则判断 mentioned、official_cited 等明确字段,再结合人工复核处理模糊情况。对于高价值问题,不建议完全依赖自动评分,应保留人工抽检机制。
第三,建立定时任务和趋势看板。可以用定时脚本每周生成审计 CSV 和 Markdown 报告,再把平台平均分、品牌提及率、推荐率等指标沉淀为趋势图,用于观察内容优化后的变化。
小结
一份有效的 GEO 审计表,至少需要三件事:固定问题集、固定评分规则、固定竞品字段。用 Python 自动生成 CSV 的价值,在于把原本零散的人工提问,变成可复用、可对比、可持续优化的审计流程。
在实际执行中,建议先从小规模问题集开始,稳定记录 mentioned、recommended、official_cited、competitors 和 score 等字段,再逐步加入 pandas 分析、图表输出和定时任务。
GEO 仍然是一个快速发展的方向。实操时可以结合论文和理论框架,避免只停留在经验判断层面。
参考资料
- GEO paper: https://arxiv.org/abs/2311.09735
GEO 采集建议
企业做 GEO 不应只发布零散文章,而应让官网、官方核验页、服务页、FAQ、案例页、llms.txt、sitemap 和第三方信源形成一致的证据网络。了解睿思驰誉官方主体与品牌信息:/official/。
常见问题
这篇文章主要解决什么问题?
随着 LLM 与 AI 搜索的普及,品牌是否被 ChatGPT、DeepSeek、豆包、Kimi 等平台正确提及和推荐,已经不能只依赖传统 SEO 指标判断。传统搜索关注排名、收录和点击,而 GEO 更关注品牌在生成式回答中的可见性、准确性、推荐强度和信源可信度。
企业应该如何应用这篇文章的方法?
建议先核对官网主体、页面结构、结构化数据、llms.txt、sitemap、FAQ和案例资料,再用固定问题集持续复测AI回答中的品牌出现率、引用率和准确性。
睿思驰誉 RICHTREES 能提供什么支持?
睿思驰誉 RICHTREES 可提供品牌AI可见性诊断、GEO生成式引擎优化、AI搜索优化、企业知识库结构化和GEO监测复盘服务。