先分清:重复是真重复,还是看起来像
站内出现多个可访问的相似 URL,不等于都要清理。先按重复程度分组,再决定动作,能避免把本来正常的页面误伤。
- 完全重复:同一段正文,通过不同 URL 都能完整打开,例如详情页的打印版、AMP 版、带会话或跟踪参数的版本。
- 近似重复:正文一致,但标题、面包屑、侧栏推荐不同。最典型的是列表页把摘要换成了全文输出。
- 模板相似:不同内容套同一模板,页头页脚一致但正文各不相同。这类一般不算重复内容,不需要处理。
真正需要收口的是前两类。第三类如果动了,反而可能切断正常的页面发现路径。
常见的重复来源
- 列表页、标签页、聚合页直接输出全文,导致同一篇文章有多个完整版本。
- 打印版、移动版、纯文本版等并存的旧模板地址。
- 筛选、排序、分页参数被组合出大量可访问 URL。
- 推广链接里的跟踪参数,让同一页面带上不同后缀。
- 测试域名、旧域名、http 与 https、带与不带 www 同时可访问。
- 商品或内容的多个分类路径,都能到达同一个详情页。
这些来源里,有些可以在模板层一次性解决,有些只能逐类收口,成本差别很大,值得先排序。
处理顺序:先定主版本,再给信号
- 确定主版本。选一个结构稳定、以后不会再改的 URL 作为规范版本,其余都算副本。
- 统一站内链接。导航、面包屑、内链、分页链接都指向主版本。内链是最直接的信号,比标签更早生效。
- 加 canonical。让副本页面在页面级声明主版本地址。这一步是建议,不是命令。
- 收口次要版本。对确实不需要进索引的版本,用 noindex 标记;前提是这些页面允许被抓取,否则标记读不到。
- 清理 sitemap。站点地图只保留主版本,不要把副本一并提交。
canonical 是提示而不是指令。搜索引擎仍可能根据自己的判断选择另一版作为展示版本,所以不要把它当成删除按钮,也不要用它来掩盖内容质量问题。
几个容易做错的点
- noindex 页面被 robots.txt 挡住。抓取被拦后,页面上的 noindex 也无法被读取,两边信号会互相抵消。
- 用 canonical 处理站外转载。跨域场景下它只能表达意愿,最终以对方是否配合为准。
- 分页页全部 canonical 到第一页。这可能让后续列表里的新 URL 更晚被发现,通常不是好选择。
- 只改模板不改数据。旧参数地址仍在服务端返回 200,抓取时照样能访问到完整内容。
怎么复查有没有收住
- 在站点后台的页面报告里关注“重复网页,搜索引擎选择的规范网页与用户指定的不同”这一类提示,它是判断信号是否被采纳的直接入口。
- 用站点查询粗看副本地址是否还留在索引里,注意查询结果只是粗略样本,不适合当精确计数。
- 看服务器日志,确认爬虫的抓取重心是否已经转移到主版本。
- 索引更新存在延迟,改动后给自己留出数周的观察窗口,中途反复改信号只会让判断更乱。
小结
站内重复的处理逻辑并不复杂:先按重复程度分组,选出唯一的主版本,用内链把权重和发现路径集中过去,再用 canonical 和 noindex 做补充说明。真正容易出问题的地方,往往是信号之间互相打架,以及改完之后没有复查究竟哪一版留在了索引里。