同一篇内容,用户可能通过多个地址访问:带 www 和不带 www、http 和 https、末尾有没有斜杠、带不带参数。对用户来说也许只是地址不同,但对搜索引擎来说,这些可能是多个独立 URL。如果不做收敛,抓取预算会被分散,外链和点击也可能落到不同地址上,后续统计和维护都会变麻烦。
先找出所有能到达同一页面的地址
自查时不要只看浏览器地址栏。把下面这些入口都列出来:
- http 与 https 两种协议;
- 带 www 与不带 www 的域名;
- 末尾带斜杠与不带斜杠;
- 大小写不同的路径,例如 /Page 与 /page;
- 带跟踪参数、排序参数、会话 ID 的地址;
- 分页、打印版、AMP 或移动版等派生地址;
- 站内搜索、标签聚合生成的参数化地址。
把这些地址整理成一张表,标出哪些返回 200、哪些已经跳转、哪些是历史遗留。
确定主地址,并让服务器和页面说法一致
每个页面应该只有一个首选地址。选定后,从三个层面落实:
- 服务器层:用 301 把其他域名、协议、大小写变体跳到主地址。不要用 302 做长期规范化。
- 页面层:在 head 中写 canonical,指向首选地址。canonical 最好是绝对地址,并且能直接访问、返回 200。
- 站内层:导航、内链、站点地图、分享按钮、RSS 都使用主地址,不要随手复制浏览器里的带参数链接。
canonical 常见误用
- canonical 指向一个 404 或重定向地址,等于告诉搜索引擎一个不存在的主地址。
- 所有分页都 canonical 到第一页,导致后续页面的内容不被独立看待。分页是否收敛要看栏目设计,不要机械套用。
- canonical 与 hreflang 各说各话,多语言页面互相指向错误。
- 只在首页或模板里写死 canonical,栏目页、详情页没有动态输出正确地址。
- 用 canonical 代替 301。canonical 是提示,不是强制跳转,用户仍可能停留在旧地址。
把检查放进日常节奏
规范地址不是一次配置就结束。以下情况发生后要复查:
- 新增域名、切换 CDN 或开启 HTTPS;
- 改版调整 URL 结构或栏目路径;
- 上线新的筛选、排序、分页参数;
- 从其他平台迁移内容,带来大量历史地址。
可以定期抽几个重点栏目,用抓取工具或日志查看:同一内容是否还有多个地址被访问,canonical 是否与内链、站点地图一致。发现问题先修主入口,再处理零散外链。
规范地址的目标不是追求一个完美 URL,而是让用户、搜索引擎和内部统计都认同一个地址。少一点地址分叉,后续的更新、合并和下架都会轻松一些。