网站收录

URL 变体收口:大小写、尾斜杠、www 与协议该怎么统一

同一个页面被大小写、尾斜杠、www、协议等写法拆成多个地址,会让抓取分散、收录虚高、日志失真。本文梳理变体的常见来源,并给出服务器层归一、内链改写、canonical 兜底、日志复核的收口顺序与易踩的坑。

网站收录

URL 变体收口:大小写、尾斜杠、www 与协议该怎么统一

很多站点上线几年之后,索引里会多出一批看起来一模一样的 URL:同一篇文章,既有 /News/123,也有 /news/123;有的带尾斜杠,有的不带;http 和 https 各存一份;www 和裸域各存一份。它们指向同一个页面,却占了好几个索引位置。

这些变体通常从哪里来

  • 内链写法不统一:不同编辑、不同模板输出的链接格式不一样。
  • 程序自动补全:CMS、分页组件、面包屑各生成一套规则。
  • 历史遗留:改版、换域名、迁移目录时,旧写法没有完全清掉。
  • 服务器差异:Linux 下路径大小写敏感,Windows/IIS 默认不敏感,同一套代码换个环境就多出一批 URL。
  • 外部来源:外链、分享、二维码、第三方工具按自己的习惯拼地址。

为什么值得专门花时间收口

  • 抓取预算被摊薄。同一份内容被抓多次,真正需要更新的页面来得就少了。
  • 收录量虚高。报表数字涨了,不代表有效页面变多,排查问题时还会被干扰。
  • 信号分散。外链、点击、停留时间被拆到多个地址上。
  • 日志失真。统计抓取分布时,同一个页面在日志里出现好几行,看不出真实热度。

收口的顺序

顺序比工具重要,先做影响面最大的那一层。

  1. 先定主形态。协议用哪个、主机名用 www 还是裸域、路径是否带尾斜杠、大小写规则如何,一次性定死并写成文档。
  2. 在服务器层做 301。这是最彻底的一层,浏览器和爬虫都会被带到主形态。相比 canonical,301 是硬信号,不依赖对方配合。
  3. 改写站内链接。导航、面包屑、分页、正文内链、sitemap 全部输出主形态,从源头减少新变体产生。
  4. canonical 兜底。对无法用 301 处理的场景,比如带参数但可访问的地址,用 canonical 指向主版本。
  5. 顺手统一静态资源与接口。图片、CSS、JS、API 地址同样会有协议和主机名不一致的问题,一起改成本最低。
  6. 观察一段时间。看日志里旧写法是否还在被请求,看索引状态里变体是否在减少。

常见坑

  • 大小写规则误伤。把全站路径强制转小写,可能撞上本来靠大小写区分的内容,也可能让带签名的 URL 失效。
  • 尾斜杠跳转成环。服务器、CDN、程序各写一条规则,互相跳来跳去,最后报重定向次数过多。
  • https 强跳时机不对。证书还没配好就先把 http 全部跳过去,会直接打不开。
  • HSTS 上得太早。浏览器一旦记住,回退成本很高,确认稳定后再开。
  • 只看 canonical 不看 301。canonical 是提示,遇到冲突时搜索引擎可能按自己的判断处理。

一份简单的自查清单

  • 主形态是否明确写下来,团队是否都知道。
  • 随机抽 20 条内链,检查协议、主机名、尾斜杠是否一致。
  • 带 www 和不带 www 的地址各访问一次,看是否只剩一次跳转。
  • 把路径改成全大写访问一次,看是否回到主形态。
  • sitemap 里的 URL 是否全部为主形态。
  • 日志里旧写法的请求量是否在逐周下降。
URL 收口属于一次性的工程活,但需要周期性复查,因为新模板、新活动页、新同事都会带进新的写法。

做完这些,不会立刻让收录数字变好看,但能让后续所有关于收录、抓取和日志的判断建立在更干净的数据上。