mcpField
S
seo-geo

seo-geo

github.com/seranking营销与增长19185 次安装18 周前更新
代码仓库

关于 seo-geo

seo-geo 是用于诊断单个网页在 AI 搜索中的引用情况并提出页面级改进建议的技能。它面向 SEO 从业者和编辑,结合关键词与引用数据、段落审查及已引用页面对比。

主要功能

  1. 01分析页面级 AI 搜索引用
  2. 02检查关键词覆盖与 AIO
  3. 03评估段落的可引用性
  4. 04对比已引用来源
  5. 05可选检查 Schema 与 AI 协议

适用场景

  1. 01判断页面是否被 AI Overviews 引用
  2. 02对照已引用页面发现内容差距
  3. 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确认已加载。

详细介绍

示例输出:examples/seo-geo-notion-share-pages-20260514/GEO.md

页面级 GEO(生成式引擎优化)

针对单个 URL,展示其在 AI 搜索中的引用情况,并建议可提升页面在 AI Overview、Perplexity、ChatGPT 和其他大模型驱动的搜索引擎中的可引用性的页面级改动。这不同于域名级的品牌间声量份额分析,而是页面级诊断。

前提条件

  • 已连接 SE Ranking MCP 服务。
  • Claude 的 WebFetch 工具可用。
  • 用户提供:目标 URL。可选:目标国家/地区(默认为 us)、要重点关注的特定关键词(默认使用该 URL 在 SE Ranking 中按流量加权排名前 5 的关键词)。

流程

  1. 验证目标并执行预检。 参见 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。
  2. URL 关键词概况 DATA_getUrlOverviewWorldwide 和 DATA_getDomainKeywords(按 URL 筛选)

    • 获取 URL 概况(关键词、流量)。
    • 获取该 URL 排名所涉及的所有关键词。按流量加权得分排序。
    • 取前 5 个作为 GEO 调查关键词集(或使用用户提供的关键词)。
  3. 逐个关键词检查 AIO 是否存在 DATA_getAiOverview

    • 对每个关键词查询 AIO 是否存在及引用列表。
    • 标记:是否存在 AIO?是否引用了候选 URL?
    • 记录 AIO 答案文本——它能说明 Google 模型偏好的段落形式。
  4. 逐个关键词查看 AIO 排行榜 DATA_getAiOverviewLeaderboard

    • 获取每个 AIO 查询中被引用来源的完整排名列表。
    • 识别规律:域名级(哪些网站总是被引用?)、段落级(采用了什么结构?)。
  5. 页面段落级审核 WebFetch

    • 获取页面 HTML。
    • 找出“段落”——可独立提取的内容(TL;DR 信息框、定义段落、H2 标题后的总结句)。
    • 为每个段落评估其可引用性:
      • 是否能用 1–3 个句子表达完整观点?
      • 是否回答了具体问题(即其所属 H2 标题所暗示的问题)?
      • 是否包含统计数据、数字或专有名词?
      • 是否有明确的时间戳或内容新鲜度信号?
    • 这是可引用性评估层。
  6. 将候选页面与已引用来源进行比较

    • 对于未引用候选页面的每个 AIO 查询,找出被引用的来源。
    • 使用 WebFetch 获取其中 2–3 个来源。
    • 提取被引用的段落(通常是 AIO 答案中的片段)。
    • 比较段落形式:候选页面与已引用页面。指出具体的结构、内容或时效性差距。
  7. 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 中的引用率高度相关。
  8. 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(它可以处理纯文本,但保持集成方式统一;节省的运行时间微乎其微)。
  9. 综合整理 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 的主要优化点通常包括:
    1. 在前 200 个词中给出明确答案。
    2. 提供带日期和来源的具体统计数据。
    3. Schema 中包含作者和日期。
    4. 段落级结构(每个 H2 都是一个问题;H2 后的第一段就是答案)。
  • 搭配 seo-ai-search-share-of-voice 使用,可查看域名层面的品牌对品牌可见度(本技能针对页面层面)。
  • 搭配 seo-content-audit 使用,对页面应用 CITE 评估标准(其中包含更多引用就绪度检查项)。
  • 搭配 seo-schema 使用,修复第 7 步发现的 Schema 问题。
  • 不要为了优化 AIO 而牺牲人类可读性。处理得当时,两者相辅相成。

评论

支持 Markdown