本文约 4,085 字,预计阅读 11 分钟。文中命令与配置均经过实测,可直接参考执行。
引言:写得很详细,排名却死活上不去
一篇 3000 字的教程,结构完整、截图齐全,关键词也出现在标题和 H2 里,但半年过去排名一直在第 15 名左右晃。打开 Google 搜这个词,前 10 名全是电商分类页和测评列表,没有一篇教程——这就是典型的意图错配:用户想「买」,你给他「学」。再怎么优化内容深度都没用,因为 Google 已经通过大量用户行为判断出,搜这个词的人想要的是商品对比和购买入口。
搜索意图(search intent)判断是关键词研究之后、动笔之前必须做的一步,也是最容易被跳过的一步。Google 的质量评估指南把查询按目的分为 Know(求知)、Do(操作)、Website(找站点)、Visit-in-person(到店)几大类,实操中通常简化为信息型、导航型、商业调查型、交易型四类。判断意图最可靠的依据不是关键词本身,而是当前结果页的内容形态——Google 已经用 billions 次用户行为替你做了分类。
原理分析:结果页特征如何暴露意图
| SERP 特征 | 透露的意图 | 应该写的内容形态 |
|---|---|---|
| 精选摘要 / 「大家也在问」 | 信息型,要直接答案 | 问题式 H2 + 40–60 字直答 + 展开 |
| 大量教程/博客 | 信息型 | 深度教程、步骤拆解 |
| 视频结果占比高 | 操作型,要演示 | 视频 + 图文互补 |
| 测评、对比、”best X” 标题 | 商业调查型 | 横向对比、参数表格、优缺点 |
| 购物结果、商品卡片、价格 | 交易型 | 分类页/产品页,参数、库存、价格 |
| 本地商家包 | 到店型 | 落地页 + 地址、营业时间、地图 |
| 论坛(Reddit/Quora)排名靠前 | 经验型,官方内容缺位 | 真实体验、案例、避坑 |
判断时不要只看一个特征,要看组合。比如同时出现购物结果和大量测评,说明这个词处在「想买但还在比」的阶段,最合适的是对比测评页,而不是产品页也不是教程。再比如论坛内容排进前 5,通常说明现有商业内容质量不足或用户想听真实经历,这时候一篇有具体数据和个人体验的文章反而容易上去。
还有一个实用技巧:看结果的时效性。如果前 10 名的文章都标着最近更新日期,说明这个话题需要持续维护;如果全是五年前的老帖还排着,说明内容缺口明显,机会很大。
保姆级实操
步骤 1:手动搜一遍候选词,记录结果页特征。 用无痕窗口、目标国家 IP(或用 Google 的 gl/hl 参数),逐条记录:前 10 名的页面类型、是否有购物结果、是否有视频、是否有 PAA、是否有论坛。
步骤 2:把意图标签批量打到自己的词库上。 手工判断几百条太慢,先用规则做初筛,再人工复核:
// intent-classify.mjs:给 Search Console 导出的查询批量打意图标签
import { readFileSync } from 'node:fs';
const lines = readFileSync('gsc_queries.csv', 'utf8').trim().split('\n').slice(1);
const rules = [
['transactional', /(buy|price|cost|cheap|order|购买|价格|多少钱|报价|下载)/i],
['commercial', /(best|vs|versus|review|alternative|compare|对比|评测|推荐|哪个好)/i],
['navigational', /(login|dashboard|official|官网|登录|后台|控制台)/i],
['informational', /(how|what|why|tutorial|guide|example|怎么|如何|是什么|教程|区别)/i],
];
const stat = {};
for (const line of lines) {
const [query, clicks, impressions] = line.split(',');
if (!query) continue;
const hit = rules.find(([, re]) => re.test(query));
const intent = hit ? hit[0] : 'unknown';
stat[intent] ??= { count: 0, impressions: 0, clicks: 0 };
stat[intent].count += 1;
stat[intent].impressions += Number(impressions) || 0;
stat[intent].clicks += Number(clicks) || 0;
}
console.table(stat);
步骤 3:把意图映射到内容模板。 这是把判断变成产出的关键一步,可以用一份配置固化下来:
{
"informational": {
"template": "教程/指南",
"title_pattern": "如何{动作}:{对象}的完整步骤",
"must_have": ["问题式 H2", "40-60 字直答", "步骤截图", "常见踩坑"],
"cta": "订阅/内链到下一环节"
},
"commercial": {
"template": "对比测评",
"title_pattern": "{A} vs {B}:{维度}对比评测({年份})",
"must_have": ["参数对比表", "实测数据", "适用人群", "优缺点清单"],
"cta": "查看报价/试用"
},
"transactional": {
"template": "产品页/分类页",
"title_pattern": "{产品名} — {核心卖点} | {品牌}",
"must_have": ["价格", "库存状态", "参数表", "配送与退换"],
"cta": "加入购物车"
},
"navigational": {
"template": "登录/文档入口",
"title_pattern": "{产品名} 登录与文档中心",
"must_have": ["入口链接", "常见问题", "联系支持"],
"cta": "进入后台"
}
}
步骤 4:检查现有页面是否与意图匹配。 逐个打开排名在 8–20 位的页面,看它的形态与该词的 SERP 主流形态是否一致。不一致的话,改标题与结构调整往往比加字数更有效。
步骤 5:一个关键词只对应一个页面。 同一意图的多个词应该合并到一篇内容里,不同意图的同名词(比如「X 是什么」和「X 价格」)必须拆成两篇,否则 Google 无法判断该用哪个。
步骤 6:复核与迭代。 发布 4 周后在 GSC 里看展现与排名变化。如果展现涨了但点击率很低,通常是标题/描述与意图不匹配;如果展现本身没涨,说明形态仍然不对。
常见踩坑
- 按字面猜意图,看到「教程」就写教程,不看 SERP 实际结果。
- 把商业调查词做成产品页,用户还在比较阶段,跳出率极高。
- 不同意图的词塞进同一篇,页面定位模糊,两个词都排不上去。
- 忽略地域差异,同一个词在美国是交易型,在德国可能是信息型。
- 只看头部结果不看排序结构,比如前 3 名是教程、后 7 名是电商,说明意图正在迁移。
- 案例:某站为「best wordpress caching plugin」写了一篇 4000 字的长教程,半年卡在第 14 名。分析 SERP 后发现前 10 名全是对比测评,且都带参数表格和实测数据。改成表格化对比 + 实测 TTFB 数据后,六周进入第 6 名,点击率从 0.8% 涨到 3.4%。
- 用中文思维套英文搜索习惯,英文用户更常直接搜 “how to X” 短句,中文用户常搜名词组合,词库要分别处理,这一点在 长尾关键词挖掘 里会展开。
总结
意图判断的唯一可靠依据是结果页本身,不是关键词的字面。执行流程:手动搜一遍记录 SERP 特征 → 用规则脚本给词库批量打标签 → 按标签套用对应的内容模板与 CTA → 核对现有页面形态是否一致 → 发布后看展现与点击率分别的变化。判断标准是「你的页面形态是否属于该 SERP 的主流形态」,不属于就换形态,而不是加字数。做完这一步,词库才算真正可用,后续的主题组织参考 主题集群建设,词本身的筛选参考 关键词研究工具组合。
