站点运营

站点运营:URL 规范化自查,别让同一页面裂成多个地址

同一份内容常常同时存在带 www、不带 www、http、https、尾斜杠和大小写等多个地址,重复地址会分散抓取预算。这篇文章给出一套 URL 规范化自查流程:从确定唯一规范形式,到用日志和状态码排查地址变体,再处理 canonical 与重定向冲突的常见坑,适合站点运营定期执行。

站点运营

站点运营:URL 规范化自查,别让同一页面裂成多个地址

同一个页面,在服务器上往往能对应好几个地址:带 www 和不带 www、http 和 https、结尾有没有斜杠、字母大小写不同、后面还挂着跟踪参数。对访客来说打开的内容没有区别,但在搜索蜘蛛眼里,每一个地址都是一条独立 URL。抓取预算被这些重复地址分掉,页面之间积累的信号也被摊薄。下面是适合站点运营定期执行的 URL 规范化自查流程。

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

大多数重复地址不是有人故意造出来的,而是服务器配置、CMS 默认行为和日常调用习惯叠加的结果。常见的来源有:

  • 服务器同时监听 www 与非 www,两个域名都返回 200;
  • HTTP 没有强制跳转到 HTTPS,两套协议各有一套地址;
  • 首页既可以用根目录访问,也可以用 /index.html 访问;
  • 栏目页 /list 与 /list/ 都能打开,且都返回正常状态;
  • URL 大小写混用,而服务器对大小写敏感;
  • 分页、排序、筛选参数被随手拼接,产生大量近似地址;
  • 对外分享时自动附带 utm 等跟踪参数,被外部站点引用后固化下来。

先定唯一规范形式

动手改之前,先把规则写清楚,避免边改边乱:

  • 协议固定为 https;
  • 主机名固定为带 www 或不带 www 的其中一种;
  • 目录类地址固定结尾带斜杠或不带斜杠的其中一种;
  • 文件名统一小写,避免大小写变体;
  • 参数只保留业务必需的,跟踪参数不进入内链和站点地图。

这份规则最好落在文档里,而不是只存在于某个人的记忆里。改版、换人、上新栏目时都需要它作为对照。

自查动作清单

  1. 从服务器访问日志或站长工具里抽样,看看同一批内容是否被多个地址反复抓取。
  2. 用 curl -I 逐个请求各变体,正常对外服务的应该只有一个返回 200,其余应为 301 指向它。
  3. 查看页面源码里的 canonical,确认它指向自身规范地址,并且与重定向的最终目标保持一致。
  4. 抽查内链、导航、分页、站点地图和分享按钮生成的地址,是否都已经是规范形式。
  5. 确认 CMS、框架的自动补斜杠规则与服务器重写规则不冲突,避免出现来回跳转。

几个容易踩的坑

canonical 和重定向互相打架

如果 /a 已经 301 到 /b,但 /a 页面里的 canonical 仍然写着 /a,蜘蛛会收到互相矛盾的信号。改动后要同步更新,而不是只改一半。

用前端脚本做跳转

JS 跳转对蜘蛛的指引不如服务端 301 明确,抓取预算仍然花在了旧地址上。能用服务端处理的,就放在服务端。

只处理首页,不管内层页

列表页、标签页、分页往往才是重复地址的重灾区。规范化要从首页一路查到最深的栏目页。

规范化的目标不是消灭所有地址变体,而是让每个变体都用最明确的方式告诉蜘蛛:真正的地址只有一个。

把它变成日常习惯

一次整理完不等于永久有效。新栏目上线、模板调整、CDN 或跳转规则改动之后,重复地址都可能重新冒出来。建议把 URL 规范化写进上线检查清单,季度性地抽样一轮日志,观察是否有新的变体开始被大量抓取。发现问题就补 301 或修正 canonical,让站点的地址体系长期保持干净。