# Yxz Hot Word Miner

> 基于"收集→验证"方法论挖掘值得建站的游戏热词，使用 playwright-extension 本地浏览器实时抓取数据。当用户需要为游戏站选词、挖掘游戏热词、验证热词热度与竞争度时调用。

- Skill: `byte886/yxz-hot-word-miner` (Agent Skill)
- Install (CLI): `npx skillmds@latest add byte886/yxz-hot-word-miner`
- Raw SKILL.md: https://api.skillmd.com/api/skills/byte886/yxz-hot-word-miner/raw
- Safety review: pending
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: Docs & Writing
- Author: byte886 (https://skillmd.com/u/byte886)
- Updated: 2026-09-21
- Page: https://skillmd.com/skills/byte886/yxz-hot-word-miner

---


# 游戏热词挖掘器

## 核心原则

**以 Google 搜索热度为准。** 社媒火不等于 Google 搜火——不能只看 TikTok、X、YouTube、Discord 的热闹程度。

整体思路：**收集 → 验证**。先从 Steam、社区里找到 3-5 个候选词，再判断哪个值得做，最后用最小成本确认判断是对的。不要找一个就停，不要"我觉得能火"就开干。

## 工具与数据获取方式

**所有数据均通过本地浏览器实时抓取，使用 `mcp_playwright-extension` MCP 服务**（server_name = `mcp_playwright-extension`），通过 `run_mcp` 调用。禁止使用 WebFetch/WebSearch 替代浏览器抓取，因为 Google Trends、similarweb、Google 搜索结果等均依赖 JS 渲染或反爬，本地浏览器才能拿到真实数据。

**核心工具调用规范**：

```
# 导航到 URL
run_mcp(server_name="mcp_playwright-extension", tool_name="browser_navigate",
        args={"url": "https://..."})

# 抓取页面可访问性快照（用于交互/识别元素，推荐）
run_mcp(server_name="mcp_playwright-extension", tool_name="browser_snapshot",
        args={})  # 可选: depth, target, filename

# 在页面执行 JS 提取数据（高效提取榜单/表格/文本）
run_mcp(server_name="mcp_playwright-extension", tool_name="browser_evaluate",
        args={"function": "() => { /* 提取逻辑 */ return data; }"})

# 点击元素（target 来自 snapshot 的元素引用）
run_mcp(server_name="mcp_playwright-extension", tool_name="browser_click",
        args={"element": "搜索按钮", "target": "..."})

# 填表单（如搜索框）
run_mcp(server_name="mcp_playwright-extension", tool_name="browser_fill_form",
        args={"fields": [{"name":"搜索词","target":"...","type":"textbox","value":"gameplay trailer"}]})

# 等待页面加载/文本出现
run_mcp(server_name="mcp_playwright-extension", tool_name="browser_wait_for",
        args={"text": "某文本"})  # 或 {"time": 3}

# 截图（用于趋势曲线等需要肉眼判断的场景，可让用户辅助确认）
run_mcp(server_name="mcp_playwright-extension", tool_name="browser_take_screenshot",
        args={"type": "png", "scale": "css", "fullPage": false})

# 抓取网络请求（用于抓 XHR/API 数据）
run_mcp(server_name="mcp_playwright-extension", tool_name="browser_network_requests",
        args={"static": false, "filter": "/api/.*"})
```

**抓取流程通用模式**：`navigate → wait_for → snapshot/evaluate → （必要时）click/fill_form → evaluate`

**关键技巧**：
- 优先用 `browser_evaluate` 执行 JS 直接提取结构化数据（如榜单表格、搜索结果域名列表），比 snapshot 更精炼
- 用 `browser_snapshot` 拿到元素引用（ref），再用 `browser_click` / `browser_fill_form` 交互
- Google Trends 曲线、similarweb KD 等需要肉眼判断的场景，用 `browser_take_screenshot` 截图
- **Google Trends「相关查询」支持点击下载按钮导出 CSV**：用 `browser_click` 点击下载按钮，读取 `~/Downloads/relatedQueries.csv`（重复下载会带 `(1)`、`(2)` 后缀），可拿到完整 TOP 25 + RISING 25 相关查询，比 `body.innerText` 更结构化
- 抓 API 数据时，先 `browser_navigate` 触发请求，再 `browser_network_requests` 过滤

---

## 执行流程

### 第一步：找出 3-5 个候选游戏词

新手最容易卡在"打开 Google 不知道搜什么"。解决方法：去榜单里捞，那里全是正在热的游戏，挑就行。

**来源一：Steam 等咨询平台的新增榜 / 热门榜**

挑词标准：**新上线、且玩的人数持续上升**。

⚠️ **注意**：SteamDB 的 `/charts/`、`/topsellers/`、`/discover` 等子页会被 Cloudflare 拦截（403）。**改用主页 `https://steamdb.info/`**，主页会直接列出当前热门游戏（首页 `Popular Releases` 区块、顶部推荐游戏）。IGDB 同理用主页 `https://www.igdb.com/`。

抓取 SteamDB 主页热门游戏（示例调用）：

```
# 1. 导航到 SteamDB 主页（不要用 /charts/ 子页，会被 Cloudflare 拦）
run_mcp("mcp_playwright-extension", "browser_navigate",
        args={"url": "https://steamdb.info/"})

# 2. 等待主页加载
run_mcp("mcp_playwright-extension", "browser_wait_for", args={"text": "Steam"})

# 3. 提取主页所有游戏链接（含 Popular Releases、顶部推荐等区块）
run_mcp("mcp_playwright-extension", "browser_evaluate", args={
  "function": "() => { const links = Array.from(document.querySelectorAll('a[href*=\"/app/\"]')); return links.map(a => ({ name: a.innerText.trim(), href: a.href })).filter(x => x.name && x.name.length > 2).slice(0, 30); }"
})
```

IGDB 主页同理：`browser_navigate` 到 `https://www.igdb.com/`，用 `browser_evaluate` 提取游戏卡片标题。

**备选方案：剪藏文件**（实测有效）：若 SteamDB/IGDB 主页也被 Cloudflare 拦截，请用户提供主页的剪藏文件（Markdown 格式，浏览器扩展如 SingleFile/MarkDownload 可生成），然后用 `Read` 工具读取剪藏文件，手动提取榜单数据。剪藏文件通常包含完整的表格结构（如 `Most Played Games`、`Trending Games`、`Popular Releases`、`Popular right now` 等区块）。

**交叉验证多个榜单**（实测有效）：优先选**同时在 SteamDB Trending + Popular Releases + IGDB Popular right now 多个榜单出现**的游戏词——这种"多榜单交叉出现"的词质量更高（实测案例：Mistfall Hunter 同时出现在 3 个榜单，最终验证为最佳热词）。

**提取 Trends 数据的实测有效方式**：直接用 `browser_evaluate` 提取 `document.body.innerText.substring(0, 3000)`，返回的文本包含平均值、每日数据点（`日期\t值1\t值2` 格式）、相关查询、区域 Top 5——比解析 SVG circle 点位更可靠。

**来源二：YouTube 社媒游戏预售视频（第一步必做步骤，不可跳过）**

> ⚠️ **本步骤为必做项**：每次挖掘都必须实际打开 YouTube 跑一次 `gameplay trailer` 搜索，提取近期上传的 gameplay 视频标题，作为候选词源之一。不允许以"已有 SteamDB 候选池"为由跳过——YouTube 能发现 SteamDB/IGDB 榜单尚未收录的、刚公布/刚发售的陡升新词。

```
# 1. 导航到 YouTube 搜索 gameplay trailer，按上传时间排序
run_mcp("mcp_playwright-extension", "browser_navigate", args={
  "url": "https://www.youtube.com/results?search_query=gameplay+trailer&sp=CAI%253D"  # sp=CAI 按上传日期
})

# 2. 等待结果加载
run_mcp("mcp_playwright-extension", "browser_wait_for", args={"time": 3})

# 3. 提取视频标题、播放量、发布时间
run_mcp("mcp_playwright-extension", "browser_evaluate", args={
  "function": "() => Array.from(document.querySelectorAll('ytd-video-renderer')).slice(0,20).map(v => ({ title: v.querySelector('#video-title')?.innerText, views: v.querySelector('#metadata-line span')?.innerText, time: v.querySelectorAll('#metadata-line span')[1]?.innerText }))"
})
```

**输出**：列出从 YouTube 提取的候选游戏词（视频标题里的游戏名 + 上传时间 + 播放量），并**立即与 SteamDB 主页 Popular Releases 交叉验证**——仅保留「已在 SteamDB 出现 / 已发售或临近发售」的词作为候选（预告片≠已上线游戏，见踩坑 #6，但本步骤仍必须执行，不能因该 caveat 而跳过）。

**来源三：Google Trends 相关查询 CSV（候选池扩展 / 长尾发现）**

当已有 1-2 个候选词后，可以用它们去 Google Trends 查相关查询并下载 CSV，从"搜索量上升"区块发现新的同类游戏或长尾需求词，进一步扩大候选池。

**操作流程**：
1. 用来源一 / 来源二得到 1-2 个初始候选词
2. 按验证 1 的方式打开 Google Trends（候选词 vs GPTs）
3. 点击"相关查询"卡片下载按钮，导出 CSV（见验证 1 的"通过下载按钮获取完整相关查询 CSV"小节）
4. 读取 CSV，重点看 `RISING` 区块：
   - 出现新的游戏名（如 `signalis`）→ 作为下一轮候选词
   - 出现高热度长尾词（如 `big walk trophy guide`、`big walk puzzles`）→ 记为内容切入点
   - 出现 `hacked`/`malware`/`virus`/`leak`/`crack`/`free download`/`freetp` → 标记风险或淘汰

**定位**：来源三不替代来源一和来源二，而是"用已有候选词反向发现更多候选词"，尤其适合在 SteamDB/YouTube 候选池枯竭时使用。

---

### 第二步：判断每个候选词能不能做

对每个候选词依次执行 3 项验证。

**KD 数据获取优先级（重要，2026-08-09 更新）**：自本次起，KD 查询优先级调整为：
1. **SEMrush 关键词概览（首选）**——中文版 `zh.semrush.com`，**需登录 Semrush 账号**（playwright-extension 控制的浏览器若已登录则可直接用；未登录会跳转登录页或数据受限）。首屏即返回 KD、搜索量、意图、CPC、细分词、问题型长尾词、聚类群组，数据最全（见验证 2）
2. **Ubersuggest（验证）**——无需登录，返回主词 + 22 个细分词的 Volume/SD/CPC，与 SEMrush KD 交叉验证（见验证 2b）
3. **SimilarWeb Pro（仅在可用时使用）**——需登录 Pro 账号且账号可用时才查，返回 28 天搜索量、KD、细分词、领先者域名；不可用则跳过，不作为必备环节（见验证 2c）

**不再使用「Google 首页竞品反推 KD」作为 KD 降级方案**——Google 首页竞争分析仍作为独立维度（"首页竞争难度"）必查（见验证 3），但不用于反推 KD 数值。

**核心原则**：KD 必须有 SEMrush + Ubersuggest 两个数据源交叉验证，不能只看单一工具下结论。**⚠️ 三家 KD 数值体系不同**：SEMrush 是百分比（如 51%）、SimilarWeb 是 0-100 整数、Ubersuggest SD 是 0-100 整数，**不能直接横向比较绝对值**，只能看各自所处的难度区间（低/中/高）是否一致。

#### 验证 1：Google Trends 验证热度趋势

Google Trends 只显示 0-100 的相对热度，不直接显示真实搜索量。**必须用对比词估算**——用 `GPTs` 作为基准词（GPTs 一天大概 3000-5000 搜索量）。

对比判断：
- 游戏词 ≈ GPTs 的 1/3 → 有一定搜索量，但不算大
- 游戏词 ≈ GPTs → 热度不错
- 游戏词 >> GPTs → 强趋势词，重点关注

> ⚠️ **硬规则判读口径（必读）**：最终"做/不做"以 **「最新值（最近一天）」对比** 为准，不是平均值。  
> - 提取 `document.body.innerText` 里的每日数据点时，取**最后一行（最近日期）**两边的值：游戏词最新日值 vs GPTs 最新日值。  
> - **游戏词最新值 > GPTs 最新值 → 达标候选**；游戏词最新值 ≤ GPTs 最新值 → 不达标，直接淘汰（无论平均值多高、KD 多低）。  
> - 新陡升词（如 GRAIN ROT：4 天从 4 飙到 94）平均值被早期 0 值拉低，但最新值极高——必须用最新值才能识别这类词。  
> - 注：Google Trends 各查询独立归一化，GPTs 基线在不同查询间会波动（实测 44/44/44/3）。如需绝对精确，建议把候选词 + GPTs 放在**同一次查询**里比对。

**工具地址**：
- 老版：https://trends.google.com/trends/explore?hl=zh-CN
- 新版：https://trends.google.com/explore?geo=Worldwide&date=today%201-m

设置：全球、最近 30 天，搜候选游戏名，并与 `GPTs` 对比。

抓取 Google Trends 对比数据（示例调用）：

```
# 1. 导航到 Google Trends 对比页面（游戏词 vs GPTs，最近30天，全球）
#    实测：前 1-2 个词直接 URL 可用，第 3 个词起可能触发 reCAPTCHA
#    reCAPTCHA 对策：先 navigate 落地页 https://trends.google.com/trends/explore?hl=zh-CN 重建会话
run_mcp("mcp_playwright-extension", "browser_navigate", args={
  "url": "https://trends.google.com/trends/explore?q={游戏词URL编码},GPTs&date=today%201-m&hl=zh-CN"
})

# 2. 等待趋势曲线加载（Trends 渲染较慢，建议等 5-8 秒）
run_mcp("mcp_playwright-extension", "browser_wait_for", args={"time": 6})

# 3. 方案A（推荐，实测最可靠）：提取页面全文，含平均值/每日数据点/相关查询/区域
run_mcp("mcp_playwright-extension", "browser_evaluate", args={
  "function": "() => document.body.innerText.substring(0, 3000)"
})
# 返回文本格式："平均值\tx1\t{游戏词}\tGPTs\n平均值\t{值1}\t{值2}\n日期\t值1\t值2..."
# 若返回文本很短（<300字符）且无"平均值"→ 说明该词搜索热度极低，直接淘汰

# 3b. 方案B：截图，肉眼判断趋势形态（辅助）
run_mcp("mcp_playwright-extension", "browser_take_screenshot",
        args={"type": "png", "scale": "css", "fullPage": false})
```

**趋势线判断（一眼就能看出来）**：
| 趋势形态 | 含义 | 决策 |
|---------|------|------|
| 线往上走 | 有戏 | 记下来 |
| 线平 / 往下 | 搜的人越来越少 | 换一个 |
| 线像一座山（突然暴涨 → 可能很快暴跌） | 陷阱词 | 跳过 |
| **无数据（页面只有导航元素，无曲线/平均值）** | Google 搜索热度极低 | **直接淘汰，无需再验证首页竞争** |

经验：**一周内陡升的算新词，越新越好**。新词搜索结果页还很"稀疏"——没有大站占满前 10 名，新手反而有机会排上去。

**优先用截图方案**：让用户/模型对照截图判断趋势形态，识别"陷阱词"山形曲线最直观。

**必查：相关查询（搜索量上升）**：趋势数据加载后，用 `browser_evaluate` 提取 `document.body.innerText`，检查"相关查询"区块。若相关查询含 `hacked`、`malware`、`virus`、`leak` 等词，说明热度由**负面安全事件驱动**，非游戏本身需求 → 直接淘汰（实测案例：Meccha Chameleon 月初高热度但相关查询全是"discord hacked""malware"）。

#### 通过下载按钮获取完整相关查询 CSV

当需要结构化、完整的相关查询列表时，优先用 Google Trends 自带的下载按钮导出 CSV，而不是只从 `body.innerText` 里截取。

**适用场景**：
- 需要完整 TOP 25 + RISING 25 相关查询（页面 innerText 可能截断或不清晰）
- 想批量保存相关查询作为后续长尾词库 / 内容规划素材
- 需要精确区分"搜索量最高"（TOP）和"搜索量上升"（RISING）两类相关词

**操作步骤**：

```
# 1. 确保已在 Google Trends 页面且"相关查询"卡片已加载
run_mcp("mcp_playwright-extension", "browser_wait_for", args={"text": "相关查询"})

# 2. 用 snapshot 定位下载按钮（"相关查询"卡片右上角的下载图标）
run_mcp("mcp_playwright-extension", "browser_snapshot", args={})

# 3. 点击下载按钮，浏览器会将 CSV 保存到默认下载目录
run_mcp("mcp_playwright-extension", "browser_click",
        args={"element": "下载相关查询", "target": "..."})

# 4. 等待下载完成
run_mcp("mcp_playwright-extension", "browser_wait_for", args={"time": 2})
```

**CSV 文件位置与命名**：
- 默认保存为 `~/Downloads/relatedQueries.csv`
- 若文件已存在，浏览器会自动重命名为 `relatedQueries (1).csv`、`relatedQueries (2).csv` 等
- 用 `Read` 工具读取最新文件（优先尝试带数字后缀的版本，如 `relatedQueries (1).csv`）

**CSV 结构解析**（以 `BIG WALK` 与 `GPTs` 的对比查询为例）：

```
类别：所有类别
"BIG WALK: (2026/7/12 - 2026/8/12, 全球)"

TOP
the big walk,100
big walk game,58
how big is big walk,26
...

RISING
big walk puzzles,飙升
4166 big walk,飙升
signalis,飙升
...
```

- 第 1 行：类别
- 第 2 行：当前查询词 + 时间范围 + 地区
- "TOP" 下方：搜索量最高的相关查询，第二列为 0-100 的相对热度
- "RISING" 下方：搜索量上升的相关查询，第二列为"飙升"等标签

**如何利用 CSV 数据**：
1. **负面事件过滤**：检查 TOP / RISING 是否含 `hacked`、`malware`、`virus`、`leak`、`crack`、`free download`、`freetp` 等 → 直接淘汰
2. **发现长尾内容机会**：RISING 中的 `big walk trophy guide`、`big walk puzzles`、`big walk player count` 等是用户真实搜索需求，可作为首批发力内容
3. **交叉验证热度真实性**：若多个候选游戏的相关查询互相重叠（如都指向同一款竞品），说明榜单噪音大，需谨慎
4. **扩展候选池**：RISING 里出现的新游戏名 / 同类游戏名（如 `signalis`）可作为下一轮候选词来源

**注意事项**：
- 下载按钮与截图、innerText 提取互为补充，不是替代关系：截图用于判断趋势形态，CSV 用于批量获取相关查询
- 若当前查询包含多个对比词（如 `BIG WALK,GPTs`），CSV 只导出**当前焦点词**的相关查询（截图示例中焦点词为 BIG WALK）
- CSV 中的热度值是 Google Trends 内部相对值，**不能跨查询直接比较绝对值**，只用于同一查询内排序

**山形陷阱词的两种成因**：
1. **版本更新驱动**：游戏 1.0/大版本发布带来短期峰值，随后持续下降（实测案例：Scrap Mechanic 1.0 于 7/24 发布，7/26 峰值 100，7/31 已降到 57）
2. **预售期昙花一现**：预告片发布带量，发售后下跌
→ 两种都不可做，需等趋势稳定后再判断

#### 验证 2：SEMrush 关键词概览（KD 首选数据源）

⚠️ **实测结论（2026-08-09）**：SEMrush **中文版**（`zh.semrush.com`）关键词概览页**需登录 Semrush 账号**才能返回完整核心数据，是 KD 查询的首选数据源。⚠️ **重要**：playwright-extension 控制的浏览器环境通常已登录 Semrush，因此**容易误判为"无需登录"**——实际上若在未登录的干净浏览器访问，会跳转登录页或数据受限。调用前应确认 playwright 控制的浏览器已登录 Semrush；若未登录，需提示用户先在浏览器里登录。（注：踩坑 #22 中"Semrush 不可用"的旧结论是针对**英文版 `www.semrush.com`** 实测所得，中文版实测可用，已在 #22/#36 修正。）

**SEMrush 中文版调用方式（实测有效）**：

```
# 直接 URL 带参数访问（需 playwright-extension 控制的浏览器已登录 Semrush 账号）
# q= 关键词，URL 编码空格为 +（如 big walk → q=big+walk）
run_mcp("mcp_playwright-extension", "browser_navigate", args={
  "url": "https://zh.semrush.com/analytics/keywordoverview/?q={游戏词URL编码}"
})

# 等待数据加载（页面会自动补 &db=us，数据渲染需 5-8 秒）
run_mcp("mcp_playwright-extension", "browser_wait_for", args={"time": 7})

# 提取页面全文（KD、搜索量、意图、CPC、细分词、问题词、聚类都在 innerText 里）
run_mcp("mcp_playwright-extension", "browser_evaluate", args={
  "function": "() => document.body.innerText.substring(0, 3500)"
})
# 返回文本结构清晰，关键区块：
# "关键词摘要" → 搜索量 / 关键词难度（KD%）/ 全球搜索量 / 意图 / CPC / 竞争激烈程度
# "全球搜索量" → 各国搜索量分布（US/UK/AU/BR/CA/ZA/其他）
# "关键词意见 → 关键词变化" → 5 个细分词 + 各自搜索量/KD，提示"查看全部 N 个关键词"
# "问题" → 5 个问题型长尾词 + 各自搜索量/KD，提示"查看全部 N 个"
# "关键词策略" → 聚类群组 + 意图百分比
```

⚠️ **SEMrush 数据有效性自检（抓完必做，防静默退化）**：浏览器返回文本后，**先确认真的拿到 KD 数字，再信赖该数据**。playwright 控制的浏览器 Semrush 登录态可能过期——过期后页面会跳转登录页、显示 "Something went wrong" 或所有指标 n/a，但脚本/模型不会自动报错，容易"以为查到了 KD"实则为空。判定标准：返回文本须含 `关键词难度（KD%）` 且附具体百分比（如 `51%`），且**不含** "Something went wrong" / "登录" / 全 n/a。若未拿到有效 KD → **自动降级**到 Ubersuggest（验证 2b）作为 KD 区间的权威来源，并在报告「数据获取受阻项」中明确标注「SEMrush 登录态失效，KD 以 Ubersuggest SD 为准」，不要让判断表 KD 维度留空或混入无效值。

**SEMrush 数据要点**：
1. **主词 KD（百分比形式）**：如 `51%` 并标注难度档位（"困难"/"中等"/"容易"），还附带"您需要拥有 N 个引荐域名和优化内容才能竞争"的量化说明——这是 SimilarWeb/Ubersuggest 给不出的
2. **绝对搜索量**：美国搜索量 + 全球搜索量双数据（实测 big walk：US 6.6K / 全球 14.5K），Google Trends 给不出的关键数据
3. **意图分布**：信息/交易/导航/商业，主词意图为"信息"说明搜索需求以内容查询为主，适合内容站
4. **CPC + 竞争激烈程度**：辅助判断商业价值（big walk CPC $0.02 说明商业价值低，但内容站仍可做）
5. **各国搜索量分布**：判断主流量国家，决定是否做英文站（US 流量大则做英文站）
6. **细分词 5 个 + KD**：首屏免费展示 5 个细分词及各自 KD，完整列表（可达数千个）需付费
7. **问题型长尾词 5 个 + KD**：直接给出 5 个用户真实问题（如"can you walk without a big toe"），是建站内容切入点——比 Google "People also ask" 更集中
8. **关键词聚类群组**：自动聚类 + 意图百分比，辅助内容规划

**⚠️ KD 数值体系差异（必读）**：SEMrush KD 是**百分比**（0-100%），SimilarWeb KD 和 Ubersuggest SD 是**0-100 整数分制**，三者算法不同：
- SEMrush KD 衡量"需要多少引荐域名才能竞争"（big walk = 51% → 需 8 个引荐域名）
- SimilarWeb KD 综合域名权重和竞争强度（big walk = 27）
- Ubersuggest SD 主要看反链数 PD（big walk = 26）
- **实测 big walk 三家差异**：SEMrush 51% vs SimilarWeb 27 vs Ubersuggest SD 26 —— **不能直接比绝对值**，只能看各自难度区间是否一致。SEMrush 51% 属"困难"，SimilarWeb 27 / Ubersuggest 26 属"新手可做"，看似矛盾，实因 SEMrush 对"内容型新站所需反链门槛"判定更严——**SEMrush KD > 50% 时即使其他两家数值低也要警惕**，需结合 Google 首页竞品再判断。

**KD 区间参考（SEMrush 百分比制）**：
- KD < 30%：容易，新手可做
- KD 30-50%：中等，需一定反链积累
- KD > 50%：困难，新手尽量别做（big walk 51% 即属此档）

**获取不到数据时的处理**：若 SEMrush 页面显示"Something went wrong"或所有指标 n/a（踩坑 #22 中英文版出现过此情况）或跳转登录页，切换到 Ubersuggest（验证 2b）做 KD 验证；SimilarWeb Pro（验证 2c）仅在可用时补充。**不能跳过 KD 获取步骤**，判断表 KD 维度必须填满。

---

#### 验证 2b：用 Ubersuggest 获取 KD + Volume + 细分词（KD 验证数据源，必读）

⚠️ **实测结论（2026-08-01，2026-08-09 修正定位）**：similarweb 下线后，4 个推荐免费 KD 工具中**只有 Ubersuggest 可用**：
- ❌ Ahrefs Keyword Generator / KD Checker：输入词后页面无结果，仅营销文案
- ✅ **Ubersuggest**：完整返回主词 + 22 个细分词的 Volume/SD/CPC，**唯一可用**，无需登录
- ❌ AnswerThePublic：搜索按钮未触发跳转，疑似自动化检测拦截
- ❌ Semrush Keyword Overview（**英文版 www.semrush.com**）：识别关键词但所有指标 n/a + "Something went wrong"（中文版 zh.semrush.com 需登录但可用，见验证 2）

**定位**：Ubersuggest 是 SEMrush KD 的**验证数据源**——每个候选词用 SEMrush 拿到 KD 后，必须用 Ubersuggest SD 交叉验证难度区间是否一致。两者数值体系不同（SEMrush 百分比 / Ubersuggest SD 整数分），只比区间不比绝对值。

**Ubersuggest 调用方式（实测有效）**：

```
# 直接 URL 带参数访问（无需登录，无需点击）
# locId=2840 是 US，locId=2826 是 UK
run_mcp("mcp_playwright-extension", "browser_navigate", args={
  "url": "https://app.neilpatel.com/en/ubersuggest/keyword_ideas?keyword={游戏词URL编码}&locId=2840"
})

# 等待数据加载（表格行需要 8-10 秒）
run_mcp("mcp_playwright-extension", "browser_wait_for", args={"time": 10})

# 提取表格所有行
run_mcp("mcp_playwright-extension", "browser_evaluate", args={
  "function": "() => { const rows = document.querySelectorAll('tbody tr, table tr'); return [...rows].slice(0, 30).map(tr => [...tr.querySelectorAll('td')].map(td => td.innerText.trim().substring(0, 50))).filter(arr => arr.length > 0); }"
})
# 返回格式：[keyword, intent, volume, CPC, PD, SD]
# SD 即 SEO Difficulty（0-100，<30 新手可做）
# 注意：SD 主要看反链数 PD，会严重低估专门站竞争（见下方踩坑 #12）
```

**Ubersuggest 数据要点**：
1. **主词 Volume**：给出绝对月搜量（如 Mistfall Hunter 月搜 4.4K），Google Trends 给不出的关键数据
2. **主词 SD**：与 SEMrush KD 交叉验证难度区间是否一致（实测案例：Big Walk SEMrush KD 51% 属"困难"，Ubersuggest SD 26 属"新手可做"——区间不一致时需警惕，结合首页竞品再判断）
3. **22 个细分词**：自动给出 Volume/SD/CPC，能发现 SEMrush 首屏 5 个细分词之外的低 KD 机会词
4. **⚠️ SD 局限性**：SD 只看反链数（PD），不衡量专门站数量。"Mistfall Hunter wiki" SD 只有 13（看似容易），但 Google 首页已有 4 个专门站。**SD 必须与 Google 首页竞品分析（验证 3）交叉验证**，不能单独用 SD 下结论。

---

#### 验证 2c（可选补充）：SimilarWeb Pro 查 KD 及细分需求

**定位**：SimilarWeb Pro 是 KD / Volume / 细分需求的**可选补充源**，仅在已登录 Pro 账号、且 SEMrush（验证 2）/ Ubersuggest（验证 2b）数据不足时补充使用。其"领先者域名列"对竞争格局判断很有价值。标准流程以 **SEMrush 首选 + Ubersuggest 验证双源**为准，本步骤非必备但推荐有条件时执行。

**调用方式**（需已登录 Pro 账号）：

```js
// SimilarWeb Pro 关键词生成器（URL 模板见 yxz-keyword-miner 来源 3）
// tab=phraseMatch 语句匹配 / tab=related 相关关键词 / tab=questions 问题查询
// 提取表格用"意图列反推法"（先定位首个 INFO/NAV/TRANSAC. 等意图行，再反推 KD 列位置）
```

**SimilarWeb Pro 数据要点**（与 SEMrush / Ubersuggest 交叉验证）：
1. **28天搜索量**：给出绝对月搜量，与 Ubersuggest Volume 对照
2. **KD 难度（0-100）**：< 30 新手可做 / 30-40 需谨慎 / > 40 不建议；与 SEMrush KD%、Ubersuggest SD 区间对照（体系不同只比区间）
3. **细分关键词数**：语句匹配模式返回数百到数千个细分词
4. **领先者列**：显示每个关键词排名最靠前的域名，直接判断竞争格局（比单独搜 Google 首页更高效）

**细分需求替代方案**：用 3 个免费数据源交叉获取：

```
# 数据源 1：Google Trends 相关查询（搜索量上升）
# 在 Trends 页面用 browser_evaluate 提取 body.innerText，找"相关查询"区块

# 数据源 2：Google "People also ask"
run_mcp("mcp_playwright-extension", "browser_navigate", args={
  "url": "https://www.google.com/search?q={游戏词}+guide&hl=en"
})
run_mcp("mcp_playwright-extension", "browser_evaluate", args={
  "function": "() => document.body.innerText.substring(0, 4000)"
})
# 从返回文本中找 "People also ask" 区块，提取 4-8 个真实用户问题

# 数据源 3：Google "People also search for"
# 搜索 {游戏词} wiki / guide / build 等细分词，从结果页底部提取
```

**看两点**：
1. **KD（关键词难度，0-100，数字越大越难）**
   - KD 0-30：新手可做
   - KD >40：新手尽量别做（大站已占满，切不动）
2. **细分关键词数量**：判断是否有细分长尾关键词抢占流量的机会

注：similarweb 有反爬机制，若 JS 提取失败，**用截图方案**让用户从截图中读取 KD 与细分关键词。



#### 验证 3：看 Google 搜索首页竞争（所有候选词必查，不能跳过）

最后有没有流量、流量大小，核心取决于：**你的网站能不能排进 Google 首页**。

⚠️ **所有候选词都必须查 Google 首页竞争**，即使 Google Trends 趋势已否决的词也不能跳过。判断表中"首页竞争难度"维度必须全部填满，不能写"未查"。

抓取 Google 首页竞品类型（示例调用）：

```
# 1. 导航到 Google 搜索游戏词（用 Google 而非 Bing，Google 是主要流量来源）
run_mcp("mcp_playwright-extension", "browser_navigate", args={
  "url": "https://www.google.com/search?q={游戏词URL编码}&num=10"
})

# 2. 等待结果加载
run_mcp("mcp_playwright-extension", "browser_wait_for", args={"time": 3})

# 3. 提取首页文本（实测 div.g / cite 选择器经常失效，改用 innerText 解析）
run_mcp("mcp_playwright-extension", "browser_evaluate", args={
  "function": "() => document.body.innerText.substring(0, 4000)"
})
# 返回的文本含 "Web results" / "Top stories" / "Videos" / "Discussions and forums" 等区块
# 从中解析：域名（紧跟在标题下方）、标题、内容类型（新闻/视频/商店页/论坛/官网）
# 注意：Google 搜索结果页还可能含 SiteData 插件注入的流量分析数据（DR/Monthly Visits 等），
#       可作为竞品权重参考，但不要依赖（插件数据可能不显示）
```

根据提取的域名列表，按下方类型表分类识别：

| 类型 | 特征 | 竞争判断 |
|------|------|---------|
| Fandom / Wiki 类大站 | 域名带 fandom.com，权重极高、内容全 | 巨无霸，主词难正面竞争 |
| 官方 Wiki | 游戏官网/子域名，权威、更新及时 | 强，但攻略/兑换码类可能留缝隙 |
| 大型游戏媒体 | IGN、GameSpot、Polygon、Kotaku | 权重高但内容偏新闻，深度不够 |
| 成熟攻略站 | Pro Game Guides、Game8、Pocket Tactics | 既是竞争对手也是参考对象 |
| 大站普通内页 | Steam 商店页、IGN 某篇评测 | 内容浅、没专门维护 → **机会** |

**判断方法**：
- 首页全是 Fandom、成熟攻略站这类"专门做攻略"的强站 → 主词竞争大，新手难排上去
- 排在前面的是大站普通内页（内容浅、过时） → 搜索需求还没被认真满足，**仍有机会**

**辅助工具**：⚠️ ~~SiteData 插件~~（已实测不可用，见踩坑 #10）。Chrome 安全模型禁止 playwright 跨扩展读取数据，SEO 插件数据在 popup 中渲染（不在网页 DOM），playwright 读不到。竞品量化数据（KD / 搜索量）用 **SEMrush 关键词概览（验证 2，首选）+ Ubersuggest（验证 2b，验证）+ SimilarWeb Pro（验证 2c，可选）** 三源获取，三者 KD 体系不同只比难度区间。

---

### 第三步：填写判断表，选定主词

对 3-5 个候选词全部验证后，填写下表（**横向5列，候选词作列，维度作行**）：

|  | 候选词 1 | 候选词 2 | 候选词 3 | 候选词 4 | 候选词 5 |
|---|---------|---------|---------|---------|---------|
| **游戏名** |  |  |  |  |  |
| **Trends 趋势（涨/平/跌）** |  |  |  |  |  |
| **KD 难度（SEMrush KD% 首选 + Ubersuggest SD 验证）** |  |  |  |  |  |
| **细分关键词数量** |  |  |  |  |  |
| **首页竞争难度** |  |  |  |  |  |
| **做/不做** |  |  |  |  |  |

**综合选择标准**（同时满足）：
1. ⚠️ **硬规则（必须满足）**：候选词的 Google Trends 全球 30 天「**最新值（最近一天）**」必须 **高于** 对比词 `GPTs` 的「**最新值**」。  
   - **用最新日值，不用平均值**——新陡升词的早期为 0 会把平均值拉低（如 GRAIN ROT 平均值 11 但最新值 94），平均值会误杀真正的新爆词。  
   - 最新值低于 GPTs 一律不达标，直接淘汰（无论 KD 多低、新词窗口多好）。
2. KD < 30
3. Google 搜索首页竞争比较小
4. 优先新词（一周内陡升）

选定 1 个主词后，再进入域名选择环节（首选 .wiki，被注册则考虑 .com / .org / .net / .online / .site）。

---

## 执行要点

1. **不要找一个就停**：必须收集 3-5 个候选词再比较，避免"我觉得能火就开干"。
2. **不要混淆社媒火与 Google 搜火**：TikTok/YouTube 热闹 ≠ Google 搜索热度，必须用 Google Trends 验证。
3. **警惕陷阱词**：山形曲线（突然暴涨后暴跌）是典型的"预售期昙花一现"词，不可做。
4. **新词优先**：一周内陡升的新词，搜索结果页稀疏，新手更易排上去。
5. **KD 不是唯一标准**：还要看 Google 首页是不是大站普通内页——若是，即便有竞品也仍有机会。
6. **对比词估算**：Google Trends 不显示真实搜索量，必须用 `GPTs` 对比来估算。
7. **硬规则：最新值高于 GPTs**：候选词 Google Trends 全球 30 天「**最新值（最近一天）**」必须高于对比词 `GPTs` 的「最新值」。**一律用最新日值判断，不用平均值**（新词早期 0 值会拉低均值而误杀）。低于 GPTs 直接淘汰，无论 KD 多低、新词窗口多好都不做。
8. **善用 Trends 相关查询 CSV**：点击下载按钮可拿到完整 TOP 25 + RISING 25 相关词，既能发现长尾内容机会（如 `trophy guide`、`puzzles`），也能识别负面事件驱动词（如 `hacked`/`malware`），应作为候选池扩展和内容规划的常规输入。

## 浏览器抓取要点

1. **统一用 `mcp_playwright-extension`**：所有数据均通过 `run_mcp` 调用本地浏览器实时抓取，**禁止用 WebFetch/WebSearch 替代**（JS 渲染/反爬拿不到真实数据）。
2. **反爬场景优先截图**：similarweb、Google Trends 等有反爬，JS 提取可能失败，此时用 `browser_take_screenshot` 截图，从图中读取数据。
3. **趋势判断优先截图**：Google Trends 的"山形/上涨/下跌"靠肉眼最准，截图让用户/模型对照判断。
4. **结构化数据优先 evaluate**：SteamDB 榜单、Google 搜索结果域名列表等结构化数据，用 `browser_evaluate` 执行 JS 提取最精炼。
5. **等待加载**：每次 `browser_navigate` 后必须 `browser_wait_for`（等文本或等几秒），避免抓到空页面。
6. **页面选择器可能变化**：示例中的 CSS 选择器（如 `#chart-tbody tr`、`ytd-video-renderer`）可能随网站改版失效，抓取失败时用 `browser_snapshot` 重新定位元素。
7. **URL 编码**：游戏词拼到 URL 时必须 `encodeURIComponent`，避免空格/特殊字符破坏 URL。
8. **一个浏览器实例复用**：playwright-extension 共享一个浏览器会话，多个候选词验证时顺序执行（navigate→抓取→下一个 navigate），不要并行。
9. **Google 首页结果选择器**：Google 搜索结果 DOM 结构多变，`div.g` 失效时改用 `browser_snapshot` 拿 ref 再分析。
10. **Google Trends 下载按钮需先 snapshot 定位**：下载按钮在"相关查询"卡片右上角（与截图中箭头指向一致），先 `browser_snapshot` 拿到 target/ref，再用 `browser_click` 点击；下载后文件默认在 `~/Downloads/relatedQueries.csv`，重复下载会重命名为 `relatedQueries (1).csv`、`relatedQueries (2).csv` 等，读取时优先取最新文件。

## 实战踩坑教训（必读）

> 📌 **时效说明**：以下 #1–#37 为历史踩坑积累，KD 方案以 **SEMrush 首选 + Ubersuggest 验证 + SimilarWeb Pro 可选** 三源为准（见验证 2 / 2b / 2c）。其中 #5、#16、#22、#24、#25（Ubersuggest 实测）、#31–#36（SimilarWeb Pro 实测）、#37（Trends CSV 下载实测）均为有效结论，可作标准流程参考，并非"已失效"。

1. **Cloudflare 拦截子页**：SteamDB 主页（`/`）和 IGDB 主页（`/`）可访问，但 **`/charts/`、`/discover`、`/topsellers/` 等子页会被 Cloudflare "Just a moment" 拦截（403）**。对策：优先用主页发现的入口链接；若必须用子页，需用户在浏览器窗口手动过 Cloudflare 验证。SteamDB 主页会直接列出当前热门游戏（如首页 `Popular Releases` 区块）。
2. **Google Trends reCAPTCHA**：带 `q=` 参数的 explore URL 直接 navigate 会触发 reCAPTCHA，页面显示 "Oops! There was a problem displaying this page"，`/trends/api/explore` 接口返回 400。**对策（已验证有效）**：先 navigate 落地页 `https://trends.google.com/trends/explore?hl=zh-CN`（无参数），用 `browser_type` 在搜索框输入游戏名 → 用 `browser_evaluate` 点击下拉建议项中的"视频游戏"类型（`li[role=button]` 含游戏名+`视频游戏`）→ 此时 URL 会变成 `?q=/g/11xxxx`（Knowledge Graph ID）→ 然后再 navigate 带 `q={KGID},GPTs&date=today 1-m` 的 URL，cookie 已通过验证，不会再 400。
3. **Trends 相对热度不可跨查询比较**：每次查询的 0-100 是**同一次查询内**的相对值。同一个 GPTs 在不同查询里平均值会变（如某次64、某次12）。**对策**：必须把游戏词和 GPTs 放在同一次查询里比较比值（1/3、1/2、相当、超过），不要拿不同查询的绝对值对比。
4. **KISS-Translator 等翻译扩展可能干扰**：浏览器装的翻译扩展会注入 content.js，可能加剧 Trends API 400。若 Trends 持续 Oops，建议让用户在 playwright 控制的浏览器里禁用翻译扩展。
5. **similarweb 免费关键词页已下线**：`similarweb.com/seo/keyword-analysis/?q=` 返回 404。KD 维度需改用：(a) ~~Google 首页竞品类型按方法论反推~~（**2026-08-09 废弃**，不再用首页竞品反推 KD，见 KD 优先级总览）；(b) ~~让用户装 SiteData 插件~~（实测不可用，见踩坑 #21）；(c) 用 Ahrefs/Semrush 免费版（需登录）。**当前方案**：SEMrush 中文版（首选，需登录）+ Ubersuggest（验证，无需登录），见验证 2/2b。
6. **YouTube 预告片≠已上线游戏（但步骤仍必做）**：从 `gameplay trailer` 选的词多为**未发售游戏**，Trends 搜索量普遍偏低（玩家搜预告片但不会反复搜游戏名）。方法论强调"新上线且玩的人数持续上升"——应优先选**已发售或临近发售**的游戏。对策：YouTube 候选词要交叉验证 SteamDB 主页的 Popular Releases。**注意：这条 caveat 只用于"筛选候选时要交叉验证"，绝不意味着可以跳过 YouTube 搜索步骤本身——来源二为第一步必做项，每次都必须实际执行。**
7. **Google 结果被重定向**：`google.com/search` 可能被重定向到 `google.com.hk`，提取域名时 host 过滤要包含 `google.com.hk`。
8. **Trends 3个月视图粒度变粗**：`date=today 3-m` 数据按周聚合，看不到日级波动。判断"山形陷阱词"必须用 `today 1-m`（日级）。
9. **Trends 落地页搜索框选择器**：搜索框是 `input#input-29[type=search][placeholder="添加搜索字词"]`，建议项是 `li[role=button]`，"视频游戏"类型项 innerText 含游戏名+`\n视频游戏`。
10. **Trends 无数据 = 低热度词直接淘汰**（实测）：Sephiria、How Many Dudes? 在 Google Trends 页面只有导航元素（body.innerText 长度 ~200 字符），无趋势曲线/平均值/相关查询——说明 Google 搜索热度极低。**这本身就是一个有效判断**，直接淘汰，无需再验证首页竞争，节省时间。不要因为榜单排名高（如 SteamDB Popular Releases #3）就认为 Google 搜索也火。
11. **Trends 连续查询触发 reCAPTCHA**（实测）：第 1-2 个词直接 URL 可正常加载，第 3 个词起可能触发 reCAPTCHA（"Could not connect to the reCAPTCHA service"）。对策：先 navigate 落地页 `https://trends.google.com/trends/explore?hl=zh-CN` 重建会话，再 navigate 带参数 URL；若仍失败，间隔 30 秒后重试。
12. **Google 搜索结果 `div.g` 选择器失效**（实测）：提取首页竞品时 `document.querySelectorAll('div.g')` 返回空数组。对策：直接用 `browser_evaluate` 提取 `document.body.innerText.substring(0, 4000)`，从纯文本中解析域名、标题、类型——Google 搜索结果页的文本结构清晰（含"Web results"、"Top stories"、"Videos"、"Discussions and forums"等区块标识）。
13. **负面事件驱动热度识别**（实测）：Meccha Chameleon 平均值 44 远超 GPTs 4，但趋势从月初 100 持续下降到月底 15，相关查询全是"discord hacked""malware"。**必查相关查询**——若含 hacked/malware/virus/leak 等词，热度由负面安全事件驱动，非游戏本身需求，直接淘汰。
14. **版本更新驱动的山形陷阱词**（实测）：Scrap Mechanic 1.0 于 7/24 发布，Trends 7/26 峰值 100，7/31 已降到 57。这种"版本更新驱动"的山形词与"预售期昙花一现"不同——游戏本身可能很成功（已售 300 万份），但版本更新的短期热度不可持续。需等趋势稳定后再判断。
15. **剪藏文件作为 Cloudflare 拦截的最终备选**（实测）：当 SteamDB/IGDB 主页也被 Cloudflare 拦截、playwright-extension 无法读取时，请用户用浏览器扩展（SingleFile/MarkDownload）将主页剪藏为 Markdown 文件，然后用 `Read` 工具读取。剪藏文件保留完整的榜单表格结构，可手动提取游戏名、在线人数、价格等数据。
16. **similarweb 免费关键词分析页全站下线**（实测 2026-07-31）：`/seo/keyword-analysis/`、`/keyword-research/`、`/website/{domain}/` 三个入口全部返回 403，仅主页可访问（营销页，无免费查询入口）。**当前 KD 方案（2026-08-09 更新）**：(a) SEMrush 中文版（首选，需登录，见验证 2）；(b) Ubersuggest 网页版（验证，无需登录，见验证 2b）；(c) SimilarWeb Pro（仅在可用时使用，见验证 2c）。~~Google 首页竞品类型反推~~（已废弃，不再用于反推 KD）。不要再尝试 similarweb 免费子页，浪费时间。
17. **细分词竞争差异巨大，必须搜多个长尾词**（实测）：同一个游戏的不同长尾词，KD 可能差 2-3 倍。Mistfall Hunter 主词 KD 20-30（无专门站），但 "Mistfall Hunter wiki" KD 50-70（4 个专门 wiki 站占首页）。**必须搜 {游戏词}、{游戏词}+guide、{游戏词}+wiki、{游戏词}+build 至少 4 个变体**，分别评估 KD，不能只搜主词就下结论。
18. **机会窗口关闭速度极快**（实测）：新上线热门游戏 2 天内就有 4 个专门 wiki 站建站（mistfallhunter.wiki / mistfallhunters.wiki / mistfallhunter.me / mistfallhunterwiki.org）。**发现候选词后必须立即验证并决策，不能拖延**。建议：Trends 验证通过后，1 小时内完成首页竞品分析并决定是否入场。
19. **Google "People also ask/search for" 是细分需求金矿**（实测）：一个 Google 搜索就能从 "People also ask" 拿到 4-8 个真实用户问题，从 "People also search for" 拿到 8 个相关搜索词。比 similarweb 细分关键词列表更直接、更免费、更真实。提取方式：`browser_evaluate` 取 `document.body.innerText.substring(0, 4000)`，找 "People also ask" 和 "People also search for" 区块。
20. **域名后缀选择需根据竞品调整**（实测）：原方法论建议首选 .wiki，但热门新词的 .wiki 后缀往往 2 天内就被抢注（mistfallhunter.wiki 已被竞品建站）。**对策**：搜 {游戏词}+wiki 看首页竞品，若已有 2+ 个 .wiki 站，改用 .guide / .com / .org 等后缀，避开红海。
21. **浏览器插件（如 SiteData）无法通过 playwright 调用**（2026-08-01 实测）：Chrome 安全模型禁止一个扩展访问另一个扩展的 `chrome-extension://` 页面；SEO 插件数据在 popup/sidebar 中渲染（不注入网页 DOM），而 playwright 只能读网页 DOM，**根本读不到插件数据**，即使插件已安装也无用。报错特征：`ERR_BLOCKED_BY_CLIENT` 或 `Cannot access a chrome-extension:// URL of different extension`。**对策**：用 Ubersuggest 网页版替代（见验证 2b），不要再尝试调用浏览器插件。
22. **similarweb 替代工具实测结论**（2026-08-01 实测 4 个推荐工具）：
    - ❌ **Ahrefs Keyword Generator**（https://ahrefs.com/keyword-generator）：输入词后 URL 带 `?country=us&input=Mistfall%20Hunter`，但 body 中无 Mistfall，仅营销文案（5K 字符），无结果表格
    - ❌ **Ahrefs Keyword Difficulty Checker**（https://ahrefs.com/keyword-difficulty）：同样 body 中无 Mistfall，仅 KD 体系介绍文字（页面里的 "KD 40" 是示例数值，不是查询结果）
    - ✅ **Ubersuggest**（https://app.neilpatel.com/en/ubersuggest/keyword_ideas?keyword={词}&locId=2840）：**唯一可用**，完整返回主词 + 22 个细分词的 Volume/SD/CPC，无需登录
    - ❌ **AnswerThePublic**（https://answerthepublic.com/en）：切换到 "Search Keywords" 模式、填词、点击 `[data-testid=search-button]` 后 URL 仍在 `/en`，body 中无 Mistfall（疑似自动化检测拦截）
    - ⚠️ **Semrush Keyword Overview（英文版 www.semrush.com）**：breadcrumb 识别关键词（页面含 "Mistfall Hunter"），但所有指标显示 `n/a` + "Something went wrong. Reload"，需登录
    - ✅ **Semrush 关键词概览（中文版 zh.semrush.com，2026-08-09 修正）**：**需登录 Semrush 账号**（playwright-extension 控制的浏览器若已登录则可直接用，故易误判为"无需登录"；未登录会跳转登录页或数据受限）。返回完整 KD/搜索量/意图/细分词/问题词/聚类，已设为 KD 首选数据源（见验证 2、踩坑 #36）
    - **结论（已修正）**：KD 首选 SEMrush 中文版（需登录），Ubersuggest 验证（无需登录），SimilarWeb Pro 仅在可用时使用
23. **Ubersuggest SD 对专门站竞争严重低估**（2026-08-01 实测）：Ubersuggest SD 主要看反链数（PD=1 时不衡量专门站数量）。"Mistfall Hunter wiki" 在 Ubersuggest SD 只有 13（看似新手可做），但 Google 实测首页已有 4 个专门 wiki 站（mistfallhunter.wiki / mistfallhunters.wiki / mistfallhunter.me / mistfallhunterwiki.org）。**Ubersuggest SD 必须与 Google 首页竞品分析交叉验证**，不能单独用 SD 下结论——SD 低不代表竞争小，只代表反链少。
24. **Ubersuggest 能发现 Google 首页分析漏掉的低 KD 机会词**（2026-08-01 实测）：Ubersuggest 给出 5 个 SD ≤ 6 的低 KD 机会词（mistfall hunter ps5 open beta SD 5/Vol 70、twitch drops SD 6/Vol 20、beta 2/3 SD 5/Vol 10-20、all classes SD 5/Vol 10、ps5 release date SD 6/Vol 10），这些词 Google Trends 和 Google 首页分析都没发现。**Ubersuggest 应作为细分词挖掘的标准工具**，每次必查。
25. **Ubersuggest 提供绝对 Volume 数值，Google Trends 给不出**（2026-08-01 实测）：Ubersuggest 给出主词 Mistfall Hunter 月搜 4.4K，这是 Google Trends 给不出的绝对数值（Trends 只有相对值 0-100）。对估算流量潜力非常关键——结合主词 Volume 和 SD 可量化评估机会大小（如 4.4K 月搜 × SD 31 = 中等流量+新手可做）。
26. **Google 搜索 IP 被标记后需切换网络环境，仍以 Google 为首选**（2026-08-06 实测）：Google 搜索可能出现 429 + /sorry/ 重定向（IP 被标记）。尝试先访问 google.com 主页重建会话 → 在搜索框输入并提交表单 → 仍被重定向到 /sorry/。**对策**：① 首选仍是 Google 搜索，让用户切换网络环境（更换 IP / 关闭代理 / 使用移动热点）后重试；② 在报告中明确标注"Google 搜索被 IP 限制，已切换网络重试"；③ 不要再尝试反复访问 Google 搜索，会加剧 IP 标记。**不要降级到 Bing**——Bing 首页竞品结构与 Google 有差异，且 Google 才是主要流量来源，必须以 Google 首页数据为准。提取 Google 结果用 `document.body.innerText.substring(0, 4000)`，从文本中解析域名/标题/内容类型。
27. **SteamDB/IGDB 主页 Cloudflare 拦截是间歇性的**（2026-08-06 实测）：上一轮 7/31 主页被 Cloudflare 拦截需用户手动剪藏，本轮 8/6 主页可通过 playwright-extension 直接抓取成功。**说明 Cloudflare 拦截与网络环境/代理有关，不是恒定拦截**。建议每次先尝试直接抓取主页（`browser_navigate` + `browser_evaluate` 提取 innerText 找 "Trending Games" / "Popular Releases" / "Popular right now" 区块），失败再请用户剪藏。
28. **Google Trends reCAPTCHA 触发也是间歇性的**（2026-08-06 实测）：上一轮第 3 个词起会触发 reCAPTCHA，本轮 5 个词全部通过直接 URL（带 q= 参数）成功加载，未触发 reCAPTCHA。**说明 reCAPTCHA 与网络环境/会话状态有关**。但仍建议按方法论流程，遇到 reCAPTCHA 时改用落地页 + 交互式入页方式（先 navigate `https://trends.google.com/trends/explore?hl=zh-CN` 重建会话）。
29. **Ubersuggest 主词 Volume 是跨词比较流量潜力的关键**（2026-08-06 实测）：同一轮挖掘中，Big Walk Volume 9.9K，Fields of Mistria Volume 60.5K（6 倍差距）。Google Trends 只给相对值（0-100），无法跨词比较绝对流量。**Ubersuggest Volume 是评估流量潜力的必备数据，每次必查**。注意：Volume 大不等于可做，必须与首页竞品分析交叉验证（Fields of Mistria Volume 60.5K 但首页有 Fandom + wiki.gg，新手难排上去）。
30. **Fandom Wiki 是主词竞争的"一票否决"信号**（2026-08-06 实测）：Fields of Mistria 主词 Volume 60.5K（极大）、SD 31（可做）、细分词 447 个（丰富），**但首页有 Fandom Wiki（fields-of-mistria.fandom.com）+ wiki.gg 子站 + mistria.app 工具站**，新手难排上去。**对策**：主词首页若有 Fandom Wiki，即使其他指标优秀也应谨慎，优先选无 Fandom 的候选词（如本轮 Big Walk 主词首页只有 1 个专门 wiki 站，无 Fandom，最终被选为主词）。判断方法：Google 搜 `{游戏词}`，检查首页是否有 `*.fandom.com` 域名。
31. **SimilarWeb Pro 关键词生成器现已可用**（2026-08-06 实测）：之前 2026-07-31 下线的是免费版页面（`similarweb.com/seo/keyword-analysis/` 等），Pro 版（`pro.similarweb.com`）的关键词生成器工具可正常访问。URL 模板：`https://pro.similarweb.com/#/digitalsuite/acquisition/findkeywords/keyword-generator-tool/999/28d?searchEngine=google&keyword={词}&webSource=Total&isWWW=*&tab=phraseMatch`。需已登录 Pro 账号。提供 28天搜索量、平均搜索量、KD、零点击率、意图类型、领先者域名等数据。**SimilarWeb Pro 应作为 KD 查询的首选工具**，Ubersuggest 作为补充。
32. **SimilarWeb Pro KD 与 Ubersuggest SD 数值相近，需交叉验证**（2026-08-06 修正）：Big Walk SimilarWeb KD 27 vs Ubersuggest SD 26，数值相近而非差异巨大。原因：两者算法略有不同——SimilarWeb KD 综合考虑域名权重和竞争强度，Ubersuggest SD 主要看反链数（PD）。**两个工具的 KD 都需与 Google 首页竞品分析交叉验证**。注意：Corsair Cove SimilarWeb KD 仅 19（低于 30），是 5 个词中 KD 最优的，但因 Google Trends 趋势为下跌态势，综合评判仍为"不做"。
33. **SimilarWeb Pro 表格提取必须用"意图列反推法"，不能用固定偏移**（2026-08-06 实测修正）：SimilarWeb Pro 用 div 布局，数据按列排列，但**列偏移量因词而异**（不同关键词的表格行数不同）。**正确提取方法**：先用 `document.body.innerText` 获取全文，找到主词位置（kwStart），然后从 kwStart+400 到 kwStart+700 范围内搜索第一个意图值（INFO/NAV/TRANSAC./INVESTIGATIONAL/COMMERCIAL），该位置即为意图列起始位置，往前 100 行即为 KD 列起始位置。代码见验证 2 的提取函数。
34. **SimilarWeb Pro KD 数据大部分可用，仅少量无数据**（2026-08-06 实测 5 个词修正）：修正之前的错误结论——实测 5 个候选词中 4 个有主词 KD 数据：Big Walk 27、Fields of Mistria 30、Beast of Reincarnation 33、Corsair Cove 19，仅 Machine Party 主词无 KD（"-"）。**KD 值缺失的情况**：部分长尾关键词和 Machine Party 主词显示"-"，可能与关键词搜索量过低或为品牌/通用词有关。
35. **SimilarWeb Pro 领先者列是竞争分析的金矿**（2026-08-06 实测）：SimilarWeb Pro 表格的"领先者"列显示每个关键词排名最靠前的域名，可直接判断竞争格局。实测案例：Fields of Mistria 主词领先者是 youtube.com 和 fieldsofmistria.wiki.gg（确认已有专门站）；Beast of Reincarnation 主词领先者是 reddit.com 和 beastofreincarnationwiki.wiki（已有 wiki 站）；Machine Party 主词领先者是 schuimkanon-huren.nl（荷兰泡沫机租赁站，说明搜索词与游戏无关的噪音多）。**领先者列比单独搜 Google 首页更高效**，一次查询就能看到所有关键词的竞争域名。
36. **SEMrush 中文版需登录（playwright 已登录环境易误判为免登录）**（2026-08-09 实测，同日用户纠正）：URL `https://zh.semrush.com/analytics/keywordoverview/?q={词}`（自动补 `&db=us`）。⚠️ **登录前提**：SEMrush 中文版**需登录 Semrush 账号**才能返回完整数据——playwright-extension 控制的浏览器通常已登录，因此初次实测时**误判为"无需登录"**；若在未登录的干净浏览器访问，会跳转登录页或数据受限。调用前应确认 playwright 控制的浏览器已登录 Semrush，未登录则提示用户先登录。登录后首屏返回：主词 KD（%形式）+ 美国搜索量 + 全球搜索量 + 意图 + CPC + 各国搜索量分布 + 5 个细分词（含 KD）+ 5 个问题型长尾词（含 KD）+ 关键词聚类群组。实测 big walk：KD 51%（困难，需 8 个引荐域名）/ US 6.6K / 全球 14.5K / 意图信息交易 / CPC $0.02。**注意 KD 是百分比制**，与 SimilarWeb（0-100 整数）、Ubersuggest SD（0-100 整数）数值体系不同——big walk 三家为 51% / 27 / 26，不能直接比绝对值，只能看难度区间是否一致。完整 8920 个细分词列表需付费，但首屏 5 个细分词 + 5 个问题词已足够判断。**已设为 KD 首选数据源**，Ubersuggest（无需登录）做验证，SimilarWeb Pro 仅在可用时使用；不再用 Google 首页竞品反推 KD。修正 #22 中针对英文版 www.semrush.com 的"不可用"结论（英文版需登录且报错，中文版需登录但可用）。
37. **Google Trends 相关查询 CSV 下载实测要点**（2026-08-12 实测）：① 点击下载按钮后文件默认保存为 `relatedQueries.csv`，若下载目录已有同名文件则自动递增为 `relatedQueries (1).csv`、`relatedQueries (2).csv` 等，读取时须取最新文件；② 当查询包含多个对比词（如 `BIG WALK,GPTs`）时，CSV 只导出**当前焦点词**的相关查询（截图示例中焦点词为 BIG WALK），不会同时导出 GPTs 的相关查询；③ CSV 中 "TOP" 区块第二列为 0-100 相对热度，"RISING" 区块第二列为"飙升"等文本标签，两者不可直接比较绝对数值；④ RISING 区块常出现 `freetp`、同类游戏名（如 `signalis`）或长尾需求词（如 `trophy guide`、`puzzles`），需结合 SteamDB/YouTube 交叉验证是否为真实游戏需求。

## 输出规范

完成挖掘后，向用户输出**详细分析报告**，必须包含：
1. **候选词清单**（3-5 个，含来源链接、上线时间、玩家趋势）
2. **每个候选词的验证结果**（Trends 形态、KD 双源数据、细分词数、首页竞品类型），每项数据附**来源链接**方便用户复核：
   - Trends 数据：附 Google Trends 完整 URL + **Trends 曲线 viewport 截图（红线 GPTs / 蓝线游戏词，必备）**
   - **相关查询 CSV（如使用了下载按钮）**：附 CSV 文件路径 + TOP 5 相关查询（含热度值）+ RISING 5 相关查询（含飙升标签），用于发现长尾内容机会和负面事件信号
   - 首页竞品：附 Google 搜索 URL + 各竞品域名
   - 候选词来源：附 YouTube/SteamDB 页面 URL
   - **SEMrush 数据（首选必查 KD 数据源，必填）**：附 SEMrush 中文版 URL（含 `&db=us`）+ 主词 KD% / 美国搜索量 / 全球搜索量 / 意图 / 5 个细分词 KD / 5 个问题型长尾词 KD / 聚类群组
   - **Ubersuggest 数据（验证必查，必填）**：附 Ubersuggest URL（locId=2840）+ 主词 Volume / SD / 22 个细分词 Volume·SD·CPC，用于与 SEMrush KD% 对照难度区间
   - **SimilarWeb Pro 数据（可选补充）**：附 SimilarWeb Pro 关键词生成器 URL + 28天搜索量 / KD / 领先者列，仅在已登录 Pro 且需补充竞争格局时提供；无 Pro 账号时跳过并在"数据获取受阻项"说明
3. **填好的判断表**（横向5列格式：候选词作列，游戏名/Trends趋势/KD难度（SEMrush KD% 首选 + Ubersuggest SD 验证）/细分关键词数量/首页竞争难度/做不做 作行）
4. **推荐的主词及推荐理由**（对照 4 条选择标准逐条说明）
5. **若同一次 Trends 查询内 GPTs 平均值异常低**（如<20），明确提示该查询相对基准不可靠，需换基准词或换时间范围重测
6. **若所有词都不达标**，如实说明并建议更换候选池（如改从 SteamDB 已上线热销游戏捞词，而非 YouTube 预告片）
7. **数据获取受阻项**单独列出，说明原因与降级方案，不混入判断表。尤其要主动检出 **SEMrush 登录态失效**（返回登录页 / "Something went wrong" / 全 n/a，而非有效 KD%）：一旦失效立即降级 Ubersuggest 并标注「KD 以 Ubersuggest SD 为准」，不得留空或沿用无效值
8. **低 KD 机会词清单**（来自 SEMrush 首屏细分词 + 问题型长尾词 + Ubersuggest 22 细分词 + **Google Trends 相关查询 CSV 中的 RISING 长尾词**，KD ≤ 30 的细分词单列，标注 Volume、意图类型，作为建站内容切入点；优先列直接反映用户搜索意图的问题型长尾词）

