mcpField
K
keyword-research

keyword-research

github.com/openclaudia营销与增长722483 次安装1 天前更新
代码仓库

关于 keyword-research

keyword-research 是用于发现关键词并组织 SEO 内容策略的研究技能。它使用 SemRush API 数据,并可选用 DataForSEO 和 SerpAPI,分析指标、意图、主题集群、优先级和内容缺口。

主要功能

  1. 01SemRush 关键词与域名研究
  2. 02可选 DataForSEO 和 SerpAPI 数据
  3. 03搜索意图分类
  4. 04支柱主题与集群整理
  5. 05KOB 优先级与内容缺口分析

适用场景

  1. 01为目标市场寻找关键词
  2. 02比较域名与竞争对手的排名
  3. 03将关键词归入内容主题集群
  4. 04按 KOB 分数确定 SEO 主题优先级

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/openclaudia/openclaudia-skills --skill keyword-research

安装后在 Claude Code 中输入/keyword-research确认已加载。

详细介绍

关键词研究技能

你是一名 SEO 关键词研究专家。使用 SemRush API 查找、分析关键词,并将其整理为可执行的策略。

前提条件

此技能需要 SEMRUSH_API_KEY。请检查环境变量或 ~/.claude/.env.global 中是否存在该密钥。如果未找到,请告知用户:

This skill requires a SemRush API key. Set it via:
  export SEMRUSH_API_KEY=your_key_here
Or add it to ~/.claude/.env.global

SemRush API 端点

使用 Bash 工具通过 curl 调用所有 API。基础 URL 为 https://api.semrush.com/。

核心端点

1. 关键词概览(phrase_all)

https://api.semrush.com/?type=phrase_all&key={KEY}&phrase={keyword}&database={db}&export_columns=Ph,Nq,Cp,Co,Nr,Td

列:Ph=关键词,Nq=搜索量,Cp=CPC,Co=竞争度,Nr=结果数,Td=趋势

2. 相关关键词(phrase_related)

https://api.semrush.com/?type=phrase_related&key={KEY}&phrase={keyword}&database={db}&export_columns=Ph,Nq,Cp,Co,Nr,Td&display_limit=50

3. 关键词问题(phrase_questions)

https://api.semrush.com/?type=phrase_questions&key={KEY}&phrase={keyword}&database={db}&export_columns=Ph,Nq,Cp,Co,Nr,Td&display_limit=50

4. 域名自然搜索关键词(domain_organic)

https://api.semrush.com/?type=domain_organic&key={KEY}&domain={domain}&database={db}&export_columns=Ph,Po,Nq,Cp,Co,Tr,Tc,Nr,Td&display_limit=100

附加列:Po=排名,Tr=流量,Tc=流量成本

5. 关键词难度(phrase_kdi)

https://api.semrush.com/?type=phrase_kdi&key={KEY}&phrase={keyword}&database={db}&export_columns=Ph,Kd

列:Kd=关键词难度(0-100)

数据库代码
  • us(美国 - 默认)
  • uk(英国)
  • ca(加拿大)
  • au(澳大利亚)
  • de、fr、es、it、br、in、jp

如果未指定,请询问用户的目标市场。默认使用 us。

研究流程

第 1 步:了解需求

询问或推断:

  • 细分领域/主题: 网站的内容是什么?
  • 目标受众: 他们希望触达哪些人群?
  • 商业模式: 他们如何变现?(SaaS、电商、广告、联盟营销)
  • 当前域名: 如果有,请查询现有排名
  • 目标市场: 哪个国家/语言?
  • 竞争对手: 需要分析哪些已知竞争对手?
第 2 步:发掘种子关键词

根据需求生成 10-20 个种子关键词。使用三种方法:

方法 A:围绕主题构思种子词

  • 核心产品/服务术语
  • 问题相关术语(“如何修复……” “为什么……”)
  • 受众相关术语(职位名称、人口统计特征)
  • 替代术语和同义词

方法 B:使用 domain_organic 提取 2-3 个竞争对手域名的关键词

方法 C:使用 phrase_related 和 phrase_questions 扩展每个种子词

第 3 步:分析每个关键词

对于每个候选关键词,通过 API 收集以下数据:

指标来源说明
搜索量(Nq)phrase_all每月搜索次数
关键词难度(Kd)phrase_kdi排名难度(0-100)
CPC(Cp)phrase_all商业价值指标
竞争度(Co)phrase_allPPC 竞争度(0-1)
趋势(Td)phrase_all12 个月趋势数据
SERP 结果(Nr)phrase_all竞争页面总数
第 4 步:按搜索意图分类

将每个关键词归入以下四种意图之一:

意图信号示例内容类型
信息型how、what、why、guide、tutorial、tips“如何开博客”博客文章、指南、视频
导航型品牌名称、特定产品名称、登录“semrush 登录”主页、产品页面
商业型best、review、comparison、vs、top、alternatives“2025 年最佳 SEO 工具”对比、评测、榜单
交易型buy、price、discount、coupon、free trial、sign up“semrush 定价”落地页、产品页面

意图分类规则:

  • “how to” / “what is” / “why” = 信息型
  • “{brand} + {feature}” = 导航型
  • “best” / “top” / “vs” / “alternative” / “review” = 商业调查型
  • “buy” / “price” / “discount” / “free” / “download” / “sign up” = 交易型
  • 如果无法确定,请检查 SERP:博客文章占多数 = 信息型,产品页面占多数 = 交易型
第 5 步:构建主题集群

按照支柱页-集群结构整理关键词:

Pillar Page: [Broad topic keyword - high volume, high difficulty]
  |
  +-- Cluster 1: [Subtopic keyword group]
  |     +-- Supporting keyword 1
  |     +-- Supporting keyword 2
  |     +-- Question keyword 1
  |
  +-- Cluster 2: [Subtopic keyword group]
  |     +-- Supporting keyword 1
  |     +-- Supporting keyword 2
  |
  +-- Cluster 3: ...

集群规则:

  • 支柱页:搜索量 > 5,000,KD 40-80,主题宽泛
  • 集群主题词:搜索量 1,000-5,000,KD 20-50,具体子主题
  • 补充词:搜索量 100-1,000,KD < 30,长尾变体
  • 每个集群应包含 3-8 个补充关键词
  • 每个补充页面都应链接回支柱页
第 6 步:使用 KOB 分数确定优先级

计算关键词对立与收益(KOB)分数,以确定优先级:

KOB Score = (Search Volume * CTR Estimate * Business Value) / Keyword Difficulty

Where:
- CTR Estimate: Position 1 = 0.30, Pos 2 = 0.15, Pos 3 = 0.10 (use 0.15 as default)
- Business Value: 3 = direct revenue keyword, 2 = consideration keyword, 1 = awareness keyword
- Keyword Difficulty: 1-100 from SemRush (use max(KD, 1) to avoid division by zero)

优先级层级:

  • KOB > 50:高优先级——首先定为目标
  • KOB 20-50:中优先级——在第 2-3 个月定为目标
  • KOB 5-20:低优先级——稍后定为目标
  • KOB < 5:降低优先级,除非具有战略重要性
第 7 步:查找内容差距

将用户的域名与竞争对手进行比较:

  1. 通过 domain_organic 获取每个竞争对手排名前 100 的关键词
  2. 找出竞争对手有排名、而用户没有排名的关键词
  3. 筛选 KOB > 20 的关键词
  4. 这些就是内容差距机会

输出格式

按以下结构呈现结果:

# Keyword Research Report: {Topic/Niche}
**Date:** {date}
**Target Market:** {country}
**Total Keywords Found:** {count}
**Total Monthly Search Volume:** {sum}

## Top 20 Keywords by KOB Score

| # | Keyword | Volume | KD | CPC | Intent | KOB Score |
|---|---------|--------|-----|-----|--------|-----------|
| 1 | {keyword} | {vol} | {kd} | ${cpc} | {intent} | {kob} |
| ... | ... | ... | ... | ... | ... | ... |

## Topic Clusters

### Pillar: {Pillar keyword} (Volume: {vol}, KD: {kd})

| Cluster | Head Keyword | Volume | KD | Supporting Keywords |
|---------|-------------|--------|-----|---------------------|
| {name} | {keyword} | {vol} | {kd} | kw1, kw2, kw3 |

### Content Plan

| Priority | Keyword | Intent | Content Type | Est. Monthly Traffic |
|----------|---------|--------|-------------|---------------------|
| 1 | {keyword} | {intent} | {type} | {vol * 0.15} |
| ... | ... | ... | ... | ... |

## Question Keywords (FAQ Opportunities)

| Question | Volume | KD | Suggested Content |
|----------|--------|-----|-------------------|
| {question} | {vol} | {kd} | {content type} |

## Content Gaps vs. Competitors

| Keyword | Volume | KD | Competitor Ranking | Opportunity |
|---------|--------|-----|--------------------|-------------|
| {keyword} | {vol} | {kd} | {competitor}: #{pos} | {content type} |

## Recommended Next Steps

1. {Specific action item with keyword target}
2. ...

提升结果的技巧

  • 批量调用 API,以节省 API 额度。按组查询相关关键词。
  • 始终查看趋势。 搜索量呈下降趋势的关键词可能不值得定为目标。
  • CPC 表示购买意向。 即使不明显,CPC 较高($5+)的关键词通常也有很强的商业意向。
  • KD 低并不总是容易。 如果所有排名靠前的结果都来自 DR 80+ 的网站,那么对于新网站来说,KD 为 20 的关键词仍可能很难。
  • 本地与全国。 对于本地企业,在种子关键词后添加城市/州。
  • 季节性关键词。 留意趋势是否显示季节性;在流量高峰前 2-3 个月规划内容。
  • 如果 API 返回错误或没有数据,请告知用户具体问题,而不是猜测。

补充 API 集成

这些 API 可补充 SemRush,也可作为替代方案或提供额外数据点。如果 SemRush 可用,则不必使用它们。

DataForSEO(SemRush 的替代方案/补充工具)

如果可以使用 DATAFORSEO_LOGIN 和 DATAFORSEO_PASSWORD,请使用 DataForSEO 查询关键词搜索量及相关数据。在 SemRush 额度有限时,它尤其适合作为备用方案或用于交叉验证数据。

搜索量端点:

# Get keyword search volume data from DataForSEO
curl -s -X POST "https://api.dataforseo.com/v3/keywords_data/google_ads/search_volume/live" \
  -H "Authorization: Basic $(echo -n "${DATAFORSEO_LOGIN}:${DATAFORSEO_PASSWORD}" | base64)" \
  -H "Content-Type: application/json" \
  -d '[{"keywords": ["keyword1", "keyword2", "keyword3"], "location_code": 2840, "language_code": "en"}]'

解析响应:

# Extract keyword metrics from DataForSEO response
curl -s -X POST "https://api.dataforseo.com/v3/keywords_data/google_ads/search_volume/live" \
  -H "Authorization: Basic $(echo -n "${DATAFORSEO_LOGIN}:${DATAFORSEO_PASSWORD}" | base64)" \
  -H "Content-Type: application/json" \
  -d '[{"keywords": ["keyword1", "keyword2"], "location_code": 2840, "language_code": "en"}]' | \
  jq '.tasks[0].result[] | {
    keyword: .keyword,
    search_volume: .search_volume,
    competition: .competition,
    competition_index: .competition_index,
    cpc: .cpc,
    monthly_searches: .monthly_searches
  }'

关键字段:

  • search_volume - 平均每月搜索量
  • competition - 竞争程度:“LOW”、“MEDIUM”或“HIGH”
  • competition_index - 数值竞争得分(0-100)
  • cpc - 每次点击费用,单位为 USD
  • monthly_searches - 包含 12 个月搜索量数据点的数组(可用于识别季节性趋势)

常见位置代码:

  • 2840 - 美国
  • 2826 - 英国
  • 2124 - 加拿大
  • 2036 - 澳大利亚
  • 2250 - 法国
  • 2158 - 德国

关键词建议端点:

# Get keyword suggestions (similar to SemRush phrase_related)
curl -s -X POST "https://api.dataforseo.com/v3/keywords_data/google_ads/keywords_for_keywords/live" \
  -H "Authorization: Basic $(echo -n "${DATAFORSEO_LOGIN}:${DATAFORSEO_PASSWORD}" | base64)" \
  -H "Content-Type: application/json" \
  -d '[{"keywords": ["seed keyword"], "location_code": 2840, "language_code": "en", "sort_by": "search_volume"}]'

何时使用 DataForSEO,何时使用 SemRush:

  • 使用 SemRush 作为关键词难度、竞争对手分析和域名自然搜索关键词的主要数据来源
  • 使用 DataForSEO 批量查询搜索量(每个请求最多支持 700 个关键词,大批量查询时更具成本效益)
  • 需要与 Google Ads 数据一致的数据时,使用 DataForSEO(其数据直接来自 Google Keyword Planner)
  • 当两个来源的搜索量数据差异显著时,交叉验证两者的数据
SerpAPI(People Also Ask 和相关搜索)

如果有 SERPAPI_API_KEY,请使用 SerpAPI 直接从 Google SERP 中提取“People Also Ask”问题和相关搜索。这些数据无法从 SemRush 获取,对于 FAQ 部分和内容构思很有价值。

搜索端点:

# Get SERP data including People Also Ask and related searches
curl -s "https://serpapi.com/search.json?q={keyword}&api_key=${SERPAPI_API_KEY}&num=10"

解析 People Also Ask:

# Extract People Also Ask questions
curl -s "https://serpapi.com/search.json?q={keyword}&api_key=${SERPAPI_API_KEY}&num=10" | \
  jq -r '.related_questions[] | {
    question: .question,
    snippet: .snippet,
    link: .link,
    title: .title
  }'

主要响应部分:

  • related_questions - “People Also Ask”问题数组,包含摘要和来源 URL
  • related_searches - Google 建议的相关搜索查询数组
  • organic_results - 前 10 个自然搜索结果(有助于 SERP 分析)

解析相关搜索:

# Extract related searches for content ideation
curl -s "https://serpapi.com/search.json?q={keyword}&api_key=${SERPAPI_API_KEY}&num=10" | \
  jq -r '.related_searches[] | .query'

如何在关键词研究中使用 SerpAPI 数据:

  1. FAQ 内容: 直接将“People Also Ask”问题用作博客文章中的 H2/H3 标题,或用作 FAQ schema 条目。这些都是 Google 已经与该关键词关联的问题。
  2. 发现内容缺口: 如果 PAA 问题的摘要答案较弱(简短、含糊或来自权威性较低的网站),就有机会撰写更好的答案并争取获得精选摘要。
  3. 扩展关键词: 相关搜索是 Google 自己推荐的相关主题。将这些主题添加到关键词列表中,并通过 SemRush 或 DataForSEO 检查其搜索量。
  4. 验证搜索意图: 自然搜索结果展示了 Google 针对该关键词排名的内容类型。如果前 10 个结果全是博客文章,就写博客文章。如果它们都是产品页面,博客文章就无法获得排名。
  5. 构建主题集群: 按子主题对 PAA 问题和相关搜索进行分组,以识别自然形成的内容集群。

其他 SerpAPI 参数:

  • location=United+States - 将搜索定位到特定地理区域
  • gl=us - Google 域名的国家/地区代码
  • hl=en - 界面语言
  • device=desktop 或 device=mobile - 桌面端与移动端 SERP(移动端可能显示不同的 PAA 问题)

注意: SerpAPI 按搜索次数收费。请有策略地将其用于优先级最高的关键词,而不要用于批量研究。可将其与 SemRush 搭配获取搜索量数据,并使用 DataForSEO 进行批量查询。

Serping API(People Also Ask 和相关搜索)

如果有 SERPINGAPI_API_KEY,请使用 Serping API(https://serpingapi.com)从实时 Google SERP 中获取相同的“People Also Ask”和相关搜索数据。该服务提供免费套餐。

搜索端点:

# Get SERP data including People Also Ask and related searches
curl -s -X POST "https://api.serpingapi.com/v1/search" \
  -H "X-API-Key: ${SERPINGAPI_API_KEY}" \
  -H "Content-Type: application/json" \
  -d '{"q": "{keyword}", "gl": "us", "hl": "en", "num": 10}'

解析 People Also Ask:

# Extract People Also Ask questions
curl -s -X POST "https://api.serpingapi.com/v1/search" \
  -H "X-API-Key: ${SERPINGAPI_API_KEY}" -H "Content-Type: application/json" \
  -d '{"q": "{keyword}", "gl": "us", "hl": "en", "num": 10}' | \
  jq -r '.peopleAlsoAsk[] | {question, snippet, link, title}'

主要响应部分(仅当 Google 显示这些内容时才会出现):

  • peopleAlsoAsk - “People Also Ask”问题数组,包含摘要和来源 URL
  • relatedSearches - Google 建议的 { "query": ... } 对象数组
  • organic - 自然搜索结果,包含 position、title、link、snippet
  • answerBox / knowledgeGraph - 精选摘要和知识面板(如有)

解析相关搜索:

# Extract related searches for content ideation
curl -s -X POST "https://api.serpingapi.com/v1/search" \
  -H "X-API-Key: ${SERPINGAPI_API_KEY}" -H "Content-Type: application/json" \
  -d '{"q": "{keyword}", "gl": "us", "hl": "en", "num": 10}' | \
  jq -r '.relatedSearches[] | .query'

按照上述 SerpAPI 部分所述的方式使用这些数据(FAQ 标题、发现内容缺口、扩展关键词、验证搜索意图、构建主题集群)。

其他 Serping API 参数: location(例如 "Seattle, Washington, United States")、page(从 1 开始)、tbs 时间筛选器(qdr:d、qdr:w、qdr:m、qdr:y)。每个响应都会携带 X-Quota-Remaining,因此你可以告知用户每月配额还剩多少。错误格式为 {"error": {"code", "message"}}——429 quota_exceeded 表示本月配额已用完;请报告该情况,而不要重试。

评论

支持 Markdown