站点运营

站点运营:URL 规范自查,别让同一篇内容散落成多个地址

同一篇内容如果同时存在大小写、尾斜杠、带参数等多个地址,蜘蛛会当成多个页面反复抓取,权重也容易被摊薄。这篇文章整理了常见的 URL 不统一来源、自查方法和处理顺序,帮你把地址收敛到一条规范路径上。

站点运营

站点运营:URL 规范自查,别让同一篇内容散落成多个地址

做站内结构时,很多问题不是出在内容上,而是出在地址上。同一篇文章,可能因为大小写、末尾斜杠、跟踪参数、默认文档等原因,在服务器上对应着好几个可访问的 URL。对用户来说看不出区别,对蜘蛛来说却是几个不同的页面,抓取和权重都会被打散。

URL 规范这件事不难,但需要定期检查。下面按“常见来源—怎么查—怎么改”的顺序说一遍。

常见的 URL 不统一来源

  • 大小写混用:/Article/100 和 /article/100 在区分大小写的服务器上确实是两个路径,在 Windows 类环境里又可能都返回 200,形成重复。
  • 末尾斜杠:目录地址带不带 /,如果两种都返回 200,就会各留一份。
  • 跟踪参数:utm_source、分享参数、广告参数会让同一个页面生成大量变体地址。
  • 默认文档:/about/ 与 /about/index.html 同时可访问。
  • 协议与域名变体:http 与 https、带 www 与不带 www、带端口与不带端口,都可能各自可达。
  • 排序与筛选参数顺序:?a=1&b=2 和 ?b=2&a=1 指向同一结果,但地址字符串不同。

这些地址往往不需要外部链接推广,光是站内链、分享和爬取本身就能攒出不少。

自查:先看清楚有多少个地址

光靠浏览器地址栏不容易发现问题,可以借助几类数据交叉看:

  1. 抓取日志里按路径聚合访问次数,重点看同一内容是否对应多个路径。
  2. 站点地图和内链中是否混用了不同写法,比如一部分用尾斜杠,一部分不用。
  3. 站内搜索结果、分页链接、面包屑生成的地址是否统一。
  4. 对可疑地址手工测试:换大小写、加尾斜杠、加默认文档,看返回码是 200 还是 301。返回 200 的都要留意。

测试时注意用返回码判断,而不是看页面显示是否一样。两个地址都返回 200,即使内容完全相同,也属于需要收敛的情况。

处理顺序:先统一站内,再处理跳转

建议按下面的顺序动手,改动小、风险低:

  1. 先定规范地址:确定全站用哪种写法,比如统一小写、统一带尾斜杠、统一不带参数。
  2. 内链和站点地图只写规范地址:这是最容易被忽略的一步。内链本身写乱了,跳转做得再好也会不断产生新入口。
  3. 服务端做 301:对非规范写法的地址,尽量返回 301 永久跳转到规范地址。跳转目标不要再经过第二层跳转,避免形成链条。
  4. 不能改服务端时用 canonical:在页面 head 中声明规范地址。要注意 canonical 是给搜索引擎的建议,不是强制指令,能配 301 的地方优先配 301。
  5. 参数页做区分:纯跟踪参数可以考虑在服务器或 CDN 层剥离后再匹配缓存;有实际筛选意义的参数页,评估是否需要独立存在,否则用规则限制抓取。

几个容易踩的坑

  • 用 JavaScript 跳转代替 301。蜘蛛不一定执行脚本,等于没跳。
  • canonical 指向的地址本身返回 404 或 301,声明就失去意义。
  • 跳转链太长,A 跳 B、B 跳 C,蜘蛛每次都要多走一步。
  • 站内搜索、排序、分页链接里带着会话 ID 或时间戳,导致每次抓到的地址都不一样。
  • 只在首页做了域名统一,栏目页和详情页仍在混用。
URL 规范不是一次性的清理工作。新栏目、新模板、新活动页上线时,很容易又把旧的写法带回来。把它写进模板和发布流程,比事后批量修跳转省事得多。

可以每隔一段时间抽查一批页面:随机挑几条站内链,看看跳转层数、返回码和最终地址是否与预期一致。发现问题就顺手记下来,积累几次就能看出是模板问题还是个别页面问题。