同一篇文章在搜索结果里出现两条,点开内容几乎一样,只是 URL 一个带斜杠一个不带,或者大小写不同。这类情况在收录核对里很常见。处理的关键不是急着提交删除,而是先确认服务端和站内链接有没有把各种写法导向同一个规范地址。
先确认现象:是索引版本重复,还是只有抓取记录重复
日志里出现多种 URL 写法,并不等于它们都被收录。蜘蛛可能只是试探性抓取,随后按 301 跳到规范地址。先分清这两件事,能避免做多余的清理工作。
- 抓取日志按路径分组统计状态码:200 与 301 的比例大概是多少,非规范写法是不是稳定跳转。
- 搜索结果的呈现只能作为参考,site 指令或标题搜索看到多个版本,不等于索引里真的存了多份。
- 用 URL 检查类工具看“用户声明的规范网址”和“系统选择的规范网址”是否一致,这是最直接的判断依据。
常见的四类变体来源
- 协议:http 与 https 同时可访问,且没有强制跳转。
- 主机名:带 www 与不带 www 各自返回 200。
- 路径末尾斜杠:/a 和 /a/ 都能打开同一份内容。
- 大小写与编码:/Page 与 /page、中文路径未编码与已编码的写法混用。
需要特别留意大小写:Linux 环境下路径区分大小写,/Page 与 /page 是两个不同文件;而 Windows 或部分 IIS 环境默认不区分。同一个站点在不同服务器或 CDN 节点上,表现可能不一致。
处理顺序:先服务端归一,再统一站内引用
- 确定唯一规范形态。结合已有的外部链接、站点地图里的写法、历史流量入口来选,不要中途反复换。
- 服务端做 301。把非规范变体统一 301 到规范地址,规则尽量放在反向代理或 CDN 之前一层,同时确认没有形成 A→B→C 的跳转链。
- 统一站内引用。导航、面包屑、列表页、分页、相关推荐、文章正文里的内链,都改成规范写法。内链是站内最常见的变体来源。
- 站点地图只放规范 URL。不要同时提交带斜杠和不带斜杠两种,否则等于自己制造歧义。
- canonical 自指。规范页面对自己声明 canonical;暂时无法做 301 的变体页,可以先用 canonical 指向规范页作为过渡。
- 处理外部引用。能联系到的合作方和旧稿内链尽量改,改不了的靠 301 慢慢吸收。
核对时容易踩的三个坑
- 只依赖 canonical。canonical 是提示性信号,服务端跳转更明确,两者配合才稳。
- 缓存键不分大小写。CDN 的缓存策略可能让 301 规则失效,或者直接返回了缓存内容,核对时要绕开缓存验证一次。
- 用 302 顶替 301。临时跳转传递的规范信号弱,链条一长,蜘蛛容易停在中途不再跟进。
索引版本的合并需要时间。处理完后先看日志里非规范写法的状态码是否稳定为 301,再去核对索引报表,顺序反了会得出错误结论。
处理完之后看什么
可以关注三类变化:非规范 URL 的抓取量是否下降;规范 URL 的抓取和展现是否更集中;索引覆盖里“重复网页,系统选择的规范网页与用户声明不同”这类状态是否减少。这些指标通常滞后,看到趋势比看到单日数字更有意义。
URL 归一属于基础工程,一次做对,后续再做收录核对时会少很多要排查的分支。