finding-content-gaps-from-google-serp

Compare original and translation side by side

🇺🇸

Original

English
🇨🇳

Translation

Chinese

Finding Content Gaps from Google SERP

从Google SERP寻找内容缺口

Analyzes Google SERP results to identify where existing content is weak, outdated, or missing key information — these are the gaps where new content can rank quickly.
通过分析Google SERP结果,识别现有内容薄弱、过时或缺失关键信息的环节——这些正是新内容可快速获得排名的缺口。

Prerequisites

前提条件

  • APIFY_TOKEN
    environment variable set
  • Optional: Apify MCP server installed
  • 已设置
    APIFY_TOKEN
    环境变量
  • 可选:已安装Apify MCP服务器

Inputs

输入参数

ParameterTypeRequiredDefaultNotes
startUrls
arrayOptional
[]
Google search URLs
searchTerms
arrayOptional
[]
Keywords to search on Google
countryCode
stringOptional
US
Country for Google search (e.g.
US
,
GB
,
TR
)
languageCode
stringOptionalLanguage for results (e.g.
en
)
maxItems
numberOptionalUnlimitedMaximum results to return across all queries
maxPagesPerQuery
integerOptional
1
Maximum result pages per query
mobileResults
booleanOptional
false
Fetch mobile SERP layout
customMapFunction
stringOptionalJavaScript function to transform each output object
参数类型是否必填默认值说明
startUrls
数组可选
[]
Google搜索URL
searchTerms
数组可选
[]
要在Google上搜索的关键词
countryCode
字符串可选
US
Google搜索的目标国家(例如
US
GB
TR
languageCode
字符串可选搜索结果的语言(例如
en
maxItems
数字可选无限制所有查询返回的最大结果数
maxPagesPerQuery
整数可选
1
每个查询的最大结果页数
mobileResults
布尔值可选
false
获取移动端SERP布局
customMapFunction
字符串可选用于转换每个输出对象的JavaScript函数

Workflow

工作流程

Progress:
- [ ] Step 1: Run google-search-scraper for all keywords
- [ ] Step 2: Analyze SERP result quality signals
- [ ] Step 3: Score content gap opportunity per keyword
- [ ] Step 4: Cluster gaps by theme
- [ ] Step 5: Deliver prioritized content gap report
进度:
- [ ] 步骤1:针对所有关键词运行google-search-scraper
- [ ] 步骤2:分析SERP结果质量信号
- [ ] 步骤3:为每个关键词的内容缺口机会打分
- [ ] 步骤4:按主题对缺口进行聚类
- [ ] 步骤5:交付优先级排序的内容缺口报告

Step 1: Scrape SERPs

步骤1:爬取SERP

Recommended — run_actor.js (handles waiting, output, and file saving automatically):
bash
undefined
推荐方式 — run_actor.js(自动处理等待、输出和文件保存):
bash
undefined

Quick answer (prints table to chat)

快速查看结果(在聊天中打印表格)

node scripts/run_actor.js
--actor "apidojo~google-search-scraper"
--input '{"param": "value"}'
node scripts/run_actor.js
--actor "apidojo~google-search-scraper"
--input '{"param": "value"}'

Save as CSV

保存为CSV格式

node scripts/run_actor.js
--actor "apidojo~google-search-scraper"
--input '{"param": "value"}'
--output YYYY-MM-DD_results.csv --format 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

保存为JSON格式

node scripts/run_actor.js
--actor "apidojo~google-search-scraper"
--input '{"param": "value"}'
--output YYYY-MM-DD_results.json --format json
> `APIFY_TOKEN` must be set in environment or `.env` file.

**If Apify MCP is available:**
Tool: apify:run-actor Actor: "apidojo~google-search-scraper" Input: { "queries": ["[KEYWORD_1]", "[KEYWORD_2]", "..."], "maxPagesPerQuery": 1, "countryCode": "US", "includePeopleAlsoAsk": true }

**REST API fallback:**
```bash
curl -X POST   "https://api.apify.com/v2/acts/apidojo~google-search-scraper/runs?token=$APIFY_TOKEN"   -H "Content-Type: application/json"   -d '{"queries": ["[KEYWORD_1]", "[KEYWORD_2]"], "maxPagesPerQuery": 1}'
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可用:**
工具: apify:run-actor Actor: "apidojo~google-search-scraper" 输入: { "queries": ["[KEYWORD_1]", "[KEYWORD_2]", "..."], "maxPagesPerQuery": 1, "countryCode": "US", "includePeopleAlsoAsk": true }

**REST API备选方案:**
```bash
curl -X POST   "https://api.apify.com/v2/acts/apidojo~google-search-scraper/runs?token=$APIFY_TOKEN"   -H "Content-Type: application/json"   -d '{"queries": ["[KEYWORD_1]", "[KEYWORD_2]"], "maxPagesPerQuery": 1}'

Step 2: Score SERP Quality

步骤2:为SERP质量打分

For each keyword, assess the top 10 results:
Weakness signals (from title + URL):
stale_content = title or URL contains year < (current_year - 2)
low_authority_domain = not in [known authority list] (e.g. Wikipedia, Forbes, HubSpot, Moz, etc.)
thin_content_signal = page title is vague or generic (no specific angle)
forum_or_QA = result is from Reddit, Quora, AnswerThePublic (not editorial)
gap_score = (stale_content_count / 10) * 0.30
          + (low_authority_count / 10) * 0.25
          + (forum_qa_count / 10) * 0.20
          + (no_featured_snippet ? 1 : 0) * 0.25
Tier: HIGH OPPORTUNITY (score ≥ 0.60) | MODERATE (0.35–0.59) | LOW (< 0.35)
针对每个关键词,评估前10条搜索结果:
薄弱信号(来自标题+URL):
stale_content = 标题或URL包含的年份 < (当前年份 - 2)
low_authority_domain = 不在已知权威域名列表中(例如Wikipedia、Forbes、HubSpot、Moz等)
thin_content_signal = 页面标题模糊或通用(无特定视角)
forum_or_QA = 结果来自Reddit、Quora、AnswerThePublic(非编辑类内容)
gap_score = (stale_content_count / 10) * 0.30
          + (low_authority_count / 10) * 0.25
          + (forum_qa_count / 10) * 0.20
          + (no_featured_snippet ? 1 : 0) * 0.25
等级:高机会(得分≥0.60)| 中等机会(0.35–0.59)| 低机会(<0.35)

Step 3: Edge Cases

步骤3:边缘情况

  • All top 10 results are from major authorities: Gap score will be low — this is accurate; don't recommend targeting this keyword without a unique angle
  • SERP dominated by one domain: Note monopoly; this keyword may be unfairly dominated; consider long-tail variants
  • Keyword returns mixed intent (informational + transactional): Separate the analysis — informational content has different gap criteria than product pages
  • 前10条结果均来自主流权威域名:缺口得分会很低——这是准确的;若无独特视角,不建议针对该关键词创作内容
  • SERP被单一域名主导:需注意垄断情况;该关键词可能被不公平地控制,可考虑长尾变体
  • 关键词返回混合意图(信息类+交易类):分开分析——信息类内容的缺口标准与产品页面不同

Output Format

输出格式

undefined
undefined

Content Gap Analysis: [KEYWORD_SET]

内容缺口分析: [KEYWORD_SET]

Keywords analyzed: [N] | High opportunity: [N] | Moderate: [N] | Low: [N] | Date: [DATE]
分析的关键词数量: [N] | 高机会: [N] | 中等机会: [N] | 低机会: [N] | 日期: [DATE]

High-Opportunity Keywords (Best Investment)

高机会关键词(最佳投资方向)

KeywordGap ScoreStale ResultsLow AuthNo SnippetRecommended Angle
[keyword][0.XX][N]/10[N]/10Yes"[content angle]"
关键词缺口得分过时结果数低权威结果数无特色片段推荐视角
[keyword][0.XX][N]/10[N]/10"[内容视角]"

Content Brief Recommendations

内容 brief 推荐

1. "[Keyword]" (Gap Score: [X])

1. "[Keyword]"(缺口得分: [X])

Current top result: [title] ([year if stale]) from [domain] Gap: [stale/thin/no snippet/forum-dominated] Recommended content: [format + angle + target length]
undefined
当前顶级结果: [标题](若过时则显示年份)来自[域名] 缺口: [过时/内容单薄/无特色片段/论坛主导] 推荐内容: [格式 + 视角 + 目标篇幅]
undefined

Troubleshooting

故障排除

All gaps score low: Target keywords may be well-served by existing content — pivot to long-tail variations or sub-topics. Stale content from authority domains still ranks well: Google may not penalize age heavily for that topic; assess based on whether the content actually answers the user's question. Gap analysis is subjective: The weakness signals are proxies; manually review the top 3 results for your top 5 keywords to validate before committing to content production.
所有缺口得分都很低:目标关键词可能已被现有内容充分覆盖——转向长尾变体或子主题。 权威域名的过时内容仍排名靠前:Google可能不会因内容年限对该主题进行严厉惩罚;需评估内容是否真正回答了用户的问题。 缺口分析存在主观性:薄弱信号只是替代指标;在投入内容创作前,手动查看前5个关键词的前3条结果以验证分析结果。