网站收录

URL 大小写、末尾斜杠、www 前缀:同一页面的多种写法怎么收口

同一个页面常会因为协议、主机名、末尾斜杠和大小写产生多个 URL。本文说明如何盘点这些变体、选定主版本、用一次到位的跳转做收口,并给出收口后的验证方法和几个常见错误做法。

网站收录

URL 大小写、末尾斜杠、www 前缀:同一页面的多种写法怎么收口

同一个页面在服务器上可能有好几种写法:带 www 和不带 www、http 和 https、末尾带斜杠和不带、路径里大写和小写。对访问者来说它们看起来是同一个页面,对搜索引擎来说它们是不同的 URL。如果不做收口,抓取、外链和统计数据会被分到几个地址上,收录表现自然好不了。

先认清变体从哪来

  • 协议与主机名:http 与 https、example.com 与 www.example.com,常因为早期配置残留而同时可访问。
  • 末尾斜杠:/about 与 /about/,目录写法和文件写法混用。
  • 大小写:/About、/about、/ABOUT 在多数服务器上指向同一内容,但 URL 字符串不同。
  • 默认文档:/index.html 与根目录内容重复。
  • 参数顺序:同一组筛选参数顺序不同,也会生出多个地址。

这些变体的共同点是:内容一样,URL 不一样。它们不会自动互相抵消,而是各自被当成一个候选页面。

做一次全站盘点

收口之前先知道自己有多少变体。可以按下面的顺序查:

  1. 从服务器日志里筛出返回 200 的 URL,按主机名和协议分组,看有几种前缀。
  2. 把 sitemap 里的地址去重,检查是否混入了非主版本的写法。
  3. 抽查站内链接:导航、面包屑、正文链接、分页链接是否指向同一个版本。
  4. 看站长工具里的页面报告,留意被标记为重复或未选择规范页面的地址。

盘点的重点是找出谁在指向哪个版本,而不只是统计有多少个地址。

选定主版本并一次跳到位

主版本的选择没有绝对标准,取一个就好:通常选 https 加带 www 或不带 www 中历史外链更多的那一个,路径统一小写、目录地址统一带末尾斜杠。定下来之后:

  • 服务器层把其余变体 301 到主版本,直接跳到最终地址,不要先跳 www 再跳 https 再补斜杠。
  • 站内所有链接改成主版本,包括导航、分页、相关推荐和 sitemap。
  • 页面里的 canonical 指向主版本,并且保持自指,即主版本页面 canonical 就是它自己。

大小写要单独处理

如果服务器对大小写不敏感,/About 和 /about 会返回同一份内容,但 URL 字符串仍然不同。这时不要在不同大小写下输出不同的 canonical,直接让所有变体 301 或 canonical 到小写版本即可。若服务器区分大小写,则要确认没有两条真实存在的路径只差大小写。

服务器规则别做过头

跳转规则写得越复杂,越容易出现连环跳转或被误伤。改规则前先在测试环境验证几组地址:根目录、带参数、带末尾斜杠、大小写混合,确认都是一次跳到正确地址。

收口的目标是让一个页面只有一个可被引用的地址,不是把所有可能的写法都用规则堵死。

收口之后怎么验证

  • 批量请求一批变体地址,看返回码是否为 301,且 Location 指向主版本。
  • 用抓取工具或日志确认蜘蛛最终停留在主版本地址上。
  • 抽查页面源码里的 canonical 是否随 HTML 一起返回,避免依赖脚本注入。
  • 过一段时间再看索引情况,变体地址会逐步退出,速度不会很快。

几个常见的错误做法

  • 同时用 301、canonical、noindex 三种方式指向不同地址,信号互相矛盾。
  • 只在 sitemap 里改主版本,站内链接和跳转规则没动,蜘蛛还是会先撞上变体。
  • 为了统一斜杠,对已经是主版本的地址也加了一条跳转,形成自跳。
  • 把变体页面内容清空或返回 404,而不是跳转,导致原有外链失效。

URL 变体不是什么大问题,但它会长期消耗抓取资源、稀释信号。把主版本定下来,跳转做一次到位,内链和 sitemap 跟上,剩下的交给时间。