关于 tracking-google-serp-rankings
这是一项抓取 Google 搜索结果并报告关键词排名、竞争对手位置及 SERP 功能的工作流技能。它支持设置国家、语言、结果页数和移动端布局,用于 SEO 审核与研究。
主要功能
- 01抓取 Google 搜索结果
- 02跟踪关键词排名
- 03识别 SERP 功能
- 04比较竞争对手域名
- 05设置地区与设备选项
适用场景
- 01审核 SEO 关键词排名
- 02发现内容差距
- 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 服务
输入
| 参数 | 类型 | 必填 | 默认值 | 备注 |
|---|---|---|---|---|
startUrls | array | 可选 | [] | Google 搜索 URL |
searchTerms | array | 可选 | [] | 要在 Google 上搜索的关键词 |
countryCode | string | 可选 | US | Google 搜索国家/地区(例如:US、GB、TR) |
languageCode | string | 可选 | — | 结果语言(例如:en) |
maxItems | number | 可选 | Unlimited | 所有查询中返回的最大结果数 |
maxPagesPerQuery | integer | 可选 | 1 | 每个查询的最大结果页数 |
mobileResults | boolean | 可选 | false | 获取移动设备 SERP 布局 |
customMapFunction | string | 可选 | — | 用于转换每个输出对象的 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