同一篇内容,在站内可能同时存在好几种网址写法:大写和小写、带结尾斜杠和不带、带 www 和不带、加不加默认文件名。对访问者来说它们都能打开页面,但对搜索蜘蛛来说,这可能是几个不同的 URL。发现入口一多,抓取与规范化的信号就被摊薄了。
常见的 URL 形态分叉
先把容易出问题的地方列一遍,逐项对照自己的站点。
- 大小写:/About 与 /about 在部分服务器上指向同一文件,但在 URL 层面是两个地址。
- 结尾斜杠:带斜杠与不带斜杠被服务器当成两条路径处理时,就会多出一份入口。
- 默认页文件名:目录地址与目录下加默认文件名都能访问,链接写法不统一就会分叉。
- 协议与主机名:http 与 https、带 www 与裸域,如果都能打开且没有统一跳转,就是两套入口。
- 参数顺序与跟踪参数:参数顺序颠倒,以及 utm、from、spm 之类的来源标记,会生成大量近似 URL。
- 锚点与编码:锚点通常不产生新页面,但中文、空格被编码成不同形式时,可能被当成不同地址。
多形态 URL 消耗的是什么
搜索蜘蛛对每个站点的来访次数是有限的。同一页面用五种写法被访问,等于把本来可以用在别处的来访次数花在了重复内容上。更麻烦的是内部链接不统一:导航指向一种写法,正文指向另一种,Sitemap 里又是第三种,蜘蛛很难判断哪个才是你希望展示的版本。
形态分叉不会立刻带来明显问题,它更像慢性消耗。单页看不出来,站点规模一大,日志里就会堆出大量近似 URL。
把入口收到规范形态上
目标很简单:每个页面只保留一个规范 URL,其余形态用一次跳转指过去,并且站内所有链接都写成规范形态。
服务器层的统一
- 确定一种主机名,另一种做跳转,不要两套并行。
- 全站切到 https 后,http 版本统一跳转,避免长期共存。
- 大小写与结尾斜杠各选一种规则,其余跳转,注意别形成跳转链。
- 默认页文件名对外不可见,链接里不要写出来。
页面与链接层的统一
- 规范页面加上 canonical,指向自己的唯一形态,不要指向中间的跳转地址。
- 导航、面包屑、正文内链、相关推荐,全部按同一规则书写。
- Sitemap 只放规范形态,不放会跳转的地址,也不放带跟踪参数的地址。
- 站内搜索、筛选、分享按钮生成的链接,尽量不让来源参数进入可抓取范围。
核对顺序
改完之后,按下面的顺序回头看一眼,比盲目改一堆规则更有效。
- 在服务器日志里按路径统计,找出被搜索蜘蛛抓取、但明显指向同一内容的近似 URL。
- 抽查几十条内链,看它们实际写的是哪种形态,重点看模板生成的部分。
- 用抓取工具抽查跳转链,确认是一跳到规范地址,而不是两跳三跳。
- 确认 Sitemap 里的地址与最终落地地址完全一致,中间没有跳转。
- 观察一段时间,比较近似 URL 在抓取记录里的占比是否下降。
URL 形态统一是件琐碎的事,但它是 URL 发现路径的地基。地基理顺了,再讨论抓取深度、内链层级和抓取预算才有意义。