用途
Tracking Google SERP Rankings 是一个用于跟踪 Google 搜索排名和 SERP 特性的技能。它抓取任意关键词的 Google 搜索结果,展示谁排在什么位置、出现了哪些 SERP 特性(精选摘要、People Also Ask、本地包、广告),以及竞争对手的占位情况。适用于 SEO 审计、内容差距分析或关键词研究。
主要能力
- 针对一个或多个关键词抓取 Google 搜索结果。
- 提取自然结果的位置、URL、标题、描述和显示 URL。
- 识别 SERP 特性:featuredSnippet、peopleAlsoAsk、localPack、ads、relatedSearches。
- 统计自然结果总数。
- 若指定目标域名,可找出该域名出现的所有位置。
- 计算特定域名的平均排名、进入前 3/前 10 的关键词数量、未排名的关键词数量。
- 分析竞争对手在多个关键词中的主导地位。
- 发现精选摘要机会(存在精选摘要但目标域名不是来源的关键词)。
- 输出格式化的排名报告,包含关键词逐项结果、排名汇总、竞争对手分析和 SERP 特性机会。
使用方式
前置条件
- 设置 APIFY_TOKEN 环境变量。
- 可选:安装 Apify MCP 服务器。
输入参数
| 参数 | 类型 | 必填 | 默认值 | 说明 |
|---|---|---|---|---|
| startUrls | array | 可选 | [] | Google 搜索 URL |
| searchTerms | array | 可选 | [] | 在 Google 上搜索的关键词 |
| countryCode | string | 可选 | US | Google 搜索的国家(如 US、GB、TR) |
| languageCode | string | 可选 | — | 结果语言(如 en) |
| maxItems | number | 可选 | 无限制 | 所有查询返回的最大结果数 |
| maxPagesPerQuery | integer | 可选 | 1 | 每个查询的最大结果页数 |
| mobileResults | boolean | 可选 | false | 是否获取移动端 SERP 布局 |
| customMapFunction | string | 可选 | — | 用于转换每个输出对象的 JavaScript 函数 |
工作流程
- 明确参数:向用户询问要跟踪的关键词(1–20 个)、国家(默认 US)、语言(默认英语)、每个关键词的结果数(默认 20,即前 2 页)、设备(桌面或移动,默认桌面)、安全搜索(开或关,默认关以获取未过滤结果)、要跟踪的特定域名(可选)。
- 运行 Actor:推荐使用 run_actor.js 脚本,自动处理等待、输出和文件保存。
# 快速回答(在聊天中打印表格)
node scripts/run_actor.js \
--actor "apidojo~google-search-scraper" \
--input '{"param": "value"}'
# 保存为 CSV
node scripts/run_actor.js \
--actor "apidojo~google-search-scraper" \
--input '{"param": "value"}' \
--output YYYY-MM-DD_results.csv --format csv
# 保存为 JSON
node scripts/run_actor.js \
--actor "apidojo~google-search-scraper" \
--input '{"param": "value"}' \
--output YYYY-MM-DD_results.json --format json
APIFY_TOKEN 必须在环境或 .env 文件中设置。
如果 Apify MCP 可用:
- 工具:apify:run-actor
- Actor:"apidojo~google-search-scraper"
- 输入:
{
"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"
}'
- 解析 SERP 数据:从数据集中为每个关键词提取自然结果(位置、URL、标题、描述、显示 URL)、SERP 特性(featuredSnippet、peopleAlsoAsk、localPack、ads、relatedSearches)、自然结果总数。若跟踪特定域名,找出 URL 包含目标域名的所有位置。
- 映射排名:为每个关键词构建位置表,计算特定域名的平均排名、进入前 3/前 10/未排名的关键词、同一竞争对手占有的关键词。
- 格式化报告:输出包含排名汇总、关键词逐项结果、竞争对手主导分析和 SERP 特性机会的报告。
输出格式示例
# 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]
适用场景
- SEO 审计:了解目标域名在关键词上的排名情况。
- 内容差距分析:发现精选摘要机会和竞争对手占有的关键词。
- 关键词研究:查看 SERP 特性和竞争对手布局。
限制与注意事项
- 结果在多次运行之间可能变化:Google 会个性化结果并轮换位置。建议在一天中的同一时间和同一位置运行以获得一致的跟踪。
- 某个关键词没有结果:极低搜索量的关键词可能返回有限结果,可尝试更宽泛的变体。
- 广告密集的 SERP:某些关键词被广告主导,自然结果第 1 位可能在页面上位置较低,需在报告中注明。
- 需要 APIFY_TOKEN 环境变量。
- 关于收费、价格、平台支持等更多信息暂未提供。