关于 seo-geo
seo-geo 是用于诊断单个网页在 AI 搜索中的引用情况并提出页面级改进建议的技能。它面向 SEO 从业者和编辑,结合关键词与引用数据、段落审查及已引用页面对比。
主要功能
- 01分析页面级 AI 搜索引用
- 02检查关键词覆盖与 AIO
- 03评估段落的可引用性
- 04对比已引用来源
- 05可选检查 Schema 与 AI 协议
适用场景
- 01判断页面是否被 AI Overviews 引用
- 02对照已引用页面发现内容差距
- 03编辑更新前审查页面段落
MCP 相关
使用 SE Ranking MCP 服务获取 URL 关键词和 AI Overview 数据。Firecrawl MCP 可选,用于检查 JSON-LD 和 AI 协议文件。
安装
复制下面的命令,在终端中运行。
npx skills add https:/ / github.com/ seranking/ seo-skills --skill seo-geo安装后在 Claude Code 中输入/seo-geo确认已加载。
详细介绍
页面级 GEO(生成式引擎优化)
针对单个 URL,展示其在 AI 搜索中的引用情况,并建议可提升页面在 AI Overview、Perplexity、ChatGPT 和其他大模型驱动的搜索引擎中的可引用性的页面级改动。这不同于域名级的品牌间声量份额分析,而是页面级诊断。
前提条件
- 已连接 SE Ranking MCP 服务。
- Claude 的
WebFetch工具可用。 - 用户提供:目标 URL。可选:目标国家/地区(默认为
us)、要重点关注的特定关键词(默认使用该 URL 在 SE Ranking 中按流量加权排名前 5 的关键词)。
流程
-
验证目标并执行预检。 参见
skills/seo-firecrawl/references/preflight.md,了解标准的三阶段预检(额度余额、Firecrawl 可用性、Google API)。本技能的具体说明:- 确认 URL 可抓取后再继续。
- 本技能预计消耗的 SE Ranking 额度:通常约 10–20 个额度(URL 关键词概况、AIO 是否存在,以及前 5 个关键词的排行榜)。
- Firecrawl:可选;如果可用,约消耗 3 个 Firecrawl 额度。可用时,步骤 7 中的 JSON-LD 解析和步骤 8 中的 AI 协议文件检查会使用它。不可用时,这些步骤会在
GEO.md中注明(skipped — Firecrawl not installed; install via extensions/firecrawl/install.sh),而不会导致运行失败。即使 Firecrawl 可用,也可以传入--no-firecrawl跳过它(节省额度)。 - 不使用 Google API。
-
URL 关键词概况
DATA_getUrlOverviewWorldwide和DATA_getDomainKeywords(按 URL 筛选)- 获取 URL 概况(关键词、流量)。
- 获取该 URL 排名所涉及的所有关键词。按流量加权得分排序。
- 取前 5 个作为 GEO 调查关键词集(或使用用户提供的关键词)。
-
逐个关键词检查 AIO 是否存在
DATA_getAiOverview- 对每个关键词查询 AIO 是否存在及引用列表。
- 标记:是否存在 AIO?是否引用了候选 URL?
- 记录 AIO 答案文本——它能说明 Google 模型偏好的段落形式。
-
逐个关键词查看 AIO 排行榜
DATA_getAiOverviewLeaderboard- 获取每个 AIO 查询中被引用来源的完整排名列表。
- 识别规律:域名级(哪些网站总是被引用?)、段落级(采用了什么结构?)。
-
页面段落级审核
WebFetch- 获取页面 HTML。
- 找出“段落”——可独立提取的内容(TL;DR 信息框、定义段落、H2 标题后的总结句)。
- 为每个段落评估其可引用性:
- 是否能用 1–3 个句子表达完整观点?
- 是否回答了具体问题(即其所属 H2 标题所暗示的问题)?
- 是否包含统计数据、数字或专有名词?
- 是否有明确的时间戳或内容新鲜度信号?
- 这是可引用性评估层。
-
将候选页面与已引用来源进行比较
- 对于未引用候选页面的每个 AIO 查询,找出被引用的来源。
- 使用 WebFetch 获取其中 2–3 个来源。
- 提取被引用的段落(通常是 AIO 答案中的片段)。
- 比较段落形式:候选页面与已引用页面。指出具体的结构、内容或时效性差距。
-
Schema 检查
mcp__firecrawl-mcp__firecrawl_scrape- 第 5 步中的 WebFetch 返回了 Markdown — JSON-LD 区块在解析前已被剥离。Schema 检查需要 Firecrawl 来恢复这些区块。
- **如果 Firecrawl 可用:**抓取一次目标 URL(消耗 1 个 Firecrawl 积分),解析返回的
html,找出所有<script type="application/ld+json">区块。具体检查:带有有效author、datePublished和dateModified的Article/BlogPosting;存在问答区块时检查FAQPage;BreadcrumbList;自指向的mainEntityOfPage规范链接。 - **如果 Firecrawl 不可用:**在
evidence/06-schema-check.md中写入Schema check: skipped — Firecrawl required to parse JSON-LD blocks (WebFetch returns markdown only).,并在 GEO.md 的 "Schema check" 部分写入相同内容。不要根据 Markdown 推断 — 本节要解决的正是这个问题。 - Schema 不是直接的引用信号,但它与 Google AIO 中的引用率高度相关。
-
AI 协议文件
mcp__firecrawl-mcp__firecrawl_scrape- **如果 Firecrawl 可用:**抓取
https://{domain}/llms.txt和https://{domain}/.well-known/rsl.json(并将旧版/RSL.txt位置作为备用)。费用:2 个 Firecrawl 积分(每个文件 1 个)。 - 对每个文件:记录 HTTP 状态(200 / 404 / 其他)、完整正文(如果存在)以及解析后的摘要(声明的内容类别、允许/拒绝范围、署名要求)。
- 在
evidence/07-ai-protocol-files.md中以及 GEO.md 新增的 "AI-protocol files" 部分中列出。这些文件表明了域名对大模型训练和引用的立场 — 存在且宽松的文件与更高的 AIO 引用率相关。 - **如果 Firecrawl 不可用:**写入
AI-protocol files: skipped — Firecrawl not installed.。不要改用 WebFetch(它可以处理纯文本,但保持集成方式统一;节省的运行时间微乎其微)。
- **如果 Firecrawl 可用:**抓取
-
综合整理
GEO.md
输出格式
创建文件夹 seo-geo-{target-slug}-{YYYYMMDD}/,其中包含:
seo-geo-{target-slug}-{YYYYMMDD}/
├── GEO.md (synthesised report + recommendations — primary deliverable)
├── 04-page-passages.md (extracted passages + citability scores — load-bearing reference editors consult)
├── 05-cited-source-comparison.md (gap vs cited sources — load-bearing reference)
└── evidence/
├── 01-url-keyword-footprint.md (URL overview + top keywords — raw step output)
├── 02-aio-by-keyword.md (AIO presence + citation per keyword)
├── 03-leaderboards.md (full leaderboards per keyword)
├── 06-schema-check.md (JSON-LD audit for GEO-relevant types — requires Firecrawl)
└── 07-ai-protocol-files.md (llms.txt + RSL status and content — requires Firecrawl)
顶层文件:GEO.md + 04-page-passages.md + 05-cited-source-comparison.md。其他步骤的文件会在 evidence/ 中保留原始 API/抓取输出,以便复现 — 编辑和作者在常规工作流程中无需打开这些文件。
GEO.md 按以下结构编写:
# GEO Analysis: {URL}
> Snapshot dated {YYYY-MM-DD} · Country: {country} · Keywords analysed: {n}
## Citation footprint
| Keyword | AIO present | Candidate cited | Citers |
|---|---|---|---|
| {keyword 1} | ✓ | ✗ | {3 cited sources} |
| {keyword 2} | ✓ | ✓ | {includes candidate + 2 others} |
| ... |
**Citation rate: {n}/{checked} ({%}) of AIOs where candidate could appear actually cite it.**
## Where the candidate IS cited
- {keyword X} — passage cited: "{passage text}"
- ...
## Where the candidate is NOT cited (and AIO is present)
- {keyword Y} — cited sources tend to share these patterns:
- {pattern 1: short definitive answer in first 100 words}
- {pattern 2: numbered stat with date}
- {pattern 3: schema-marked Article with author bio}
- The candidate is missing: {specific gap}.
## Page passage-level audit
Top-scoring passages on the candidate (by citability score):
1. {passage at H2 "X" — score 8/10. Strong: definitive sentence, named stat. Weak: no date.}
2. ...
Lowest-scoring passages (refresh candidates):
1. {passage at H2 "Y" — score 3/10. Weak: vague generalities, no specific data.}
2. ...
## Schema check
- `Article` (or sub-type) present and valid: {✓/✗ | skipped — Firecrawl required}
- `author` populated with `@type: Person` and `url`: {✓/✗}
- `datePublished` + `dateModified` ISO 8601: {✓/✗}
- `FAQPage` for visible Q&A: {✓/✗/N-A}
- `BreadcrumbList`: {✓/✗}
## AI-protocol files
- `/llms.txt` present: {✓ status 200 / ✗ status {n} / skipped — Firecrawl required}
- `/.well-known/rsl.json` (or `/RSL.txt`) present: {✓ / ✗ / skipped}
- Stance summary: {permissive / restrictive / mixed / unknown — based on declared categories and allow/deny scope}
## Recommendations (top 5 to improve citability)
1. {Specific change — e.g., "Add a 60-word TL;DR after the H1 that directly answers '{primary keyword}' — current page buries the answer below 800 words of preamble"}
2. {Specific change}
3. {Specific change}
4. {Specific change}
5. {Specific change}
## Recommended next step
Re-run `seo-geo` on this URL in 30 days after applying the recommendations. AIO indexes update on a monthly cadence — citation changes show up there first.
提示
- 遵守速率限制。约 5 个关键词 × 2 次 AIO 调用 = 约 10 次调用;再加上对引用来源进行 2–3 次 WebFetch。完全可行。
- 费用:通常约 10–20 个 SE Ranking 积分,此外,如果已安装扩展,还需约 3 个 Firecrawl 积分(目标 URL 的 JSON-LD 检查需 1 个,AI 协议文件需 2 个)。没有 Firecrawl 时,该技能会优雅降级 — Schema 和 AI 协议部分会明确注明「已跳过」,而不会悄然省略。
- **引用不等于排名。**页面的自然排名可能很好,却仍未被 AIO 引用。反过来也会发生 — 被引用的页面通常排名低于其引用率所显示的水平。
- GEO 的主要优化点通常包括:
- 在前 200 个词中给出明确答案。
- 提供带日期和来源的具体统计数据。
- Schema 中包含作者和日期。
- 段落级结构(每个 H2 都是一个问题;H2 后的第一段就是答案)。
- 搭配
seo-ai-search-share-of-voice使用,可查看域名层面的品牌对品牌可见度(本技能针对页面层面)。 - 搭配
seo-content-audit使用,对页面应用 CITE 评估标准(其中包含更多引用就绪度检查项)。 - 搭配
seo-schema使用,修复第 7 步发现的 Schema 问题。 - 不要为了优化 AIO 而牺牲人类可读性。处理得当时,两者相辅相成。