站点运营

站点运营:URL 大小写与尾斜杠自查,别让一个页面变成好几个地址

同一个页面,在服务器上只有一个文件,在 URL 层面却可能有好几种写法:大小写不同、尾斜杠有无、带不带 index、带不带参数。访客和蜘蛛各用各的地址,日志就散了,权重也散了。这篇讲怎么盘点这些重复地址,定一条统一规则,再用 301 和 canonical 慢慢收敛回来。

站点运营

站点运营:URL 大小写与尾斜杠自查,别让一个页面变成好几个地址

同一篇文章,在服务器上只是一个文件,但在 URL 层面往往有好几种写法。首页可能是 example.com、example.com/、example.com/index.html;栏目页可能是 /news 和 /news/;如果站内还混用了大小写,/News 和 /news 在 Linux 服务器上就是两个不同的地址。

这些写法在浏览器里看着都正常,访客也不会察觉。但对站点运营来说,它们会把同一份内容拆成多个地址:日志分散、内链指向不一、外部链接各写各的,最后谁也说不清哪个才是这个页面的「正主」。

先搞清楚地址是怎么分叉的

常见的分叉点其实不多,盘点一遍就能对上号:

  • 大小写:Windows 服务器不区分,Linux 服务器区分。迁移过主机的站点尤其容易出问题。
  • 尾斜杠:目录型路径(如 /news)加不加斜杠,服务器可能返回两个都通的结果。
  • 默认文件名:/news/ 与 /news/index.html 指向同一份内容。
  • 协议与域名:http 与 https、带 www 与不带 www,如果没做强制跳转,就是四套地址。
  • 参数变体:追踪参数、排序参数、会话 ID 拼在地址后面,同一个页面能生成无数个 URL。

怎么盘:三步走

第一步,翻日志

挑几篇有代表性的内容页和栏目页,在服务器日志里搜关键词,看同一个页面被访问时出现过几种路径写法。这一步不需要工具,靠搜索就行,但结果最真实——日志里怎么写,说明访客和蜘蛛实际就是这么进来的。

第二步,手工试

拿一个地址,依次试它的各种变体:全小写、首字母大写、带斜杠、不带斜杠、加 index 后缀。看服务器分别返回什么状态码。如果几个变体都是 200,说明这些地址在搜索引擎眼里确实是并存的多份。

第三步,对内部出口

站内链、导航、面包屑、Sitemap、canonical 标签、分享按钮,这几处输出的地址是否一致。很多站点的分叉就是从这些小地方来的:导航写不带斜杠,Sitemap 写带斜杠,分享按钮又多加一个参数。

规则怎么定

没有绝对正确的写法,只有统一不统一的写法。定规则时考虑三点:服务器环境、历史外链情况、改动成本。

  • 全站统一小写,这是最省事的选择,Linux 环境下也最稳。
  • 目录型路径统一带尾斜杠,文件型路径(如 .html、.jpg)不带。规则简单,好记好执行。
  • 默认文件统一收口,/news/index.html 只保留一个入口,其余全部跳转到选定版本。
  • 协议与域名只留一套,其余 301 过去,并让内链全部使用最终版本。

修复的顺序

不要一上来就大批量加跳转,容易把自己转晕。建议按这个顺序:

  1. 先改内部出口:导航、正文内链、Sitemap、canonical,全部改成统一的最终地址。
  2. 再对非目标版本加 301,跳到目标版本。
  3. 观察一到两周日志,看旧的写法是否还有稳定流量进来,判断这条跳转要不要长期保留。
  4. 如果某个变体还有大量外链指向,把跳转保留着,不要急着撤。
改动期间不要叠加太多变量。同一时间既改 URL 规则又改模板结构,出问题时很难判断是哪一步造成的。

几个容易踩的坑

  • 用 302 长期顶着。临时跳转不是用来做地址收敛的,时间长了搜索引擎可能仍然按原地址处理。
  • 跳转链套了好几层。A 跳 B,B 跳 C,每次访问都要多走一跳,不如直接 A 跳 C。
  • 靠 canonical 代替 301。canonical 是给搜索引擎的提示信号,跳转是给所有访问者的确定性动作,两者职责不同,能跳就跳。
  • 参数变体当成普通重复地址处理。带参数的页面往往有自己的用途(筛选、排序),处理方式要单独定,不要一刀切全部 301 回主页面。
  • 改完后没有回头验证。至少隔一周再抽查一遍,确认内链、Sitemap、跳转三者输出的是同一个地址。

小结

URL 规范这件事,做的时候枯燥,收益也不像改标题那样立竿见影,但它决定了站点在日志、内链和外部引用里是不是一个整齐的形象。花半天时间把地址统一到一套写法上,后面每次看日志、做外链、排查抓取异常,都会省下不少解释成本。