mcpField
T
tracking-google-serp-rankings

tracking-google-serp-rankings

github.com/apidojo-io营销与增长1799 次安装24 周前更新
代码仓库

关于 tracking-google-serp-rankings

这是一项抓取 Google 搜索结果并报告关键词排名、竞争对手位置及 SERP 功能的工作流技能。它支持设置国家、语言、结果页数和移动端布局,用于 SEO 审核与研究。

主要功能

  1. 01抓取 Google 搜索结果
  2. 02跟踪关键词排名
  3. 03识别 SERP 功能
  4. 04比较竞争对手域名
  5. 05设置地区与设备选项

适用场景

  1. 01审核 SEO 关键词排名
  2. 02发现内容差距
  3. 03检查竞争对手的搜索可见度

MCP 相关

可在有 Apify MCP 服务时,通过它运行 Apify Google 搜索抓取 Actor。

安装

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

$npx skills add https://github.com/apidojo-io/apidojo-skills --skill tracking-google-serp-rankings

安装后在 Claude Code 中输入/tracking-google-serp-rankings确认已加载。

详细介绍

跟踪 Google SERP 排名

抓取任意关键词的 Google 搜索结果,查看排名情况、出现了哪些 SERP 功能(精选摘要、「用户还问了」、本地商家信息包、广告),以及竞争对手的排名位置。适用于 SEO 审核、内容差距分析或关键词研究。

前提条件

  • 已设置 APIFY_TOKEN 环境变量
  • 可选:已安装 Apify MCP 服务

输入

参数类型必填默认值备注
startUrlsarray可选[]Google 搜索 URL
searchTermsarray可选[]要在 Google 上搜索的关键词
countryCodestring可选USGoogle 搜索国家/地区(例如:US、GB、TR)
languageCodestring可选—结果语言(例如:en)
maxItemsnumber可选Unlimited所有查询中返回的最大结果数
maxPagesPerQueryinteger可选1每个查询的最大结果页数
mobileResultsboolean可选false获取移动设备 SERP 布局
customMapFunctionstring可选—用于转换每个输出对象的 JavaScript 函数

工作流

Progress:
- [ ] Step 1: Define keywords and search parameters
- [ ] Step 2: Run google-search-scraper
- [ ] Step 3: Fetch and parse SERP data
- [ ] Step 4: Map ranking positions and SERP features
- [ ] Step 5: Deliver ranking report
步骤 1:确认参数

向用户询问:

  • 要跟踪的关键词(1–20 个)
  • 国家/地区(默认:US)
  • 语言(默认:英语)
  • 每个关键词的结果数(默认:20,即前 2 页)
  • 设备——桌面设备或移动设备(默认:桌面设备)
  • 安全搜索——开启或关闭(默认:关闭,以获取未经筛选的结果)
  • 要跟踪的特定域名(可选——例如:“example.com 在这些关键词的搜索结果中排名如何?”)
步骤 2:运行 Actor

推荐——run_actor.js(自动处理等待、输出和文件保存):

# Quick answer (prints table to chat)
node scripts/run_actor.js \
  --actor "apidojo~google-search-scraper" \
  --input '{"param": "value"}'

# Save as CSV
node scripts/run_actor.js \
  --actor "apidojo~google-search-scraper" \
  --input '{"param": "value"}' \
  --output YYYY-MM-DD_results.csv --format csv

# Save as JSON
node scripts/run_actor.js \
  --actor "apidojo~google-search-scraper" \
  --input '{"param": "value"}' \
  --output YYYY-MM-DD_results.json --format json

必须在环境或 .env 文件中设置 APIFY_TOKEN。

如果 Apify MCP 可用:

Tool: apify:run-actor
Actor: "apidojo~google-search-scraper"
Input:
{
  "queries": ["[keyword1]", "[keyword2]", "[keyword3]"],
  "maxPagesPerQuery": 2,
  "countryCode": "US",
  "languageCode": "en",
  "mobileResults": false
}

REST API 备用方案:

curl -X POST \
  "https://api.apify.com/v2/acts/apidojo~google-search-scraper/runs?token=$APIFY_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "queries": ["[keyword1]", "[keyword2]"],
    "maxPagesPerQuery": 2,
    "countryCode": "US",
    "languageCode": "en"
  }'
步骤 3:解析 SERP 数据

对于数据集中的每个关键词,提取:

  • 自然搜索结果:position、url、title、description、displayedUrl
  • SERP 功能:featuredSnippet、peopleAlsoAsk、localPack、ads、relatedSearches
  • 自然搜索结果总数

如果要跟踪特定域名:查找 url 中包含目标域名的所有排名位置。

步骤 4:汇总排名

为每个关键词创建排名表。计算:

  • 所有关键词的平均排名(针对特定域名)
  • 目标域名排名进入前 3/前 10/完全未出现的关键词
  • 同一竞争对手占据的关键词(URL 域名多次出现)
步骤 5:整理报告

输出格式

# Google SERP Ranking Report
Keywords analyzed: [N] | Country: [US] | Device: [Desktop] | Date: [DATE]

## Rankings Summary (for [target domain], if specified)
- Keywords in top 3: [N]
- Keywords in top 10: [N]
- Keywords on page 2: [N]
- Keywords not ranking: [N]

## Keyword-by-Keyword Results

### "[keyword1]"
| Position | URL | Title | Type |
|----------|-----|-------|------|
| 1 | [url] | [title] | Organic |
| 2 | [url] | [title] | Organic |
| — | — | Featured Snippet: "[snippet text excerpt]" | Feature |
| — | — | People Also Ask: [N] questions | Feature |
| [pos] | [your domain] | [title] | **YOUR RANKING** |

SERP features present: [Featured Snippet / PAA / Local Pack / Ads]
Ranking difficulty signal: [Easy / Medium / Hard — based on DR of top results if available]

### "[keyword2]"
[same structure]

## Competitor Dominance Analysis
| Domain | Keywords Where They Rank Top 3 | Avg Position |
|--------|-------------------------------|--------------|
| [domain] | [N] | [X.X] |

## SERP Feature Opportunities
Keywords where a featured snippet exists but [your domain] is not the source:
- "[keyword]" — snippet currently owned by [domain]
- "[keyword]" — snippet currently owned by [domain]

故障排除

每次运行的结果不同: Google 会根据个性化信息调整结果并轮换排名。请在同一时间段、同一地点运行,以便持续跟踪。 关键词没有结果: 搜索量极低的关键词可能返回的结果有限。请尝试更宽泛的变体。 广告较多的 SERP: 某些关键词的搜索结果中广告占主导地位,自然搜索排名第 1 的结果可能出现在页面较下方。请在报告中注明这一点。

评论

支持 Markdown