同一个页面,在搜索引擎眼里可能对应好几个不同的 URL。末尾斜杠、大小写、带不带参数、www 与裸域、http 与 https,都会让地址变样。对蜘蛛来说,URL 是识别页面的第一把钥匙,地址不统一,抓取和收录自然就被分散了。
一个页面变成多个地址的常见来源
- 末尾斜杠:/about 与 /about/ 在很多服务器上是两个地址。
- 大小写:/News 与 /news,如果服务器不做归一,就是两个页面。
- 域名写法:www.example.com 与 example.com 默认不是同一个站。
- 协议:http 与 https 并存时,两边都能被访问到。
- 跟踪与排序参数:?from=xxx、?sort=price、筛选条件,能组合出大量地址。
- 会话 ID 与分页参数:?sid=、?page= 等,容易生成内容高度相似的页面。
这些地址多数指向同一份内容,但若没有明确指向关系,站内链接、外链、用户分享会各走各的路,权重和抓取机会也跟着被切碎。
地址不统一,收录会怎样
常见表现有三种:一是同一份内容出现多个版本同时进入索引,彼此竞争;二是规范版本迟迟不被选中,搜索结果里呈现的地址不固定;三是部分版本被当作低价值页面处理,抓取资源花在了重复地址上。
需要说明的是,搜索引擎自身有一定的相似内容合并能力,但这是兜底,不是你可以依赖的方案。站内把地址关系说清楚,成本远低于事后补救。
规范化:先定主地址,再让全站指过去
第一步:为每类页面选定一个规范 URL
规则要简单且能长期执行。比如:统一带末尾斜杠或统一不带;路径一律小写;统一使用 https 加 www 或统一裸域。把它写进开发规范,而不是每次靠人工判断。
第二步:站内链接保持一致
导航、面包屑、内链、站点地图、RSS 里的地址,都要指向规范版本。站内链接是最直接的信号,链接里混着两种写法,等于自己给蜘蛛发了两套指令。
第三步:能 301 就别只靠 canonical
非规范地址如果可以被访问,优先用 301 永久跳转到规范地址,把访问和信号一并集中过去。canonical 标签适合那些必须保留、无法跳转的场景,比如带参数的列表页。两者是分工关系,不是替代关系。多个不同的 canonical 指向同一个地址,通常没有意义,反而增加解读成本。
参数类 URL 的处理思路
- 改变内容的参数:如分页、排序方式,通常保留,但要保证每页有可抓取入口,并让 canonical 指向自身或合理的规范页。
- 不改变内容的参数:如来源统计、短链参数,建议用 301 归并或加 canonical 指向无参数版本。
- 会话 ID、打印页、弹窗视图:一般不需要单独收录,可用 robots.txt 或 noindex 挡在索引之外,具体取决于你是否希望它被抓取。
- 筛选组合:数量可能极大,建议只放行有搜索价值的少数组合,其余收敛。
一份可执行的自查清单
- 列出网站可能被访问到的地址形态,逐个确认是否存在同一内容多地址。
- 确认 301 规则覆盖了 http 到 https、裸域到 www、末尾斜杠、大小写四类常见情况。
- 抽查导航、内链、站点地图中的地址写法是否一致。
- 检查页面的 canonical 是否指向真实存在的规范地址,且不互相指向。
- 在抓取日志里观察,非规范地址是否仍在被频繁抓取;如果是,说明归并还没生效。
- 改动后留出观察周期,不要几天就反复调整规则。
地址统一是个慢变量。它不会立刻改变收录数量,但会决定你的抓取资源和页面信号是集中还是分散。先把规则定下来,再谈优化。