research
MAmattpocock/skills288k10,178 new stars in the last 7 days
完整调研并确定 SEO 机会:从产品理解、领域词表拆解、关键词矩阵扩展、Bing 真实热度验证、竞品发现、实时 SERP 抓取,到头部页面的搜索引擎层、用户层和质量层拆解。需要查热词、验证搜索量、判断搜索意图、研究竞品页面、寻找信息增益缺口或决定应该做什么 SEO 页面时使用。
先确认用户真的在搜索什么,再从热词下真实获得排名的页面学习页面形态与内容方法。不要从预想的竞品清单反推关键词;关键词由产品、用户任务、场景和真实搜索数据共同产生,竞品用于学习页面怎么做。
本 Collector 只产出需求、SERP 和竞品页面证据。页面设计与实现交给 $create-seo-page,上线后的效果观测交给 $review-seo-performance。
读取产品代码、文档、公开页面、当前转化路径、客户语言、站内搜索、支持记录和已有增长证据。先写清:
对无法从产品材料确认的用户问题和值得验证的价值保持开放,不要把产品功能列表直接改写成关键词列表。
七个方向逐一展开,每个方向单独成词表,保持不同具体度的词可以横向比较:
| 方向 | 组词方法 |
|---|---|
| 头部概念 | 领域核心名词、任务名、品类名 |
| 场景复合 | 场景 × 对象、文档、媒介或交付物 |
| 动作与结果 | 场景 × 生成、制作、转换、修复、改进、学习等动作 |
| 竞品词 | 通用品类产品与从 SERP 发现的垂类产品品牌词 |
| 工具词 | 功能点、格式、集成、转换和使用教程 |
| 资源词 | 模板、示例、清单、下载、规范和素材 |
| 问句词 | 怎么做、哪个好、为什么、价格、质量、风险、比较和失败问题 |
竞品词不是只靠事先知道的品牌列表:
品牌词和术语存在多义时必须阅读实时 SERP。把混合意图拆开,不能直接引用混合流量作为产品需求。
需要完整聚合结果时运行随仓库分发的脚本:
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:
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。Impressions 是精确整串匹配的周展现量,是主要比较指标。中文复合词会被严重低估,因此它是需求地板,不是真实总需求。BroadImpressions 是广泛匹配。英文可辅助判断长尾规模;中文几乎不做可靠的包含聚合,不要用它估算中文长尾家族。Date 是每周数据的时间。avgStrict、peakStrict、latestStrict、avgBroad 和 weeks。{"d":[]} 记为 N/A,绝不能写成 0。peakStrict / avgStrict 判断季节性。比值明显升高时,从高峰倒排收录时间,提前发布。默认优先使用 Runtime 已连接的真实浏览器和当前市场、语言及登录态。需要批量、可重复的 JSON 证据时,运行仓库脚本:
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,因此必须检查:
__meta__.degraded 是否包含该词。标为 DEGRADED 的查询不得用于竞争结论。改用正常登录态浏览器重新检查;仍然降级时,记录 SERP 证据不可用,而不是猜测排名结构。
给证据分级:Bing Webmaster 的关键词展现量来自服务端报告;SERP 抓取只是当前会话和当前爬虫视角。两者冲突时不能用抓取失败推翻官方需求数据,必须转入正常登录态复核。
render-pages.mjs 在可见正文不足 500 字符时会标记“疑似被反爬拦截”,Agent 仍需查看截图确认。页面必须分成搜索引擎层、用户层和质量层分析,不能只看标题、摘要或排名 URL。
对普通公开页面可运行:
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 不要追求固定字符数,也不要写“本文介绍、包含、并给出”的目录式句子。找出头部页面如何用一个信息量高的重点提高点击意愿。
需要可重复截图和正文时运行:
node collectors/research-seo-demand/scripts/render-pages.mjs \
<output-directory> <url1> <url2> ...
脚本保存首屏、第二屏和可见正文。逐张查看,不只读取文本。
第一步,从页顶到页尾逐块描述,每个可见区块恰好写一句“这一块展示什么”。
第二步,从五个角度拆解:
| 角度 | 检查问题 |
|---|---|
| 阅读钩子 | 用户为什么停留;数字、免费、预览、社会证明或直接答案怎样出现 |
| 转化钩子 | 页面导向下载、试用、注册、购买、仓库、咨询或其他动作;路径有几条 |
| 信息密度 | 首屏有几个决策单元;页面是即看即选还是需要连续阅读 |
| 用户价值 | 用户不转化也能带走什么文件、方法、结论、比较或工具 |
| 调性 | 目录站、SaaS、开发者工具、社区、课程或媒体内容如何建立信任 |
复用同一批 HTML、截图和正文,不要重新抓取。检查:
| 维度 | 检查内容 |
|---|---|
| 信息增益 | 相比同一 SERP 的其他页面,它有什么独有内容 |
| 数据密度 | 有多少具体数字、原始数据、示例、测试和可验证结果 |
| 引用行为 | 是否连接权威来源、一手材料和原始出处 |
| 实体信号 | 作者、团队、机构、更新时间和可核验身份是否存在 |
| 负面信号 | 首屏广告、堆词、批量同构薄页、无依据主张和重复转化 |
输出“信息增益缺口清单”,至少按以下三类整理:
只有同时满足以下证据才推荐页面:
不得只根据搜索量、摘要或排名 URL 调用 $create-seo-page。每个候选词都必须完成前三到五个相关页面的三层拆解。
按任务选择 Markdown、CSV、JSON 或 HTML,至少包含:
把调研结果写入调用 Model 的 Memory。原始导出、截图、正文和研究报告都是运行产物,不进入 Skill,也不提交到仓库。
MAmattpocock/skills288k10,178 new stars in the last 7 days
AFaffaan-m/ECC278k4,046 new stars in the last 7 days
GAgarrytan/gstack136k883 new stars in the last 7 days
NEnextlevelbuilder/ui-ux-pro-max-skill135k1,864 new stars in the last 7 days
NEnextlevelbuilder/ui-ux-pro-max-skill135k1,864 new stars in the last 7 days
NEnexu-io/open-design101k1,126 new stars in the last 7 days