用 Agent Skill 做 GEO 竞品分析:从摸战场到出修复清单
一个可复现的工程流程:如何系统性地找出「AI 为什么不推荐你」,并输出可执行的修复清单。
一、问题定义
现象:向大模型提问「推荐几家做 X 的服务商」,返回的名单里从来没有自己公司。但搜索引擎能查到官网、公众号、第三方文章。
这不是同一个指标,要拆开看:
| 搜索层 | 检索结果里有谁 | 品牌词能查到,品类词查不到 |
| 模型层 | 参数知识里有谁 | 品牌词被判定「不熟悉」或「名称混淆」 |
实测样例(2026-10,qwen3.7-plus):
Q: 盈帆 OceanGTM 怎么样
A: 「盈帆 OceanGTM」并不是一个广为人知的标准通用产品名称。
这很可能是由于名称记忆偏差、特定行业的定制产品,
或者是几个不同概念的混淆产生的。
模型不是「不认识」,而是判定这个实体不存在。这比「排名靠后」严重一个量级。
二、流程总览
① 摸战场 → ② 扒底裤 → ③ 合成模板 → ④ 审自家 → ⑤ 出清单
↓ ↓ ↓ ↓ ↓
竞品名单 六项共性 布尔条件 得分表 P0/P1/P2
每一步都有可检查的完成标准,避免输出「感觉差不多」的建议。
三、① 摸战场
输入
3-6 个会暴露名单的问题。不要问「怎么做营销」这类开放题。
{
"questions": [
{"id": "Q1", "type": "category", "q": "推荐几家帮外贸企业做 AI 搜索获客(GEO)的服务商,要具体公司名"},
{"id": "Q2", "type": "category", "q": "制造业出海,AI 获客服务商哪家靠谱"},
{"id": "Q3", "type": "category", "q": "外贸独立站 GEO 优化找谁做?推荐几家"},
{"id": "Q4", "type": "category", "q": "外贸 GEO 服务商怎么选,有什么判断标准"},
{"id": "Q5", "type": "scenario", "q": "浙江有哪些做外贸独立站 GEO 优化的公司"},
{"id": "Q6", "type": "scenario", "q": "预算 1 万以内,外贸工厂想做 AI 搜索曝光找谁"},
{"id": "Q7", "type": "brand", "q": "盈帆 OceanGTM 怎么样"},
{"id": "Q8", "type": "pricing", "q": "外贸企业做 AI 搜索优化多少钱"}
]
}
动作
逐题提问,把答案里每个公司名抄进表,包括不认识的。
输出结构
{
"competitors": [
{"name": "迈富时", "hits": 4, "questions": ["Q1","Q2","Q4"],
"labels": ["自研大模型","港股上市","800+专利"], "site": "…"}
],
"sources": [
{"title": "5家推荐GEO服务商深度盘点", "media": "凤凰网", "url": "…"}
]
}
完成标准
- ≥5 家公司入表且每条带官网链接
- ≥2 篇来源文章可定位
sources 是关键产出:那些盘点文既是学习范本,也是后续投递目标。
四、② 扒底裤
六项提取维度
对 5-8 个对标页逐个提取:
DIMENSIONS = {
"structure": "H1 唯一性 / H2 数量 / 段落长度",
"schema": "application/ld+json 的 @type 列表",
"facts": "可验证事实计数(年份/客户数/专利/平台数/案例数据/资质)",
"entity": "公司全称出现位置;品牌名↔公司名关系是否写死",
"internal": "内链数量;是否被首页链接",
"format": "表格 / FAQ / 清单 / 对比 各几处",
}
提取脚本骨架
import re, json, urllib.request
def audit(url):
h = urllib.request.urlopen(url, timeout=30).read().decode("utf-8", "ignore")
out = {}
out["h1"] = len(re.findall(r"<h1", h, re.I))
out["h2"] = len(re.findall(r"<h2", h, re.I))
out["h3"] = len(re.findall(r"<h3", h, re.I))
out["tables"] = len(re.findall(r"<table", h, re.I))
out["lists"] = len(re.findall(r"<ul|<ol", h, re.I))
schemas = []
for m in re.finditer(r'<script type="application/ld\\+json">(.*?)</script>', h, re.S):
try:
d = json.loads(m.group(1))
t = d.get("@type")
if isinstance(t, list): schemas += t
elif t: schemas.append(t)
for g in d.get("@graph", []):
if g.get("@type"): schemas.append(g["@type"])
except Exception:
pass
out["schemas"] = sorted(set(schemas))
out["inner_links"] = len(re.findall(r'href="/[^"#?]*"', h))
return out
完成标准
六项各有一份跨对标页的共性清单,每项至少 3 个页面佐证。
五、③ 合成模板
把共性压成可检查的布尔条件——这是全流程的关键,因为「写得好」不可检查,「有 H1 且唯一」可检查。
{
"template": {
"unique_h1": true,
"h2_range": [3, 6],
"min_tables": 1,
"has_faq": true,
"min_facts": 5,
"entity_statement": true,
"min_internal_links": 2,
"min_schema_types": 2
}
}
完成标准
每条都能用「有/没有」判定,不含形容词。
六、④ 审自家
用同一套标准给自家站点打分,同时做两项专项检查。
专项检查 A:实体关系句
import re
relation = re.compile(r"公司全称[^。]{0,30}运营[^。]{0,40}品牌名")
这项最容易全军覆没。 实测某站点:工商全称与对外品牌在 73 个页面里从未并列出现,导致 AI 实体归一失败,70 篇文章权重互相抵消。
# 修法:全站统一一句话
SENTENCE = "X 有限公司运营 Y 品牌。"
# 每个页面插入 1 次,位置:页脚
专项检查 B:静态可见性
<!– ❌ 爬虫与不执行 JS 的 AI 读到 0 –>
<span class="stat-num" data-count="260">0</span>
<!– ✅ 静态值也写真实数字,动画不受影响 –>
<span class="stat-num" data-count="260">260</span>
输出
{
"scores": [
{"page": "首页", "score": "6/8", "gaps": ["h2_range", "entity_statement"]}
],
"gaps": [
{"priority": "P0", "item": "实体关系句 0/4", "fix": "73 文件各插一次", "cost": "0"}
]
}
完成标准
得分表 + 按影响排序的缺口清单。
七、⑤ 出修复清单
{
"fixes": [
{"id": 1, "priority": "P0", "problem": "全站实体关系句 0 处",
"fix": "8 处统一加「X 公司运营 Y 品牌」", "cost": "零成本", "impact": "最高"},
{"id": 2, "priority": "P0", "problem": "转化页无 Schema",
"fix": "加 Organization + WebPage + BreadcrumbList", "cost": "零成本", "impact": "高"},
{"id": 3, "priority": "P1", "problem": "首页 17 个 H2",
"fix": "精简到 8-10,卖点降为 H3", "cost": "需人工", "impact": "中"}
]
}
完成标准
P0/P1/P2 三级,P0 必须全部为零成本技术改动——否则落地率会掉到接近零。
八、实战结果
某站点(2026-10)跑完整流程后:
首页 6/8 → 7/8
转化页 5/8 → 7/8
实体关系句 0/4 → 4/4(73 文件)
Schema 转化页 0 种 → 5 种
全部改动零成本。
九、两条工程红线
① 结构可以抄,事实必须真。
抄结构是学习,编数字是自杀。AI 交叉验证时一旦发现数据对不上,该实体在本领域的信用会被整体归零。
② 不要相信「保证 AI 推荐排名」。
AI 搜索没有固定排名,只有「提不提你」。任何承诺位次的方案,要么不懂机制,要么在骗。
十、工具
两个 Agent Skill,MIT 协议:
github.com/liuyingwork1234-ops/geo-competitor-mining
github.com/liuyingwork1234-ops/geo-visibility-baseline
- geo-competitor-mining — 本文描述的五步流程
- geo-visibility-baseline — 配套的测效果环节:固定问题集 → 基线 → 隔期复测 → 三层归因
注意:基线测试的问题集建好后不许改,否则历史数据不可比。
盈帆-OceanGTM|外贸独立站 GEO 服务商|帮制造企业通过 Google 与 AI 搜索建立可持续的海外获客体系。
技术覆盖 Google 及 19 个 AI 平台。2026「直通乌镇」全球互联网大赛 OPC 特色赛(杭州站)数字商业运营组决赛入围。
金华市创捷商业管理有限责任公司运营外贸数字营销品牌盈帆-OceanGTM。
更多方法拆解、工具清单与案例数据:https://oceangtm.com/?utm_source=csdn




