一个页面只应该有一个可访问的 URL 形式。尾斜杠、大小写、index.html、http 与 https、www 与非 www,这五类变体统一在服务器层 301,别让两个都保持 200。听起来是小事,但它造成的重复内容比参数还隐蔽。
为什么危险
搜索引擎需要判断哪个是主版本。外链和分享又散落在不同变体上,权重被切成几份。日志里抓取量被稀释,你以为是收录问题,其实是同一个页被当成三个页在抓。canonical 能救一部分,但它是建议不是强制,服务器层没统一就一直在漏。
2026 年 1 月那次
一个开发者工具站,文档页同时存在 /Docs/API/ 和 /docs/api 两种形式,站内链接混用,外部链接也混着来。GSC 里 60% 的文档页报了"重复网页,用户未选定规范网页"。
统一成全小写、无尾斜杠之后,一个月重复网页从 60% 降到 8%,文档页的收录率从 55% 涨到 79%。改动就是 nginx 里三条规则。
五类变体的处理顺序
- http 全部 301 到 https,一次跳到位。
- 裸域 301 到 www(或者反过来,选一个,别两个都行)。
- 大写 301 到小写。
- 尾斜杠统一:目录类路径统一无斜杠,或者统一带斜杠,二选一。
- index.html 折叠到目录,301 过去。
顺序有讲究:先做协议和主机名,再做路径层。不然会出一条链跳三四次。
我们给客户定这条规则时,会顺手把 CDN 的缓存键也一起看:如果缓存键包含大小写或尾斜杠,同一个页面会在边缘节点缓存成多份,命中率下降,回源请求变多,本质上和重复 URL 是同一个问题。
服务器层怎么写
nginx 用 return 301 或 try_files 组合,Apache 用 mod_rewrite,CDN 层也要检查一遍,很多人只改了源站,边缘节点还返回旧结果。静态站生成器要统一 URL 输出规则,别让不同页面类型生成不同形式。
验证方法
curl 每个变体看返回码和 Location;Screaming Frog 爬一遍看有没有 301 和重复标题;GSC 网址检查确认 canonical 和最终 URL 一致。这三步花不到一小时。
和 canonical 的关系
服务器统一和 canonical 是两道防线,不是二选一。服务器层解决了大部分变体,canonical 兜住那些没法重定向的情况,比如参数变体、跨域镜像。只靠 canonical 不做重定向,蜘蛛每次还是会请求多个变体,抓取预算照样被切碎。
立场
这不是小事。一个站点三种 URL 形式,等于把权重分三份,再努力也是三分之一。统一规则的收益比多写十篇文章快。
元析智能
为软件公司做 SEO 和 GEO 优化