网站收录

大小写、斜杠与 http/https:同一页面出现多个地址时先做 URL 归一

核对收录时,常会发现同一份内容在索引里对应好几个 URL。问题多半不在内容,而在地址写法不统一:协议、www、结尾斜杠、路径大小写、默认文件名、参数顺序都可能让一个页面被拆成多条。本文按“归组—选主地址—收敛”的顺序,说明怎么盘出等价变体,并用 301、canonical 与内链统一把它们收到一个地址上。

网站收录

大小写、斜杠与 http/https:同一页面出现多个地址时先做 URL 归一

做收录核对时经常碰到一种情况:某个页面看起来已经被收录,但站内明明只有一个页面,索引里却能对应出好几个 URL。多数时候不是内容出了问题,而是同一个页面在对外暴露时用了不止一种地址写法。

同一个页面为什么会有多个地址

搜索引擎是按 URL 分别抓取、分别入库的。只要地址字符串不同,系统就会先把它们当作可能不同的页面来处理,之后才谈得上判断内容是否重复、要不要合并。URL 归一要做的,就是把指向同一份内容的多种写法,收敛到一个主地址上。

常见的几类等价变体

主机与协议层面

  • http 与 https 并存,页面两边都能打开;
  • 带 www 与不带 www 的域名指向同一套内容;
  • 主域、备用域、旧域名同时可访问;
  • 默认端口是否显式写出,例如 :80、:443。

路径与参数层面

  • 结尾斜杠:/page 与 /page/;
  • 目录默认文件:/a/ 与 /a/index.html、/a/index.php;
  • 路径大小写:/Page 与 /page,服务器区分大小写时这是两个真实地址;
  • 参数顺序与冗余参数:?a=1&b=2 与 ?b=2&a=1,以及 utm 等跟踪参数;
  • URL 编码差异:中文路径全编码与部分编码、空格的 %20 与加号。

先做一轮 URL 盘点

  1. 从服务器访问日志或抓取记录里,按“路径 + 参数”把同一份内容的不同写法归成一组;
  2. 对每组标注三件事:站内链接用的是哪种写法、sitemap 里放的是哪种、索引里出现的是哪种;
  3. 选一个主地址。优先选站内已经广泛引用、外链较多、语义清晰的写法,而不是凭个人偏好重选;
  4. 把剩下的变体分类:哪些靠 301 跳转、哪些只需要改内链、哪些留在 canonical 里声明。

主地址定下来之后怎么收敛

  • 301 跳转:等价变体统一跳到主地址,避免长期用 302 顶替,跳转方向要一步到位,不要串成多级;
  • canonical 声明:页面内写的主地址要和 301 指向同一个,两者方向互相打架时先修一致;
  • 内链统一:导航、面包屑、分页、正文链接、分享按钮都改成主地址,站内信号不一致,收敛会很慢;
  • sitemap 只放主地址:把等价变体一并提交,等于主动扩大分散;
  • 参数类变体:跟踪参数优先从内链上清掉,剩下的再靠页面声明处理。

核对时容易踩的几个坑

  • 只看总量数字,不看具体 URL 分布。归一的成效体现在“同一份内容对应的地址数变少”,而不是某天突然多出多少条;
  • 把有独立价值的页面误当成变体合并。判断等价前先确认内容主体是否真的相同;
  • 假设路径大小写不敏感。很多服务器上是敏感的,/Page 和 /page 是两个地址;
  • 指望用 robots.txt 收敛地址。屏蔽抓取和地址归一是两件事,屏蔽反而可能让变体停留在索引里。
归一不是删页面,而是让同一份内容只用一个地址被引用、被抓取。

处理完站内信号后,索引里的变化通常需要一段时间才显现。核对时可以分两步:先确认 301、canonical、内链、sitemap 是否已经指向同一个主地址,再观察变体地址是否逐步减少。如果发现某个变体长期不消失,先回头看它的入站链接和跳转链,而不是反复重复提交。