搜索抓取

URL 形态不统一:大小写、斜杠与默认页带来的重复发现

同一篇内容在站内可能出现大小写、结尾斜杠、默认文件名、协议主机名、跟踪参数等多种网址写法,每种写法都可能被搜索蜘蛛当成独立的 URL 去发现和抓取。本文梳理常见的形态分叉,说明它们消耗的抓取机会,并给出服务器跳转、内链书写、Sitemap 与日志核对的收口顺序。

搜索抓取

URL 形态不统一:大小写、斜杠与默认页带来的重复发现

同一篇内容,在站内可能同时存在好几种网址写法:大写和小写、带结尾斜杠和不带、带 www 和不带、加不加默认文件名。对访问者来说它们都能打开页面,但对搜索蜘蛛来说,这可能是几个不同的 URL。发现入口一多,抓取与规范化的信号就被摊薄了。

常见的 URL 形态分叉

先把容易出问题的地方列一遍,逐项对照自己的站点。

  • 大小写:/About 与 /about 在部分服务器上指向同一文件,但在 URL 层面是两个地址。
  • 结尾斜杠:带斜杠与不带斜杠被服务器当成两条路径处理时,就会多出一份入口。
  • 默认页文件名:目录地址与目录下加默认文件名都能访问,链接写法不统一就会分叉。
  • 协议与主机名:http 与 https、带 www 与裸域,如果都能打开且没有统一跳转,就是两套入口。
  • 参数顺序与跟踪参数:参数顺序颠倒,以及 utm、from、spm 之类的来源标记,会生成大量近似 URL。
  • 锚点与编码:锚点通常不产生新页面,但中文、空格被编码成不同形式时,可能被当成不同地址。

多形态 URL 消耗的是什么

搜索蜘蛛对每个站点的来访次数是有限的。同一页面用五种写法被访问,等于把本来可以用在别处的来访次数花在了重复内容上。更麻烦的是内部链接不统一:导航指向一种写法,正文指向另一种,Sitemap 里又是第三种,蜘蛛很难判断哪个才是你希望展示的版本。

形态分叉不会立刻带来明显问题,它更像慢性消耗。单页看不出来,站点规模一大,日志里就会堆出大量近似 URL。

把入口收到规范形态上

目标很简单:每个页面只保留一个规范 URL,其余形态用一次跳转指过去,并且站内所有链接都写成规范形态。

服务器层的统一

  • 确定一种主机名,另一种做跳转,不要两套并行。
  • 全站切到 https 后,http 版本统一跳转,避免长期共存。
  • 大小写与结尾斜杠各选一种规则,其余跳转,注意别形成跳转链。
  • 默认页文件名对外不可见,链接里不要写出来。

页面与链接层的统一

  • 规范页面加上 canonical,指向自己的唯一形态,不要指向中间的跳转地址。
  • 导航、面包屑、正文内链、相关推荐,全部按同一规则书写。
  • Sitemap 只放规范形态,不放会跳转的地址,也不放带跟踪参数的地址。
  • 站内搜索、筛选、分享按钮生成的链接,尽量不让来源参数进入可抓取范围。

核对顺序

改完之后,按下面的顺序回头看一眼,比盲目改一堆规则更有效。

  1. 在服务器日志里按路径统计,找出被搜索蜘蛛抓取、但明显指向同一内容的近似 URL。
  2. 抽查几十条内链,看它们实际写的是哪种形态,重点看模板生成的部分。
  3. 用抓取工具抽查跳转链,确认是一跳到规范地址,而不是两跳三跳。
  4. 确认 Sitemap 里的地址与最终落地地址完全一致,中间没有跳转。
  5. 观察一段时间,比较近似 URL 在抓取记录里的占比是否下降。

URL 形态统一是件琐碎的事,但它是 URL 发现路径的地基。地基理顺了,再讨论抓取深度、内链层级和抓取预算才有意义。