同一个页面,如果站内同时存在 /News/2024/seo-guide/、/news/2024/seo-guide 和 /news/2024/seo-guide/index.html 三种写法,对访客来说没什么差别,对搜索引擎、统计工具和日志分析来说却是三条记录。URL 规范化要处理的就是这件事:让同一份内容只对应一个主地址,其余写法统一跳转过去。
不一致通常从哪儿来
- 大小写混用:栏目编辑手动输入链接,一会儿 News 一会儿 news。Windows 服务器不区分大小写,Linux 服务器区分,换服务器后问题才集中暴露。
- 尾斜杠忽有忽无:目录形式带斜杠,文件形式不带,模板和手写链接各写各的。
- 默认文档:/about/ 和 /about/index.html 都能正常打开。
- 协议与主机名:http 与 https、带 www 与不带 www 长期并存。
- 参数顺序:?a=1&b=2 与 ?b=2&a=1 返回同样结果。
- 跟踪参数:utm_source、from、spm 之类被复制进站内链接和分享按钮。
- 中文与特殊字符:编码形式不同,或空格、加号的处理不一致。
- 分页与排序:?page=1 与不带参数、?sort=default 与默认排序各算一个地址。
自查:从站内链接和访问日志两头看
- 从首页往下点三到四层,把浏览器地址栏里的 URL 记下来,看同一栏目是否存在多种写法。
- 用爬虫或站内链接检查工具跑一遍,按路径聚合,找出同时存在带斜杠与不带斜杠、大写与小写的路径。
- 看服务器访问日志,统计同一路径不同写法的请求量,请求多的说明入口多。
- 看统计后台,如果同一内容有几个入口地址、数据被拆散,基本可以确认存在重复。
- 检查站点地图与 RSS,确认里面用的写法与实际主地址一致。
统一方向怎么定
- 先定协议和主机名:确定 https 与是否带 www,其余形式 301 到主形式。
- 路径尽量用小写字母加连字符,新内容按这个规则生成,老地址保持原样并做跳转。
- 目录统一带尾斜杠,具体页面文件不带,或者反过来,全站只选一种。
- 默认文档对外只暴露目录地址,index.html 的请求 301 到目录。
- 站内链接、站点地图、canonical、面包屑、分享按钮统一使用主地址。
- 跟踪参数只用于站外投放,站内跳转前清理掉。
处理时的几个注意点
跳转优先用 301,一次到位,别串成多级链条。canonical 是辅助信号,替代不了跳转;如果站内链接仍指向旧写法,它的作用会被明显削弱。参数顺序不同可以按规则统一,但带真实筛选意义的参数不必强行合并,否则用户点回来会看到不一样的结果。老地址不要直接 404,保留跳转至少一个季度,观察日志里旧写法的请求是否逐步下降。
URL 规范化的目标不是消灭所有变体,而是让站内主动引用和对外暴露的地址保持一致,剩下的变体用跳转兜住。
建议每季度抽一次,重点看新上线的栏目和刚改过模板的页面,这两处最容易引入新的写法。