URL 规范化到底在解决什么问题
同一个页面,如果从不同入口访问会得到不同的地址,比如大小写不同、末尾多了或少了一个斜杠、带上了一串跟踪参数,那么站内链接、外链、Sitemap 里出现的地址就可能是散开的。对搜索引擎来说,这些地址可能被当成多个页面分别处理,抓取资源分散,站点运营者在统计流量时也容易对不上账。URL 规范化要做的,就是给每份内容定一个标准地址,其他变体通过 301 或 canonical 归拢过去。
常见的重复地址来源
大小写与末尾斜杠
部分服务器对路径大小写不敏感,/About 和 /about 都能打开;另一些则只认一种。末尾斜杠同理,/list 和 /list/ 是否等价,取决于服务器配置和框架路由。建议全站统一为小写,并明确目录型地址带斜杠、文件型地址不带斜杠,然后在服务器层面把例外情况 301 到标准形式。不要长期靠页面里的 canonical 兜底,301 更干净。
查询参数
分页、排序、筛选、打印页、utm 跟踪码、session id 都会生成新地址。先把它们列出来,逐项判断:哪些参数是内容本身需要的,比如分页;哪些只是来源标记,比如 utm。后者可以统一 301,或者用 canonical 指向不带参数的版本。筛选类参数要格外小心,多条件组合会成倍膨胀地址数量,对抓取预算不友好。
协议与域名变体
http 与 https、带 www 与不带 www、旧域名、测试域名、CDN 回源域名,都可能能访问同一份内容。选定一个主地址,其余在服务器或 CDN 层做整站 301。改版换域名时,这条尤其要逐条验证,别留下能打开却没人管的旧入口。
自查清单
- 全站链接与导航是否统一小写,末尾斜杠风格是否一致;
- http 是否整站跳转到 https,且不形成多层跳转;
- 带 www 与不带 www 是否只保留一个入口;
- 分页地址是否稳定可抓取,而不是带一堆临时参数;
- 跟踪参数是否在落地时就剥掉;
- Sitemap 与内链里是否只出现标准地址;
- canonical 是否自指向真实可访问的 200 页面;
- 旧域名与测试域名的解析是否已经下线或 301。
canonical 的正确用法
canonical 是一个提示,不是强制指令,搜索引擎有权忽略。因此它适合做兜底,不适合当主力。使用时注意几点:一是尽量自指向,即标准页指向自己;二是目标必须是可访问的 200 页面,不能指向 404 或跳转链上的地址;三是同一页面不要输出多个互相冲突的 canonical;四是不要为了凑数据把不相关的页面互相指向。分页场景常见的错误是把所有分页都指向第一页,这会让后续页面的内容难以被单独发现,建议按实际策略处理,或者让每页自指向。
比较稳妥的处理顺序
- 先用服务器日志和站点查询,把能打开同一内容的地址尽量列全;
- 为每类内容选定一个标准地址;
- 在服务器或 CDN 层做 301,把变体收敛到标准地址;
- 统一站内链接、导航、Sitemap 中的地址写法;
- 用 canonical 处理无法 301 的少数情况;
- 观察一段时间,看日志中变体地址的请求是否下降。
验证与观察
改完不是立刻就能看到变化,通常需要几周时间让搜索引擎重新抓取和处理。可以定期看服务器日志里变体地址的访问量、看抓取统计中标准地址的占比是否上升,以及检查是否又冒出了新的变体。同时留意别在收敛过程中制造出新的重定向链,跳转层数越多,抓取成本越高。
URL 规范化不是一次性动作。新栏目上线、改版、做投放活动时,都要顺手检查一遍地址是否统一,否则旧问题会以新的形式回来。