六百个关键词映射到十二个落地页之后:搜索意图聚类与内容规划的数据对照
去年 10 月接手一个家居类电商站,站龄四年,SKU 一千二百多个。接手前的情况很典型:产品团队按「一个产品一个页面」的逻辑建站,每个产品页都想把「产品名」「产品名+价格」「产品名+怎么样」「买什么牌子好」这些词全部扛下来。结果 Google Search Console(以下简称 GSC)导出的数据显示,全站有搜索曝光的查询词 617 个,进入 Top10 的只有 43 个,自然点击日均 210 次左右,两年基本没动过。
这篇文章记录的是接下来 8 周做的事:把 600 多个词按搜索意图(Search Intent)聚类,映射到 12 个重新规划的落地页,改造完成前后各 8 周的数据对照,以及中间踩的坑。所有数据来自这一个站点的 GSC 后台,属于单站观测,不构成任何统计意义上的普适结论。
改造前的问题:页面在跟自己打架
先看症状。GSC 里挑几个典型的查询词就能看出问题:

- 「实木餐桌」——曝光排在第 1 的是
/product/oak-table-02,第 7 位是/product/walnut-table-05,第 12 位是分类页/category/dining-table; - 「实木餐桌什么牌子好」——排第 9 的还是那个 oak-table-02 产品页,页面标题里压根没有「牌子」两个字;
- 「胡桃木和橡木餐桌哪个好」——没有对应页面,这个查询的曝光被一个 oak-table-02 的长尾变体抢走了。
这就是关键词自相蚕食(Keyword Cannibalization)的现场:多个页面竞争语义高度重叠的查询,搜索引擎不知道该把权重给谁,于是把每个页面都排得半吊子。更糟的是,像「什么牌子好」「哪个好」这类查询背后是选购决策阶段的用户,拿一个产品详情页去接,用户进来发现内容对不上,跳出率长期在 78% 上下。
把 617 个查询词粗略归一遍类,问题更清楚:
| 查询类型举例 | 词数占比 | 当时由哪类页面接住 | 意图匹配度 |
|---|---|---|---|
| 品类词(实木餐桌、橡木书架) | 31% | 产品详情页(单个 SKU) | 偏低 |
| 对比/选购词(XX 和 XX 哪个好、什么牌子好) | 24% | 产品详情页或无页面 | 基本不匹配 |
| 长尾科普词(实木餐桌保养、木材含水率) | 27% | 无页面或新闻碎篇 | 基本不匹配 |
| 品牌导航词(站名+产品名) | 12% | 首页、详情页混着排 | 匹配但被稀释 |
| 活动促销词(XX 折扣、XX 优惠券) | 6% | 临时活动页(已下线) | 页面 404 |
结论很直白:不是内容不够多,是内容和查询的意图对不上,多出来的页面还在互相分权。
搜索意图:聚类的轴心
搜索意图一般分四类,这个分类体系在 Google 官方「创建实用内容」的文档里有对应表述,我在这里按本站情况做了落地定义:
- 信息型(Informational):用户想了解知识。「实木地板怎么保养」「木材含水率多少合适」。
- 商业调查型(Commercial):用户在比较、在选。「橡木和胡桃木哪个好」「实木餐桌什么牌子好」。
- 交易型(Transactional):用户准备买。「实木餐桌 价格」「橡木餐桌 购买」「餐桌 优惠券」。
- 导航型(Navigational):用户在找特定页面。「XX家居 官网」「XX旗舰店」。
分完类之后做什么?为每一类意图建专门的落地页,让「查询意图—页面类型」一一对应。 品类词配品类聚合页(聚合多个 SKU,能承载比较),对比词配选购指南长文,科普词配主题科普文,交易词配活动和品类页。原来那种一个产品页硬扛五类词的做法,等于让一个销售顾问同时当客服、讲师和收银员,搜索引擎看不懂,用户也看不懂。
第一步:从 GSC 把关键词数据拿全
GSC 界面手动导出也能用(「效果」报告里选 16 个月范围,右上角导出 CSV),但 600 多个词要做多轮迭代分类,我直接走了 API。用的是 Python 的 searchconsole 库(pip install searchconsole),首次使用需要在 Google Cloud 控制台启用 Search Console API 并做 OAuth 授权,GSC 后台添加对应服务账号邮箱为具备完全权限的用户。
# 依赖:pip install searchconsole,并完成 OAuth 客户端配置
import searchconsole
import pandas as pd
# 登录(首次会弹出浏览器授权,token 缓存在本地)
account = searchconsole.authenticate(client_config="client_secret.json")
# 指定 GSC 资源(site url 要和后台里登记的完全一致)
site = account["sc-domain:example-home.com"]
# 拉取近 16 个月的查询维度数据,一次请求最多 25000 行,词多时需分页
report = site.query.range("start=2025-06-01", "end=2026-09-30") \
.dimension("query", "page") \
.get()
# 转成 DataFrame 方便后续处理;行=查询词+落地页组合
# keys[0] 是查询词、keys[1] 是落地页,维度顺序和请求时一致
rows = [{
"query": r["keys"][0], # 查询词
"page": r["keys"][1], # 该词当时命中的落地页 URL
"impressions": r["impressions"], # 曝光次数
"clicks": r["clicks"], # 点击次数
"position": r["position"], # 平均排名
} for r in report]
df = pd.DataFrame(rows)
# 聚合到词级别:同一个词可能命中过多个页面,这正是蚕食证据
word_df = df.groupby("query").agg(
pages=("page", "nunique"), # 该词命中过几个不同页面
impressions=("impressions", "sum"),
clicks=("clicks", "sum"),
best_pos=("position", "min"), # 历史最好排名
)
# 只保留曝光达到一定阈值的词,太小的词噪音大于信号
# 阈值 20 是经验值:低于它的词排名波动大,聚类意义有限
word_df = word_df[word_df["impressions"] >= 20]
拉出来的数据先做一个自查:pages > 1 的词有多少个。这个站是 217 个——三分之一的词,多个页面在同一个结果页里同台竞争。这份「蚕食词清单」后面会直接决定哪些页面要合并或降权。
顺带说明:百度搜索资源平台(ziyuan.baidu.com)同样支持关键词导出(流量与关键词工具),国内站建议两边都拉,用百度的数据交叉验证意图分类的中文分词边界。
第二步:意图分类的半自动做法
617 个词纯人工分类大概要一个工作日,而且第二轮复核时标准会漂移。我的做法是 n-gram 规则打初稿,人工复核兜底,全程约 4 小时。
# 规则表写成「意图 + 关键词列表」的二元组,顺序即优先级
# 规则来源:把词表按尾部 bigram 统计后人工圈出的高频意图词
INTENT_RULES = [
("transactional", ["价格", "多少钱", "优惠券", "折扣", "购买", "下单", "旗舰店"]),
("commercial", ["哪个好", "什么牌子", "对比", "推荐", "选购", "区别", "和什么"]),
("informational", ["怎么", "如何", "为什么", "保养", "清洁", "安装", "含水率", "是什么"]),
("navigational", ["官网", "旗舰店首页", "售后电话", "门店"]),
]
def classify(query: str) -> str:
# 词边界处理:中文没有空格分词,直接做子串匹配即可覆盖绝大多数场景
# 不引入 jieba 的原因:意图词大多是 2-4 字的完整短语,切词反而增加误判
for intent, keywords in INTENT_RULES:
if any(kw in query for kw in keywords):
return intent
# 未命中任何规则的词,标记为 unknown,留给人工批次
# unknown 词要单独导出,不能静默丢弃
return "unknown"
word_df["intent"] = [classify(q) for q in word_df.index]
# 逐词打标后统计规则覆盖率,低于 60% 就要回头补规则
# 规则覆盖不到的词单独导出,人工分批处理
unknown = word_df[word_df["intent"] == "unknown"]
print(f"规则命中率:{1 - len(unknown) / len(word_df):.0%}")
这个站的规则命中率是 71%,剩下 179 个 unknown 词里大多是「白蜡木餐桌 1.6 米」这类「材质+品类+规格」的组合词。人工处理时我补了一条决策规则:含具体规格、价格敏感词的归交易型,含「哪种/什么样」的归商业型,纯材质+品类的默认归品类商业型。
人工复核抽查了 80 个词(约 13%),分类一致率 88%,不一致的集中在「实木餐桌推荐」——用户可能想要测评文章,也可能想要商品列表。这类词最后按「一分为二」处理:指南页和品类页都覆盖,靠内链锚文本告诉搜索引擎各自的分工。
第三步:600 词映射到 12 个落地页
分类完成后做映射设计。目标不是为每个词建一个页面,而是把意图相同的词聚成一簇,每簇对应一个页面。最终 12 个落地页的结构如下:
| 页面编号 | 页面类型 | 承接意图 | 聚簇词数 | URL 规划 |
|---|---|---|---|---|
| L1 | 品类聚合页:餐桌 | 商业+交易 | 88 | /collections/dining-table |
| L2 | 品类聚合页:书架/柜类 | 商业+交易 | 74 | /collections/shelving |
| L3 | 品类聚合页:床品木家具 | 商业+交易 | 61 | /collections/bedroom |
| L4 | 对比指南:橡木 vs 胡桃木 | 商业 | 39 | /guides/oak-vs-walnut |
| L5 | 对比指南:实木 vs 板材 | 商业 | 47 | /guides/solid-vs-panel |
| L6 | 选购指南:餐桌怎么选尺寸 | 商业 | 33 | /guides/table-size-buying |
| L7 | 选购指南:小户型家具清单 | 商业 | 28 | /guides/small-space-list |
| L8 | 科普长文:实木保养大全 | 信息型 | 96 | /academy/wood-care |
| L9 | 科普长文:木材知识百科 | 信息型 | 72 | /academy/wood-basics |
| L10 | 科普长文:家具甲醛与环保 | 信息型 | 55 | /academy/formaldehyde |
| L11 | 活动页:促销聚合 | 交易 | 26 | /promo/current |
| L12 | 品牌导航页(原首页改版) | 导航 | 19 | / |
映射流程用一张图说清楚:
flowchart LR
A["GSC 导出 617 个查询词"] --> B["去重聚合到词级 + 统计蚕食词"]
B --> C{"意图分类<br/>n-gram 规则"}
C -->|"71% 自动命中"| D["四类意图标签"]
C -->|"29% unknown"| E["人工分批复核"]
E --> D
D --> F["同意图词聚簇<br/>按材质/品类/场景切分"]
F --> G["设计 12 个落地页<br/>每页绑定主词+变体词组"]
G --> H["301/规范标签收编旧页面<br/>内链重布"]
H --> I["上线,按周跟踪 GSC 数据"]
三个决策点值得展开说:
一是旧页面怎么处理。 品类词原来排在单个产品页上,改造后这些产品页保留但从「扛词」转为「被聚合」:品类聚合页收编 20-40 个 SKU,产品页的标题改成纯产品名(去掉之前硬塞的「价格、怎么样」后缀),权重通过内链向上传递。两个内容完全重复的新闻碎篇直接 301 到对应科普文。
二是页面模板按意图定骨架。 品类聚合页首屏是筛选器和 SKU 网格,下方带 300 字左右的品类选购要点;对比指南页固定「结论先行表格 + 分维度展开 + 常见问题」三段式;科普长文按问答结构组织小标题(H2/H3 直接用查询词改写)。模板即意图的具象化,搜索引擎判断内容类型很大程度看页面结构。
三是发布节奏。 12 个页面分三批上线:第 2 周上 3 个品类聚合页,第 4 周上 4 个指南页,第 6 周上 3 篇科普和活动页,第 7 周完成旧页面收编。一次全量上线监控不了归因,分批能看清每类页面的生效周期。
第四步:内链把 12 个页面连成矩阵
页面多了不等于权重能流动,内链设计要主动。改造后的内链结构如下:
flowchart TD
HOME["首页 L12(品牌导航+全站入口)"] --> L1["L1 餐桌品类页"]
HOME --> L2["L2 书架柜类品类页"]
HOME --> L3["L3 床品木家具品类页"]
L1 -->|"锚文本:橡木和胡桃木哪个好"| L4["L4 对比指南"]
L1 -->|"锚文本:餐桌尺寸选购"| L6["L6 选购指南"]
L1 -->|"锚文本:实木保养方法"| L8["L8 科普长文"]
L4 -->|"每个对比结论处带商品卡片"| L1
L5 -->|"木材科普疑问回链"| L9["L9 木材知识百科"]
L8 -->|"保养品推荐内链"| L11["L11 活动页"]
L9 -->|"材质原理支撑对比结论"| L4
L1 & L2 & L3 --> SKU["产品详情页 ×1200+<br/>(权重末端,不再单独扛词)"]
SKU -.->|"面包屑回链"| L1
三条内链规则:
- 品类页 → 指南/科普:用「XX哪个好」这类查询词做锚文本,把商业流量引向内容页,同时告诉搜索引擎该页承接哪类查询。
- 指南/科普 → 品类页:在决策结论处放商品入口,用户读完对比就该去挑货,转化路径顺理成章。
- 产品页 → 品类页(面包屑)+ 产品页之间零互链:产品页降级为权重末梢,不再互相竞争关键词。
上线前用爬虫工具把全站内链数跑了一遍,改造前指向品类页的内链占比只有 4%,改造后到 19%。
机制剖析:搜索引擎为什么奖励意图匹配的专门页面
这套做法有效,根子在排序引擎评估页面的方式上。现代搜索引擎的排序不只看关键词命中,还要评估查询意图、页面内容、落地页形态三者的一致性。
机制上可以拆成两层:
第一层是意图识别与结果多样性。 搜索引擎对查询词先做意图分类(Google 论文里表述为 interpreting queries,百度的需求分析同理),然后在候选结果里做意图多样性调度——一个「哪个好」的查询,结果页会倾向给出对比/评测型内容而不是商品列表页。这意味着如果全站只有商品列表页,商业调查型查询下你的候选内容天然低分,排不上去不是因为权重不够,而是页面类型根本不在该意图的候选池里。
第二层是 cannibalization 的权重稀释。 多个页面竞争同一查询时,链接权重、用户行为信号(点击率、停留、跳出)被分散;搜索引擎在相似页面间做选择时缺乏明确信号,只能各给一个平庸的排名。规范标签(Canonical)能声明主从关系,但如果多个页面内容形态根本不同却共享同一批关键词,声明反而显得自相矛盾。收编的核心是让每个查询簇有且只有一个明确的应答页面,其他页面通过内链和锚文本表态支持。(这里特意绕开了那个容易误写的英文——就是「多个页面抢同一个词」这回事,机制上叫自相蚕食。)
第三层信号是行为反馈。 改造后对比/选购类页面的平均停留时间从 41 秒升到 96 秒,跳出率从 78% 降到 54%。这类信号进入排序模型的反馈环,排名的爬升会比内容本身的改动滞后 2-4 周——这也是为什么数据对照必须留足 8 周观察期,第 2 周看到排名没动就下结论,大概率会误杀正确方案。
8 周数据对照
统计口径:改造前 8 周(第 0 周 - 第 7 周)与改造后 8 周(第 8 周 - 第 15 周),数据全部来自 GSC「效果」报告,仅统计自然搜索(Web 渠道)。单站观测,仅供参考。
| 指标 | 改造前 8 周均值 | 改造后 8 周均值 | 变化 |
|---|---|---|---|
| 覆盖关键词数(有曝光的查询词) | 617 | 842 | +36% |
| 进入 Top10 的词数 | 43 | 96 | +123% |
| 自然点击(日均) | 210 | 437 | +108% |
| 全站平均跳出率 | 74% | 58% | -16 个百分点 |
| 有曝光查询中命中多页面(蚕食)的词数 | 217 | 31 | -86% |
几个过程中的观察:
- 第 9-10 周排名有短暂波动。三个品类聚合页上线后,原来的产品页排名集体下滑了 3-5 位,这是权重迁移期的正常现象,第 11 周开始回升。如果当时中止改造回滚,前面的功夫就白费了。
- 科普长文的生效周期明显长于指南页。L8 保养大全到第 14 周才稳定进 Top10,但带进来的 12 个长尾词都是信息型, bounce 低,成为活动页转化的上游入口。
- 对「一个产品页一个词」的执念是最难改的,产品团队最初反对把产品页标题改短,理由是「页面看起来不营销了」。第 12 周产品页整体转化率提升 21%(点击质量变高),这个争论才结束。
误区澄清与延伸
三个常见误区,都是这次踩过或差点踩的:
- 聚类不是分词游戏。 把 600 个词切成 600 个页面是老路,聚簇的标准是「同一意图+同一应答能力」,一个簇里 50 个词共享一个页面才对。
- 意图分类会漏掉混合意图。 「实木餐桌」这个词,搜索引擎自己都拿不准用户是看还是买,结果页是列表+文章混合形态。这类词的落地页要做成「聚合为主、内嵌选购模块」,别硬归一类。
- 数据对照要留够时间窗。 排序模型的反馈周期以周为单位,短周期对比会把正常的波动当成失败。
趋势上多说一句:这套「意图簇—落地页—内链矩阵」的内容结构,对 AI 引擎同样友好——主题边界清晰的页面簇更便于生成式引擎理解站点在讲什么、该引用哪一页(Generative Engine Optimization, GEO 的基础正是这种结构化组织),但那是另一个话题,这里不展开。
如果你也在做类似的改造,欢迎在评论区聊你遇到的蚕食词规模和分批上线的节奏选择。
参考与延伸
- Google 搜索中心:创建实用、可靠、以用户为中心的内容 —— https://developers.google.com/search/docs/fundamentals/creating-helpful-content
- Google 搜索中心:Search Console 效果报告(关键词与落地页数据导出)—— https://support.google.com/webmasters/answer/7546158
- 百度搜索资源平台:搜索学院(收录、排序与需求分析官方文档)—— https://ziyuan.baidu.com/college/index
SEO、搜索意图、关键词聚类、落地页规划、关键词自相蚕食、内链优化、Google Search Console