git:20260409.476c559 to git:20260417.fe89a6b

225 added, 118 removed. Audit A to A.

---
name: site-keyword-research
- description: 整站关键词研究与挖掘。输入一个网站域名或URL,自动完成:首页主题分析 → 30+长尾词初筛(含来源标注)→ 关键词分层 → 10词SERP详细分析 → 3词定方向,最终输出完整报告到飞书文档。触发条件:用户说"分析网站关键词"、"关键词研究"、"keyword research"、"挖掘某网站的关键词"、或提供一个URL说"分析这个网站的SEO关键词机会"。
+ description: |
+ 整站关键词研究与深度挖掘。输入一个网站域名或URL,自动完成:首页主题分析 → 递归式关键词树扩展(Google联想词多级分叉)→ 去重合并 → 关键词分层 → 10词SERP详细分析 → 3词定方向,最终输出完整 Markdown 报告。
+
+ 触发条件:用户说"分析网站关键词"、"关键词研究"、"keyword research"、"挖掘某网站的关键词"、或提供一个URL说"分析这个网站的SEO关键词机会"。
---
# Site Keyword Research Skill
- 输入一个网站域名,输出完整的关键词研究与竞争度分析报告。
+ 输入一个网站域名,输出完整的关键词研究与竞争度分析报告。**核心改进:递归式关键词树扩展——不是一次扩展就停,而是持续分叉挖掘,直到词库收敛。**
---
- ## 核心工作流(三大阶段)
+ ## 核心工作流
```
- 阶段一:海量搜罗(30+词)——每个词注明来源
- → Google PASF 推荐词(真实搜索数据)
- → Google Related Searches 联想词
- → AI 主题扩展词(根据站点主题生成)
+ 阶段一:递归关键词树扩展(不限次数,直到词库收敛)
+ → 种子词 → Google搜索 → 提取 Related Searches + PASF + 问题词
+ → 每个新词 → 再搜索 → 再提取 → 持续分叉
+ → 直到:不再发现新词 或 词库达到上限(100个)
- 阶段二:分层 + 详析(10词)
- → 分层筛选,选出10个词做SERP详细分析
+ 阶段二:去重合并 → 分层筛选(20词)
+ → 去重、去无关词
+ → 选20个最有价值的词进详细分析
- 阶段三:定方向(3词)
+ 阶段三:10词SERP详细分析 → 3词定方向
+ → 竞争度打分
→ 给出最重要的3个词 + 具体操作建议
```
**关键词来源标注规范(强制):**
| 标签 | 含义 | 可信度 |
|------|------|-------|
| `[PASF]` | 来自 Google「People Also Search For」的真实搜索推荐 | ⭐⭐⭐⭐⭐ |
| `[RS]` | 来自 Google Related Searches 联想词 | ⭐⭐⭐⭐ |
+ | `[Q]` | 来自 Google 搜索结果中的「People Also Ask」问题 | ⭐⭐⭐⭐ |
| `[AI-主题]` | AI 根据站点主题扩展生成,需人工验证 | ⭐⭐⭐ |
- | `[竞品]` | 从竞品内容分析提取 | ⭐⭐⭐⭐ |
+ | `[竞品]` | 从 SERP 结果中竞品内容提取 | ⭐⭐⭐⭐ |
---
- ## 输入解析
+ ## 输入参数
- 接受三种格式:
- - `https://example.com` → 提取 domain
+ 执行 skill 时需要提供以下参数:
+
+ | 参数 | 说明 | 默认值 |
+ |------|------|-------|
+ | `domain` | 要分析的网站域名(如 `example.com`) | 必填,从用户输入提取 |
+ | `output_dir` | 报告输出目录 | 可选,默认为当前目录 |
+
+ **域名格式支持:**
+ - `https://example.com` → 自动提取 domain
- `example.com` → 直接使用
- `www.example.com` → 提取 domain
---
- ## 第一阶段:海量搜罗(30+词)
+ ## 第一阶段:递归关键词树扩展(核心改进)
### 1.1 站点主题分析
使用 `web_fetch` 抓取首页(maxChars: 2000),识别:
- 站点类型(产品工具/内容媒体/电商/SAAS/论坛)
- - 核心主题(2-4个主题词)
+ - 核心主题(2-4个主题词,作为种子词根)
- 目标用户群体
- 主要功能/服务
同时抓取首页 HTML 标题、meta description。
- ### 1.2 种子词扩展(目标:30+词)
+ ### 1.2 种子词确定
- 围绕核心主题,按以下四个来源分别收集,**每个词必须标注来源**:
+ 根据站点分析,确定 3-5 个种子关键词(作为树的根节点):
+ - 核心产品/服务词
+ - 核心场景/用途词
+ - 核心用户需求词
- #### 来源 1:Google PASF(最重要)[PASF]
+ ### 1.3 递归扩展算法(关键词树构建)
- 用 `browser` 打开 Google,搜索每个核心主题词,从 "People Also Search For" 区域提取真实推荐词。
+ **这是本 skill 的核心改进——不是一次扩展就停,而是持续分叉。**
- 这些词是 Google 基于真实用户行为推荐的,数据质量最高。
+ ```
+ 扩展规则:
+ 每次取队首关键词出列 → Google搜索 → 提取三类词 → 入库 → 新词继续入队
+ 直到队列空(词库收敛)或达到上限(100个唯一词)
+ ```
- #### 来源 2:Google Related Searches [RS]
+ **搜索格式:**
+ ```
+ https://www.google.com/search?q=<URL编码关键词>&hl=en
+ ```
- 从搜索结果页底部「Related Searches」区域提取联想词。
+ **反爬策略(必须执行):**
+ 每次打开搜索页后,等待 **3-5 秒** 再执行 snapshot,给 JS 渲染足够时间:
+ ```javascript
+ browser(action=open, url="https://www.google.com/search?q=...&hl=en")
+ browser(action=wait, timeMs=4000) // 等待 JS 渲染
+ browser(action=snapshot, compact=true)
+ ```
- 这些词反映用户的关联思维路径。
+ 连续搜索时,两次搜索之间随机等待 **2-4 秒**,避免固定频率触发反爬:
+ ```javascript
+ browser(action=wait, timeMs=2000 + Math.random() * 2000)
+ ```
- #### 来源 3:AI 主题扩展 [AI-主题]
+ 如果遇到 CAPTCHA 验证页面:
+ 1. 等待 5 秒后刷新页面重试
+ 2. 最多重试 2 次
+ 3. 如果仍然失败,记录「CAPTCHA 拦截」标注,改用 `web_search` 补充数据,并在报告中说明 SERP 数据为推算值
- 基于站点核心主题,用以下扩展模式生成候选词:
+ **每次搜索必须提取以下内容:**
- **产品词扩展:**
- - `{核心主题} + tool / service / software / platform`
- - `{核心主题} + free / cheap / affordable`
- - `{核心主题} + generator / creator / maker`
- - `{核心主题} + online / tool`
+ #### A. Related Searches(RS)- 联想词
+ 从搜索结果页底部「Related Searches」区域提取所有联想词,每个标注 `[RS]`。
- **问题词扩展:**
- - `how to {核心主题}`
- - `{核心主题} + tutorial / guide / for beginners`
- - `{核心主题} + questions / problems / issues`
- - `what is {核心主题}`
- - `why {核心主题}`
+ #### B. People Also Search For(PASF)- 推荐词
+ 从 SERP 中「People Also Search For」区域提取推荐词,每个标注 `[PASF]`。
- **比较词扩展:**
- - `best {核心主题}`
- - `{核心主题} + alternatives / vs / comparison`
- - `{核心主题} + review / opinion`
+ #### C. People Also Ask(PAA)- 问题词
+ 从 SERP 中「People Also Ask」区域提取问题,每个标注 `[Q]`。
- **修饰词变体:**
- - `safe {核心主题}` / `{核心主题} + protection`
- - `{核心主题} + for beginners` / `{核心主题} + 2026`
+ **提取方法:**
+ - 用 `browser(action=open, url="...")` 打开搜索页
+ - `browser(action=snapshot, compact=true)` 获取 DOM
+ - 搜索 `Related Searches`、`People Also Search For`、`People Also Ask` 区块
+ - 每个区块内的词/问题逐一提取
- #### 来源 4:竞品内容分析 [竞品]
+ **递归扩展流程图:**
- 如果已有竞品数据(如从 SERP 结果看到竞品在打什么词),提取并标注来源域名。
+ ```
+ 种子词队列:[seed1, seed2, seed3]
+ 已收集词库:[]
- ---
+ 第1轮:
+ 出列 seed1 → 搜索 → 得到 [rs1, rs2, pasf1, q1]
+ 入库:[rs1[RS], rs2[RS], pas1[PASF], q1[Q]]
+ 新词入队:[rs1, rs2, pasf1, q1, seed2, seed3]
- ### 1.3 候选词收集要求
+ 第2轮:
+ 出列 rs1 → 搜索 → 得到 [rs1a, pasf1a, q1a]
+ 入库:[rs1a[RS], pasf1a[PASF], q1a[Q]]
+ 新词入队:[rs2, pasf1, q1, seed2, seed3, rs1a, pasf1a, q1a]
- - 最终候选词库 ≥ 30个
- - 每个词记录格式:
+ 第3轮:
+ 出列 rs2 → 搜索 → ...
+ ...持续直到队列空或达到100词上限
+ ```
+ ### 1.4 去重与过滤规则
+
+ 每次入库前执行去重:
+
+ **必须去重:**
+ - 完全相同的词(大小写不敏感)
+ - 复数形式与原形视为同义词(保留一个)
+ - 与站点主题完全无关的词
+
+ **词库上限:**
+ - 目标:收集 **80-100 个唯一关键词**
+ - 实际执行中如果达到 100 个,停止扩展,进入分层
+ - 如果队列提前耗尽(词库收敛),也停止扩展
+
+ ### 1.5 AI 辅助扩展(补充手段,不是主力)
+
+ 在递归扩展完成后,如果词库不足 50 个,用 AI 补充扩展:
+
+ 基于已收集的 `[PASF]` 和 `[RS]` 词,识别词根模式,生成更多变体:
+
+ **模式举例:**
+ - `{词根} + generator / maker / creator`
+ - `{词根} + free / online / AI`
+ - `how to {词根} / {词根} tutorial / {词根} for beginners`
+ - `best {词根} / {词根} alternatives / {词根} vs`
+
+ 每个生成的词标注 `[AI-主题]`,需入库参与后续分层。
+
+ ### 1.6 候选词收集结果记录
+
+ 最终词库格式(每个词必须标注来源和深度):
+
```
- {关键词} [来源标签]
- 例如:
- safe SEO backlinks [PASF]
- SEO penalty protection [RS]
- how to build natural backlinks [AI-主题]
+ {关键词} [来源标签|扩展深度]
+ 例:
+ oracle card generator [RS|depth=1] — 从种子词第1轮扩展
+ emotional tarot reading [PASF|depth=2] — 从第2轮词扩展而来
+ how to use oracle cards [Q|depth=1] — 从种子词第1轮扩展
+ ai oracle card generator [AI-主题] — AI补充生成
```
+ **扩展深度说明:**
+ - `depth=1`:直接从种子词一次扩展而来,最相关
+ - `depth=2`:从 depth=1 的词再扩展,相关性稍弱但覆盖更广
+ - `depth=3+`:多级扩展,可能发现意外的低竞争词
+
---
- ## 第二阶段:关键词分层 + 10词详析
+ ## 第二阶段:分层筛选(20词)
- ### 2.1 关键词分层(四层模型)
+ ### 2.1 关键词相关性初筛
- | 层级 | 定义 | 数量 | 策略 |
- |------|------|------|------|
- | **核心词** | 高搜索量,主赛道 | 1-2个 | 长期目标,品牌期做 |
+ **保留标准(同时满足):**
+ - 与站点核心主题高度相关
+ - 搜索意图明确
+ - 不涉及品牌词(除非该品牌是对手)
+
+ **剔除标准(满足任一即剔除):**
+ - 完全无关领域(如医疗、法律等专业领域)
+ - 过于泛泛
+ - 无实际搜索信号(Google 没有推荐)
+
+ ### 2.2 分层(四层模型)
+
+ | 层级 | 定义 | 目标数量 | 策略 |
+ |------|------|---------|------|
+ | **核心词** | 高搜索量,主赛道 | 1-3个 | 品牌期/长期目标 |
| **中尾词** | 中等搜索量,明确意图 | 3-5个 | 3-6个月内容建设 |
- | **长尾词** | 低搜索量,精准需求 | 10-15个 | 立即行动,快速见效 |
- | **问题词** | 问句形式,信息需求 | 5-10个 | 博客内容,覆盖漏斗顶端 |
+ | **长尾词** | 低搜索量,精准需求 | 8-12个 | 立即行动,快速见效 |
+ | **问题词** | 问句形式,信息需求 | 5-8个 | 博客内容,覆盖漏斗顶端 |
- ### 2.2 筛选标准(30词 → 10词)
+ ### 2.3 最终20词筛选标准
+ 从词库中选 20 个进入 SERP 分析:
+
**优先保留:**
- - 搜索意图明确(Transactional / Commercial Investigation)
- - 竞品内容薄弱的词
- - 包含高意图修饰词(free、best、generator、alternative)
- - 与站点主题高度相关
- - 有 `[PASF]` 或 `[RS]` 来源的词优先
+ 1. 有 `[PASF]` 或 `[RS]` 来源(Google 真实推荐)
+ 2. 包含高意图修饰词(free、best、generator、alternative、how to)
+ 3. 搜索意图是 Transactional 或 Commercial Investigation
+ 4. 扩展深度浅的词优先(depth=1 > depth=2 > depth=3+)
- **优先剔除:**
- - 过于泛的词
- - 与站点无关的词
- - 无搜索信号的词
+ ---
- **最终选10个词**,覆盖各层级,确保多样性。
+ ## 第三阶段:10词SERP详细分析
- ### 2.3 SERP 详细分析(10词)
+ ### 3.1 SERP 分析执行
- 对每个入选词,调用 `browser` 打开 Google:
+ 对筛选出的 20 个词,快速扫描 SERP,挑选 10 个最有商业价值的做详细分析。
+ **快速扫描维度:**
+ - 广告主密度(0/少/多)
+ - 现有结果类型(工具/博客/论坛/目录)
+ - Featured Snippet 情况
+
+ **优先分析:**
+ - Transactional 意图词(商业价值最高)
+ - 有 `[PASF]` 来源的词(Google 推荐=真实需求)
+ - 扩展深度浅的词
+
+ ### 3.2 详细分析维度
+
+ 对每个入选词,打开 SERP:
+
```
- https://www.google.com/search?q=<编码关键词>&hl=en
+ https://www.google.com/search?q=<URL编码关键词>&hl=en
```
用 `snapshot compact=true` 抓取,记录:
| 分析维度 | 记录内容 |
|---------|---------|
| 广告主数量 | 0 / 1-3 / 4-6 / 6+ |
- | 广告主类型 | (列出主要广告主) |
+ | 广告主类型 | 列出主要广告主 |
| Featured Snippet | 有 / 无 |
| 视频结果 | 有 / 无(数量) |
| 前10域名 + 类型 | 工具/博客/目录/论坛/官方 |
| 前10内容深度 | 薄页(<200字) / 中等 / 深度(1000+字) |
| 高权重站数量 | Wikipedia/Quora/Amazon/大型媒体 |
- | PASF 推荐词 | 列出Google推荐的关联搜索词(标注[PASF]) |
+ | PASF 推荐词 | 列出 Google 推荐的关联搜索词 |
- **竞争度打分(1-5分,分低=机会大):**
+ ### 3.3 竞争度打分
| 维度 | 1分 | 2分 | 3分 | 4分 | 5分 |
|------|-----|-----|-----|-----|-----|
| 广告主 | 0 | 1-2 | 3-5 | 6-8 | 8个以上 |
| 高权重站 | 0 | 1 | 2-3 | 4-5 | 5个以上 |
| Featured Snippet | 无 | — | 1个 | — | 2个以上 |
| 视频结果 | 无 | — | 1-2个 | — | 3个以上 |
| 内容深度 | 全薄页 | 多数薄 | 混合 | 多数深 | 全深度 |
**总分 5-10 → 🟢 低竞争(立即行动)**
**总分 11-17 → 🟡 中竞争(可切入)**
**总分 18-25 → 🔴 高竞争(观望/迂回)**
---
- ## 第三阶段:定方向(最重要3词)
+ ## 第四阶段:Top 3 词定方向
- ### 3.1 最终3词选择
+ ### 4.1 选词标准
- 综合以下标准,选出最重要的3个词:
+ 综合以下选出最重要的 3 个词:
1. **竞争度低**(分数 ≤ 10)
- 2. **与站点主题高度匹配**
- 3. **搜索意图清晰且可转化**
- 4. **现有结果内容薄弱**
+ 2. **Transaction 意图强**(商业转化价值高)
+ 3. **Google 推荐词优先**([PASF] 来源)
+ 4. **扩展深度浅**(depth=1 或 depth=2)
- ### 3.2 关键词策略报告
+ ### 4.2 策略报告格式
对每个 Top 3 词,给出:
```
- 关键词:{词} [来源标签]
+ 关键词:{词} [来源标签|扩展深度]
分层:{核心词/中尾词/长尾词/问题词}
竞争度:{分数}分 / {低中高三档}
机会描述:
- {一句话说明为什么这个机会现在存在}
+ {一句话说明为什么这个机会现在存在,以及为什么 Google 推荐这个词}
推荐动作(具体到操作):
- {明确告诉用户第一步做什么、第二步做什么}
+ - 第一步:做什么
+ - 第二步:做什么
+ - 第三步(如需要):做什么
落地页建议:
- 标题:{建议标题}
- 核心卖点:{3个核心卖点}
- - CTA:{建议的Call to Action}
- - 覆盖长尾:{建议覆盖的PASF长尾词}
+ - CTA:{建议的 Call to Action}
+ - 覆盖长尾:{建议同时覆盖的关联长尾词}
外链机会:
{对应的外链建设策略}
```
---
## 输出规范
- ### 默认行为:输出到飞书文档
+ ### Markdown 报告(主要内容输出到这里)
- **报告超过 1500 字时,自动输出到飞书文档,不在聊天里刷屏。**
+ 报告自动保存到文件,文件名格式:
+ ```
+ {output_dir}/{domain}-keyword-research-{YYYY-MM-DD}.md
+ ```
- 创建飞书文档流程:
- 1. `feishu_doc(action=create, title="[站点] 关键词研究报告 — YYYY-MM-DD", owner_open_id=sender_open_id)`
- 2. `feishu_doc(action=write, doc_token=xxx, content=完整Markdown报告)` — 表格用飞书表格块而非Markdown表格
- 3. 回复里只给摘要 + 链接
+ 如果 `output_dir` 未指定,默认保存到执行目录。
- ### 飞书文档结构
+ **报告结构:**
```
- 标题:[站点域名] 关键词研究报告 — YYYY-MM-DD
+ # {域名} 关键词研究报告 — YYYY-MM-DD
- 第一章:站点定位分析
- 第二章:关键词分层矩阵(含来源标注)
- 第三章:10词SERP详细分析
- 第四章:综合机会矩阵
- 第五章:Top 3 关键词定方向(核心章节)
- 第六章:外链策略建议
- 第七章:数据说明
+ ## 第一章:站点定位分析
+ ## 第二章:递归关键词树扩展记录
+ ## 第三章:完整候选词库(全部词,含来源+扩展深度)
+ ## 第四章:关键词分层矩阵(20词)
+ ## 第五章:10词SERP详细分析
+ ## 第六章:综合机会矩阵(20词横向对比)
+ ## 第七章:Top 3 关键词定方向
+ ## 第八章:外链策略建议
+ ## 第九章:数据说明与后续建议
```
- ### 聊天回复内容
-
- 当报告输出到飞书后,聊天里只回复:
+ ### 聊天回复(摘要形式)
```
✅ 关键词研究报告已生成
**站点:** {domain}
+ **递归扩展深度:** {N}轮
**候选词总数:** {N}个
**分析词数:** {M}个
**竞争度概况:** 🟢低竞{N1}个 / 🟡中竞{N2}个 / 🔴高竞{N3}个
- 📄 完整报告:{飞书文档链接}
+ 📄 完整报告:{filename}
🥇 Top 3 关键词:
1. {词1} — {一句话机会描述}
2. {词2} — {一句话机会描述}
3. {词3} — {一句话机会描述}
+
+ 💡 低竞争词发现:{1-2个特别值得关注的低竞争词简述}
```
---
## 关键原则
- - **严禁跳过30词阶段**:没有足够样本无法做分层判断
- - **每个词必须标注来源**:不标注来源的词视为 [AI-主题] 类别
- - **10词分析必须打分**:不打分就无法横向比较优先级
- - **3词必须有具体操作建议**:不能只给词不给动作
- - **超过1500字输出到飞书**:不在聊天里刷屏
- - **PASF 词必须提取**:Google推荐的关联搜索是免费的高价值洞察
+ - **递归扩展必须执行到底**:不允许只扩一轮就停,必须持续到词库收敛或达到上限
+ - **每个词必须标注来源和扩展深度**:不标注的词视为 `[AI-主题]`
+ - **PASF 词优先分析**:Google 推荐 = 真实用户需求,最有价值的信号
+ - **20词 → 10词筛选**:20词进分层,10词做详细 SERP 分析,不要跳过
+ - **Top 3 必须有具体操作建议**:不能只给词不给动作
+ - **扩展深度浅的词优先**:depth=1 最相关,depth=3+ 可能发现意外机会但可信度稍低
---
## 错误处理
| 场景 | 处理 |
|------|------|
| web_fetch 403/404 | 跳过,用已知主题信息继续分析 |
| 站点是全新站(DA≈0)| 标注"新站,竞品内容质量差距是核心机会指标" |
- | Google 弹出验证 | 改用 web_search 补充,报告中标注数据来源 |
- | 候选词不足30个 | 降低门槛至20个,说明原因,继续分析 |
+ | Google 弹出验证 | 必须用 browser retry(等5秒刷新 / 最多重试2次),禁止降级到 web_search;如果 browser 完全失败,标注「搜索数据获取失败,关键词来源基于官网分析+AI扩展,可信度降低」,不得使用 AI 猜测真实搜索量数据 |
+ | web_search 全部失败 | 标注「搜索数据获取失败,关键词来源基于官网分析+AI扩展,可信度降低」,不得使用 AI 猜测真实搜索量数据;报告中必须明确标注每个关键词的来源标签,无 [PASF]/[RS] 标签的词单独列出 |
+ | 队列提前耗尽(词库收敛) | 记录收敛轮次,进入分层分析 |
+ | SERP 无法抓取(地理位置限制)| 标注"竞争度为推算值,建议在美国节点复查 PASF 数据" |
---
## 参考文件
- 完整报告模板:`references/output-template.md`
- 单关键词竞争度分析:`keyword-competition-analysis/SKILL.md`