网站收录

http、www、尾斜杠、大小写:URL 变体太多,索引里会留下几份同样的页面

同一篇内容常常能通过 http 与 https、带 www 与不带 www、带尾斜杠与不带尾斜杠等多个地址打开。URL 不归一,蜘蛛会重复抓取,索引里也可能留下多份相同页面,后续排查收录时数字很容易对不上。这篇梳理常见变体、归一顺序和上线前的自查清单。

网站收录

http、www、尾斜杠、大小写:URL 变体太多,索引里会留下几份同样的页面

同一篇内容,访客从不同地址都能打开:有人从 http 进,有人从 https 进;有人复制的是带 www 的链接,也有人拿到的是不带 www 的;有的地址结尾带斜杠,有的不带。对人来说这些都能看,但站在搜索索引的角度,它们可能是好几个不同的 URL。

常见的 URL 变体有哪些

  • 协议:http://example.com/page 与 https://example.com/page
  • 主机名:example.com 与 www.example.com
  • 尾斜杠:/page 与 /page/
  • 大小写:/Page、/page、/PAGE,在部分服务器上会被当成不同路径
  • 追踪参数:utm_source、utm_medium、fbclid 等,同一个页面能生成无数地址
  • 会话与排序参数:sessionid、sort、filter 之类
  • 路径写法:/category/page 与 /page,或者 ID 与 slug 并存的两套地址

URL 不归一会带来什么

蜘蛛的抓取有配额和节奏。同一份内容对应多个地址,它可能反复抓取这些地址,真正需要更新、需要被发现的页面反而排到后面。索引层面也一样:内容几乎一致时,索引会自己挑一个版本留下,但这个选择未必和你的预期一致。结果就是内链指向的那份可能没被留下,外链积累的那份反而在索引里,之后排查收录问题时很容易对不上。

更麻烦的是统计口径。抓取日志里同一个页面出现多个地址,收录数字看起来涨了,实际有效页面并没有增加,站点地图和站长平台的数据也会互相打架。

先归一 URL,再谈 canonical

遇到重复地址,很多人第一反应是给每份都加 canonical。canonical 有用,但它只是提示,不是命令。更稳的做法是先让站点只暴露一个规范地址,再让 canonical 作为补充。

  1. 定下唯一形式:选 https、选带 www 或不带 www、选带尾斜杠或不带,全站统一,写进开发规范。
  2. 用 301 而不是 302:把旧地址永久跳到规范地址,301 表达的是地址已经换了,302 只是临时跳转,语义不同。
  3. 内链只指向规范地址:导航、面包屑、文章互链、分页链接保持统一,不要一会儿带斜杠一会儿不带。
  4. 站点地图只放规范地址:sitemap 里出现非规范地址,等于又给蜘蛛递了一份副本。
  5. 处理参数页:追踪参数尽量在服务端忽略或重定向;排序、筛选类参数页按是否值得收录分别处理。
canonical 解决的是哪一份是主版本,301 解决的是地址已经换了。两者管的事情不同,别用一个代替另一个。

上线前过一遍这些检查

  • 从 http 访问是否 301 到 https,且路径完整保留
  • www 与非 www 是否只有一个能直接返回 200
  • 带尾斜杠和不带尾斜杠是否只有一种返回 200
  • 页面上所有内链是否都指向规范地址
  • sitemap、RSS、分享按钮里的地址是否统一
  • 服务器是否对大小写敏感,模板生成的链接大小写是否一致
  • 翻页、排序、筛选参数是否会产生大量内容相同的地址

已经乱了怎么办

如果索引里已经存在多份相同内容,先别一次性大改。可以按流量和链接价值分档:有外链、有自然点击的旧地址优先做 301,其余低价值地址逐步收敛。改动后观察一段时间的抓取日志,看旧地址的访问是否下降、规范地址的抓取是否变多。索引替换需要时间,过渡期里不同工具显示的数字可能仍不一致,这属于正常现象,不必反复改动。

URL 归一看着是技术细节,但它决定了蜘蛛把抓取配额花在哪里、索引里最终留下哪一份。把这一步做在前面,后面的收录维护会省很多力气。