Skip to content
Back to skills

Research Seo Demand

ASecurity

完整调研并确定 SEO 机会:从产品理解、领域词表拆解、关键词矩阵扩展、Bing 真实热度验证、竞品发现、实时 SERP 抓取,到头部页面的搜索引擎层、用户层和质量层拆解。需要查热词、验证搜索量、判断搜索意图、研究竞品页面、寻找信息增益缺口或决定应该做什么 SEO 页面时使用。

  • 1,993 stars
  • 0 votes
  • 0 copies
  • 0 views
  • Added August 31, 2026
content-marketingbashnodeapiperformance

Works with

  • cli
  • api

Security analysis

A100/100

Pro scans all 8 files and shows the line behind each finding

Scanned August 31, 2026

npx -y skills add tsingyuai/growth-lab --skill research-seo-demand --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Research Seo Demand?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for Research Seo Demand
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/tsingyuai-research-seo-demand/badge)](https://www.skillsdirectory.com/skills/tsingyuai-research-seo-demand)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
SKILL.md
---
name: research-seo-demand
description: 完整调研并确定 SEO 机会:从产品理解、领域词表拆解、关键词矩阵扩展、Bing 真实热度验证、竞品发现、实时 SERP 抓取,到头部页面的搜索引擎层、用户层和质量层拆解。需要查热词、验证搜索量、判断搜索意图、研究竞品页面、寻找信息增益缺口或决定应该做什么 SEO 页面时使用。
---

# SEO 需求调研

先确认用户真的在搜索什么,再从热词下真实获得排名的页面学习页面形态与内容方法。不要从预想的竞品清单反推关键词;关键词由产品、用户任务、场景和真实搜索数据共同产生,竞品用于学习页面怎么做。

本 Collector 只产出需求、SERP 和竞品页面证据。页面设计与实现交给 `$create-seo-page`,上线后的效果观测交给 `$review-seo-performance`。

## 1. 从产品与用户任务开始

读取产品代码、文档、公开页面、当前转化路径、客户语言、站内搜索、支持记录和已有增长证据。先写清:

- 用户是谁,处在什么情境;
- 用户要完成什么任务;
- 产品通过什么真实动作解决任务;
- 调研的市场、语言和搜索引擎;
- 已有页面、已有关键词和不能重复建设的内容。

对无法从产品材料确认的用户问题和值得验证的价值保持开放,不要把产品功能列表直接改写成关键词列表。

## 2. 拆解领域词表并扩展关键词

七个方向逐一展开,每个方向单独成词表,保持不同具体度的词可以横向比较:

| 方向 | 组词方法 |
|---|---|
| 头部概念 | 领域核心名词、任务名、品类名 |
| 场景复合 | 场景 × 对象、文档、媒介或交付物 |
| 动作与结果 | 场景 × 生成、制作、转换、修复、改进、学习等动作 |
| 竞品词 | 通用品类产品与从 SERP 发现的垂类产品品牌词 |
| 工具词 | 功能点、格式、集成、转换和使用教程 |
| 资源词 | 模板、示例、清单、下载、规范和素材 |
| 问句词 | 怎么做、哪个好、为什么、价格、质量、风险、比较和失败问题 |

### 大面积展开

1. 先测头部概念词,判断哪些方向确实存在需求。
2. 对有效方向建立修饰词、场景、对象、动作和结果矩阵,用笛卡尔积扩展到 100 个以上候选词。
3. 与已有词表和历史 Memory 去重。
4. 用 Bing 或目标搜索引擎的搜索框联想、相关搜索、SERP 标题、社区讨论、产品评论和支持语言补充自然表达。
5. 大批量 N/A 不是无用结果;它能说明某一组精确表达在当前引擎和市场中缺乏可观测需求,但不能证明其他渠道没有需求。

### 竞品发现

竞品词不是只靠事先知道的品牌列表:

1. 先抓一轮场景词和邻接场景词的 SERP。
2. 聚合重复出现的域名和产品名。
3. 区分通用品类产品、垂类产品、内容平台和社区页面。
4. 把新发现的品牌名回填词表,再验证品牌词热度和搜索意图。

品牌词和术语存在多义时必须阅读实时 SERP。把混合意图拆开,不能直接引用混合流量作为产品需求。

## 3. 用 Bing Webmaster 验证真实热度

需要完整聚合结果时运行随仓库分发的脚本:

```bash
node collectors/research-seo-demand/scripts/fetch-keyword-stats.mjs \
  cn zh-CN <keywords-file>

printf '关键词一\n关键词二\n' | \
  node collectors/research-seo-demand/scripts/fetch-keyword-stats.mjs cn zh-CN -
```

脚本从 `BING_WEBMASTER_API_KEY` 读取凭据,输出按 `avgStrict` 降序的表格和 CSV。用 `BING_KEYWORD_OUT` 更改 CSV 文件名。

需要保存 Bing 原始周数据时运行通用 Client:

```bash
node collectors/bing-webmaster/bing-webmaster.mjs keyword-stats \
  --country <country> --language <language> \
  --input <keywords-file> --out <raw-output-file>
```

### 接口与字段

- `country` 使用 ISO 3166 两位小写,如 `cn`、`us`。
- `language` 大小写敏感,使用 `zh-CN`、`en-US`,不要写成 `zh-cn`。
- Bing 通常返回约 26 周的周数据。
- `Impressions` 是精确整串匹配的周展现量,是主要比较指标。中文复合词会被严重低估,因此它是需求地板,不是真实总需求。
- `BroadImpressions` 是广泛匹配。英文可辅助判断长尾规模;中文几乎不做可靠的包含聚合,不要用它估算中文长尾家族。
- `Date` 是每周数据的时间。
- 聚合脚本输出 `avgStrict`、`peakStrict`、`latestStrict`、`avgBroad` 和 `weeks`。

### 空响应与限流

- `{"d":[]}` 记为 `N/A`,绝不能写成 0。
- N/A 可能表示低于 Bing 报告阈值,也可能是静默限流;它不等于没人搜索。
- 单词空响应先短暂等待并重试一次。
- 每批最多查询 20 个词,批次之间至少冷却 30 秒。
- 超过 50 个词必须拆批;每批加入一个近期已知有量的控制词。
- 控制词也返回 N/A 时,整批结果作废,延长冷却后重跑。

### 读数原则

1. 只比较同源、同市场、同语言和相近具体度的数据;头部词和头部词比较,复合词和复合词比较。
2. Strict 是需求地板,不是真值;中文 Broad 不可信。
3. 用 `peakStrict / avgStrict` 判断季节性。比值明显升高时,从高峰倒排收录时间,提前发布。
4. 先判断意图,再看量。大数字与产品任务错配时,不应选择该词。
5. N/A 或低量问题词可以成为 FAQ、正文自然措辞、社区内容或 AI answer material,但不应只凭该数据做独立落地页。

## 4. 抓取实时 SERP

默认优先使用 Runtime 已连接的真实浏览器和当前市场、语言及登录态。需要批量、可重复的 JSON 证据时,运行仓库脚本:

```bash
BING_MARKET=zh-CN \
node collectors/research-seo-demand/scripts/scrape-bing-serp.mjs \
  "关键词一" "关键词二"

SERP_OUT=serp-round-2.json BING_MARKET=en-US \
node collectors/research-seo-demand/scripts/scrape-bing-serp.mjs \
  "keyword one" "keyword two"
```

脚本使用 Playwright 真浏览器内核,解码 Bing `/ck/a` 跳转链接,请求间隔 1.5 秒,并输出关键词 × 排名 × URL 的 JSON。

### 查询降级检查

Bing 可能对低信任会话静默改写查询,返回与完整查询不相关的结果。坏数据可能正常返回 HTTP 200,因此必须检查:

- 页面展示的查询是否仍是完整关键词;
- 标题和 URL 是否与完整查询相关;
- 脚本的二字词素相关性是否达到 30%;
- JSON 的 `__meta__.degraded` 是否包含该词。

标为 `DEGRADED` 的查询不得用于竞争结论。改用正常登录态浏览器重新检查;仍然降级时,记录 SERP 证据不可用,而不是猜测排名结构。

给证据分级:Bing Webmaster 的关键词展现量来自服务端报告;SERP 抓取只是当前会话和当前爬虫视角。两者冲突时不能用抓取失败推翻官方需求数据,必须转入正常登录态复核。

### 选择拆解对象

- 每个热词取前三到五个相关页面。
- 跨热词重复出现的页面优先。
- 商业产品页面、开源项目、课程、内容平台和社区回答都可以参考;是否有源码不影响参考价值。
- 不要求参考内容与我们的用户、产品类型、宣传目的和作者角色完全相同。先识别它为什么有效,再写清差异会怎样改变内容调性、证据和转化方式。
- 覆盖不同页面形态:工具、货架/目录、教程、对比、解决方案、社区回答和混合页。
- 被反爬拦截时使用已登录浏览器或让用户提供存档,不把验证页当成页面内容。知乎错误页、雷池 WAF、Cloudflare challenge 等都属于拦截;`render-pages.mjs` 在可见正文不足 500 字符时会标记“疑似被反爬拦截”,Agent 仍需查看截图确认。

## 5. 三层拆解头部页面

页面必须分成搜索引擎层、用户层和质量层分析,不能只看标题、摘要或排名 URL。

### 5a. 搜索引擎层

对普通公开页面可运行:

```bash
node collectors/research-seo-demand/scripts/analyze-page.mjs \
  <url1> <url2> ...
```

脚本自动探测常见页面编码,并提取 title、description、keywords、H1/H2/H3、正文体量、链接数、图片数和常见钩子词。结合浏览器继续检查:

| 维度 | 检查内容 |
|---|---|
| Title | 主词、同义变体、意图词、品牌和年份如何组织;记录实际组织公式 |
| Metadata | 是否自然覆盖词族,是否用数量、范围、更新日期或具体结果提高点击意愿,是否只是页面目录 |
| H 标签 | H1 是否聚焦;H2/H3 是否形成真实问题和长尾矩阵 |
| 内链 | 面包屑、栏目、相关页面和上下游任务如何连接 |
| 正文体量 | 文本、链接、图片与页面形态是否一致 |
| 技术信号 | canonical、结构化数据、更新时间和可抓取性 |

Meta description 不要追求固定字符数,也不要写“本文介绍、包含、并给出”的目录式句子。找出头部页面如何用一个信息量高的重点提高点击意愿。

### 5b. 用户层

需要可重复截图和正文时运行:

```bash
node collectors/research-seo-demand/scripts/render-pages.mjs \
  <output-directory> <url1> <url2> ...
```

脚本保存首屏、第二屏和可见正文。逐张查看,不只读取文本。

第一步,从页顶到页尾逐块描述,每个可见区块恰好写一句“这一块展示什么”。

第二步,从五个角度拆解:

| 角度 | 检查问题 |
|---|---|
| 阅读钩子 | 用户为什么停留;数字、免费、预览、社会证明或直接答案怎样出现 |
| 转化钩子 | 页面导向下载、试用、注册、购买、仓库、咨询或其他动作;路径有几条 |
| 信息密度 | 首屏有几个决策单元;页面是即看即选还是需要连续阅读 |
| 用户价值 | 用户不转化也能带走什么文件、方法、结论、比较或工具 |
| 调性 | 目录站、SaaS、开发者工具、社区、课程或媒体内容如何建立信任 |

### 5c. 质量层

复用同一批 HTML、截图和正文,不要重新抓取。检查:

| 维度 | 检查内容 |
|---|---|
| 信息增益 | 相比同一 SERP 的其他页面,它有什么独有内容 |
| 数据密度 | 有多少具体数字、原始数据、示例、测试和可验证结果 |
| 引用行为 | 是否连接权威来源、一手材料和原始出处 |
| 实体信号 | 作者、团队、机构、更新时间和可核验身份是否存在 |
| 负面信号 | 首屏广告、堆词、批量同构薄页、无依据主张和重复转化 |

输出“信息增益缺口清单”,至少按以下三类整理:

- 怎么做:缺少的具体步骤、示例、反例和可复制材料;
- 质量标准:缺少的评判标准、rubric、阈值和强弱对比;
- 好的执行是什么样:缺少的参数、风格选择、限制和避坑清单。

## 6. 选择 SEO 机会

只有同时满足以下证据才推荐页面:

1. 存在可观察的需求;
2. 搜索意图清楚且相对稳定;
3. 产品能够真实满足用户任务;
4. 头部结果仍存在信息、工具或体验缺口;
5. 页面形态有明确的 SERP 依据;
6. 从搜索访问到产品结果存在可信路径。

不得只根据搜索量、摘要或排名 URL 调用 `$create-seo-page`。每个候选词都必须完成前三到五个相关页面的三层拆解。

## 7. 调研产出

按任务选择 Markdown、CSV、JSON 或 HTML,至少包含:

- 产品、用户、任务、市场和语言;
- 完整候选词表及生成方法;
- Bing 原始数据和聚合数据;
- N/A、控制词、批次与降级标记;
- 候选词族、意图、季节性和产品匹配;
- 每个候选词前三到五个相关页面;
- 每个页面的搜索引擎层、逐块描述、五类用户层分析和质量层分析;
- 跨页面的信息增益缺口;
- 推荐机会、推荐页面形态、风险与证据。

把调研结果写入调用 Model 的 Memory。原始导出、截图、正文和研究报告都是运行产物,不进入 Skill,也不提交到仓库。

Files in this skill

  • SKILL.md11.9 KB
  • agents/openai.yaml251 B
  • scripts/analyze-page.mjs3 KB
  • scripts/fetch-keyword-stats.mjs4.7 KB
  • scripts/package-lock.json1.6 KB
  • scripts/package.json140 B
  • scripts/render-pages.mjs2.5 KB
  • scripts/scrape-bing-serp.mjs5 KB

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments

Loading comments…