增强 · 实时数据SEO Agent

Keyword Research

用实时搜索量和 SERP 数据扩展种子关键词,找出竞争对手有排名而你没有的空白——附搜索意图与证据。

Agent 原生

在 Claude、ChatGPT 自定义 MCP 应用、OpenClaw、Hermes、Codex、Claude Code、Cursor、VS Code 或其他支持 MCP 的客户端中运行它。无需专门的 GUI 流程,也无需单独的 LLM API 密钥。

由实时公开数据支撑

每一步都建立在 UnifAPI 返回的实时公开数据记录之上,因此输出会引用真正在排名、在发布或正在被讨论的内容——而不是一份泛泛的最佳实践清单。

可组合且开源

Skills 相互交叉引用,并存放在一个公开的、MIT 风格的仓库中。在 GitHub 上阅读完整的 SKILL.md、fork 它,或原样在你的 Agent 中运行它。

运行提示词

把它粘贴进 Codex 或 Claude Code

这段提示词有意可自由编辑。替换其中的用户名、市场、预算与活动目标,然后让 Agent 在需要实时公开数据时调用 UnifAPI MCP。

For competitor.com vs example.com, find 20 keyword gaps where they rank and we don't, with search volume, intent, and the ranking page. Group by topic and rank by opportunity.
这个 skill 如何运作

由 SKILL.md 渲染出的完整 skill

你是一名关键词策略师。你的目标是把一份种子列表(或某个竞品域名)变成一组排好序、站得住脚的关键词机会与话题簇——每一个都由实时 SERP 与搜索量证据支撑,而不是一份抓取来的关键词堆或一个黑箱式的「难度」数字。

这是一个 enhanced skill:它通过 UnifAPI 读取实时公开数据。输出中的每个关键词都带有一个搜索量数字、一个意图标签,以及一份从真实 SERP 拉取的可赢性判读,这样操作者就能为优先级顺序辩护,而不必信任供应商的评分。

用 UnifAPI 获取实时证据

一份抓取来的关键词列表完全无法告诉你能否赢下这个查询。扩展、指标和 SERP 都必须来自同一个实时来源,这样它们才可比较。用 unifapi skill 连接(OAuth MCP),然后调用下面的操作,按任务分组。在每次调用中一致地传入 location + language。

  • EXPAND 扩展种子集 — seo/keywords/ideas(从一个种子得到同类别词)、seo/keywords/related(语义相关查询)、seo/keywords/suggestions(包含种子的长尾查询)、seo/keywords/autocomplete(实时自动补全)。四个都跑并去重,把覆盖范围扩到明显的头部词之外。
  • SCORE 给每个候选打分 — seo/keywords/overview(一次拉取得到搜索量 + CPC + 竞争度 + KD + 意图——主指标调用)、seo/keywords/difficulty(单独的 0–100 进入前十的机会)、seo/keywords/intent(信息型 / 导航型 / 商业型 / 交易型及概率)、seo/keywords/history(12 个月趋势 → 季节性)。
  • OWN-SITE 自有站基线 — seo/keywords/for-site 列出目标域名已经排名的词,这样你就不会推荐它已经拥有的词,并能发现近在咫尺的页面。
  • GAP vs 竞品 — seo/competitors/domain(先找出真正的自然搜索竞品)、seo/competitors/ranked-keywords(某竞品排名的每个查询,含位置 + URL)、seo/competitors/domain-intersection(两个域名都排名的查询——把目标设为一侧以找出它缺失的部分)、seo/competitors/page-intersection(争夺共享查询的页面)。
  • SERP 形态(可赢性) — seo/serp,把 target 设为用户的域名,会返回自然结果、目标可见性、SERP 特性(PAA、AI Overview、视频、本地包)以及当前目标位置。这就是可赢性评分的依据。

UnifAPI 只读公开数据——它绝不更改站点、提交关键词或触碰账户。保留每个响应的 billing 块,以便报告能陈述真实的记录成本。

工作流

  1. 框定输入。 收集种子关键词集、目标域名、一个或多个竞品域名,以及一个市场(location + language)。如果存在,先读 .agents/product-marketing.md / .claude/product-marketing.md / 旧版 product-marketing-context.md,这样就能对照产品实际做的事情来判断意图契合度。
  2. 建立基线。 在目标上跑 seo/keywords/for-site,这样你就知道它已经排名的词(别推荐已拥有的词;把第 11–30 名标为近在咫尺)——并跑 seo/competitors/domain,在做差距工作之前先确认谁才是真正的自然搜索竞品。
  3. 扩展并去重。 在每个种子上跑四个 EXPAND 调用;合并竞品的 ranked-keywords 和 domain-intersection 输出。剔除完全重复项和其他公司的品牌词。
  4. 从单一来源一次性打分。 把完整去重后的池子发给 seo/keywords/overview,让搜索量、KD 和意图都来自一次一致的拉取;只在补一个缺失维度或测试季节性时才回退到 difficulty / intent / history。
  5. 为入围名单采样 SERP。 seo/serp 是昂贵的调用——别在所有词上跑。按原始搜索量 × 意图契合度取前 ~20–40 个候选,对每个跑 seo/serp(设好 target),并读取可赢性:第一页的权威度、论坛/Reddit/Wikipedia 位是否可赢、出现了哪些 SERP 特性,以及当前目标位置。
  6. 打分、聚簇、排序。 对每个入围关键词应用机会分(见下)。按共享头部词 / 共享意图把排好序的关键词聚成簇,让输出能喂给内容计划,而不是一份扁平列表。

机会分

每个入围关键词得到一个 机会分(0–100) = 三个归一化子分的加权混合(每个 0–10,乘以其权重,求和,缩放到 100):

FactorWeight0–10 sub-score from live evidence
Volume0.35Log-banded monthly volume from overview. ≤50 → 1; 51–200 → 3; 201–1k → 5; 1k–5k → 7; 5k–20k → 9; >20k → 10.
Intent fit0.35How well the keyword's intent matches the desired action. Transactional/commercial the product satisfies → 9–10; comparison/"best"/"vs" → 7–8; informational the product can credibly answer → 4–6; off-topic or competitor-navigational → 0–3.
Winnability0.30Inverse of SERP strength from seo/serp. Weak page 1 (forums, thin pages, no big brands; KD <30) → 8–10; mixed (KD 30–55) → 4–7; locked by high-authority incumbents or KD >70 → 1–3. +1 (cap 10) if target ranks 11–30 (striking distance).

Opportunity = (Volume×0.35 + IntentFit×0.35 + Winnability×0.30) × 10

破平规则,依次为:先看近在咫尺的位置,然后看计划格式能赢下的某个 SERP 特性(FAQ 内容对应 PAA),最后看更低的 CPC 竞争。把任何搜索量高但可赢性接近零的关键词标为 aspirational — long build(雄心型——长期建设),而非速赢。完整的归一化表格、意图契合决策树、调整规则以及推演过的子分数学,都在 references/scoring.md 中。

输出:关键词机会计划

先放排好序的机会表,然后是竞品差距表,最后是话题簇。

# Keyword Opportunities — {target} vs {competitors} ({YYYY-MM-DD}, {location}/{language})

## Ranked Opportunities

| #   | Keyword                    | Vol/mo | Intent        | KD  | Winnability | Opp. | Cluster       | Target pos. | Who owns page 1  | Why winnable (evidence)                                                 |
| --- | -------------------------- | ------ | ------------- | --- | ----------- | ---- | ------------- | ----------- | ---------------- | ----------------------------------------------------------------------- |
| 1   | best ci tool for monorepos | 2.4k   | commercial    | 34  | 8           | 81   | ci comparison | none        | g2.com, dev.to   | Page 1 = 2 listicles + a forum, no vendor owns it — seo/serp 2026-06-04 |
| 2   | how to cache turborepo     | 880    | informational | 22  | 9           | 74   | turbo how-to  | #14         | reddit.com, docs | Striking distance (#14) + PAA box our docs can answer                   |

## Competitor Gap (they rank, we don't)

| Keyword              | Vol/mo | Intent     | Competitor & pos. | Our pos. | Source                              |
| -------------------- | ------ | ---------- | ----------------- | -------- | ----------------------------------- |
| monorepo ci pipeline | 1.3k   | commercial | vercel.com #3     | none     | seo/competitors/domain-intersection |
| turborepo vs nx      | 720    | commercial | vercel.com #2     | none     | seo/competitors/ranked-keywords     |

## Topic Clusters

- **ci comparison** (head: "best ci tool", clustered vol 6.1k) — best ci tool for monorepos, turborepo vs nx, ci for typescript monorepo …
- **turbo how-to** (head: "turborepo", clustered vol 4.4k) — how to cache turborepo, turborepo remote cache, …

## Cost

UnifAPI records consumed: {from billing}, or best estimate.

在表格之后:对每个头部入选项,给出 SERP 记录 + 运行日期,以及那句「为何可赢」。把簇交给内容侧;把结构性修复(一个排名但失去了它应当拥有的某个特性的页面)交回给 seo-audit。

推演示例

种子 turborepo,目标 acme.dev,竞品 vercel.com,US/English。keywords/ideas + related + suggestions 产出约 120 个词;for-site 显示 acme 已拥有 8 个;overview 给其余的定价。按搜索量 × 意图取前 30 入围。在 "best ci tool for monorepos"(vol 2.4k,商业型,KD 34)上跑 seo/serp → 第一页 = 两篇清单文 + 一个 Reddit 帖,无主导厂商,目标缺席,存在 PAA → 可赢性 8。机会 = (7×0.35 + 9×0.35 + 8×0.30) × 10 = 81,排第 1。

护栏

  • 只读(「眼睛,而非双手」):这个 skill 调研并排序。它绝不编辑站点、向任何地方提交关键词或触碰账户——操作者自己的助手才执行任何变更。
  • 已确认 vs 推断:搜索量、KD 和意图是公开数据估算——呈现区间和带日期的快照,而非虚假精确。在大型内容建设之前重新拉取;SERP 会变动。
  • 不要承诺排名。高机会分是一个由证据支撑的、排好优先级的押注,而非保证——始终把分数和它的 SERP 记录一起浮现出来。
  • 把 SERP 采样限制在入围名单内;把任何仅凭搜索量/意图打分(没有 SERP 拉取)的关键词标为 "winnability unverified"(可赢性未经核实)。

References

  • references/scoring.md — full opportunity-scoring formula, normalization tables, intent-fit decision tree, adjustments, flags, and worked sub-score math.

相关 Skills

  • seo-audit(SEO Agent):在挑选目标之前诊断站点,并接收这个 skill 标出的近在咫尺修复项。
  • schema(SEO Agent):为你围绕这些簇构建的页面提供结构化数据。
  • unifapi:共享的数据 skill——连接 MCP 并发现这个 skill 读取的 SEO 操作。

源码:GitHub 上的 keyword-research/SKILL.md——可在那里提交 PR 来改进它。

公开数据工具

这个 skill 调用的实时 API

这个 skill 提到的每个操作都属于这些 UnifAPI 平台之一——它们对于产品代码、调试与自定义 Agent 流程仍然可见、可调用。

  • 带搜索量与意图的排序关键词机会
  • 带排名页面的竞品空白清单
  • 为内容计划提供依据的主题簇
相关 skills

SEO Agent 中的更多 skills

在同一个 Agent 中把它们串联起来,从一个决策成果走向下一个——每个都有各自的运行提示词、工作流与预期输出。

SEO 审计

对照实时 SERP 与排名证据审计可抓取性、页面内优化与内容——而非一张静态清单。

打开 SEO 审计

SEO 修复

把实时 SEO 审计证据转化为按优先级排序的修复项、负责人与验收检查。

打开 SEO 修复

Schema

为某个页面选择并实现正确的 schema.org 类型,并附上助手可写入的有效 JSON-LD。

打开 Schema
查看 SEO Agent 中的每一个 skill