打开 Search Console 的页面索引报告,经常会看到一类状态:重复网页,Google 选择的规范网页与用户指定的不同。它不像 404 那样一眼就是故障,也不像 noindex 那样明确表示拒绝,很多站长看到就急着改代码,其实先要弄清楚它在说什么。
这个状态在说什么
页面被正常抓取和处理过,内容本身没有硬伤,只是 Google 认为站点里还存在另一个地址,和它内容几乎一样,于是从这一组里挑了一个作为代表放进索引,而挑中的那个并不是你在 canonical 里指定的那个。
有两点要分清:页面不是被拒绝收录,而是被合并进了同一组;被选中的那个地址仍然在索引里,只是代表权不在你指定的地址上。所以它不等于“没收录”,更接近“收录在别的地址上”。
常见的触发场景
- 商品筛选、排序、分页参数生成了大量高度相似的页面,canonical 都指向主商品页,Google 却选了其中一个参数页做代表。
- 同一篇内容在多个栏目下都有入口,各处 canonical 各写各的,互相冲突。
- 移动端和桌面端分属不同域名,两边给出的代表地址不一致。
- canonical 指向的地址本身返回 404、发生跳转或带 noindex,Google 只能自己另选一个。
- 内链、sitemap 和 canonical 三处给出的代表地址不一样,信号互相打架。
- 内容经过改写但差异很小,被算法判定为近似副本,聚类时换了你没预料到的那个。
先判断要不要处理
并不是每一条这样的提示都需要动手。判断标准其实很简单:Google 选中的那个页面,是不是你也认可的代表地址。
- 如果它选中的正是你希望被收录的地址,这条状态可以先放着,只是报告文字不好看。
- 如果它选中的是带参数、带追踪码、已经下线的地址,或者选中的页面内容会随时间大幅变化,那就值得收敛。
- 如果同一组里有几十上百个 URL 反复互换代表权,通常说明站内信号混乱,需要系统性处理,而不是逐个页面打补丁。
想收敛的话,按这个顺序做
- 先确定唯一代表地址。从用户和业务角度选一个长期稳定的 URL,不要今天指向 A、明天改成 B。
- 让三处信号一致。页面的 canonical、站内链接的指向、sitemap 里出现的地址,都写成同一个 URL,尽量用绝对地址、统一协议和域名写法,去掉无意义的参数。
- 检查代表地址是否健康。目标页返回 200,不处于跳转链中间,也没有被 robots.txt 挡住或被 noindex 标记。
- 处理内容近乎相同的页面。能合并的合并,该 301 的做 301;只是参数不同、主体内容相同的,用 canonical 指向主地址即可,不必全部重定向。
- 减少无效入口。站内搜索结果页、标签聚合、自动生成的分类列表往往批量制造近似页面,先判断这些入口是否真的需要被爬。
改完之后看什么
这类调整不会立刻见效。Google 需要重新抓取相关页面,再重新做一次聚类判断,观察周期通常以周为单位。改完后重点看三件事:报告里这类状态的数量是否下降;你指定的代表地址是否开始出现在索引记录里;搜索结果中的落地页是否逐步统一到那个地址。
如果只是数量小幅波动,且没有落到明显错误的地址上,可以先记录再观察,不必每次变化都去动代码。频繁改动 canonical 反而会让信号更不稳定。
收录相关的多数状态是“信号问题”而不是“开关问题”。canonical、内链、sitemap 给出的说法越一致,Google 越不需要替你做决定。