同一篇内容,可能因为链接写法不同,在爬虫眼里变成多个 URL:带不带末尾斜杠、大小写不一致、默认文档、参数顺序、协议或 www 前缀等。这些地址如果都能返回同样的页面,就会给收录判断增加干扰——搜索引擎可能只选一个作为代表,也可能暂时并列保留多个。与其等它替你选,不如主动把 URL 写法统一。
常见的 URL 写法差异
- 末尾斜杠:/about 与 /about/ 是否都返回 200,还是其中一个跳转或 404。
- 大小写:/Page 与 /page 在部分服务器和框架上被当作不同地址。
- 默认文档:/index.html、/index.php 与目录根 / 同时可访问。
- 参数写法:?id=1&sort=asc 与 ?sort=asc&id=1 顺序不同,或带跟踪参数。
- 协议与主机名:http 与 https、带 www 与不带 www 都能打开。
搜索引擎会怎么处理
搜索引擎对 URL 有一定规范化能力,会参考内链、canonical、重定向和 sitemap 等信号,尝试把多个地址归到同一个内容实体上。但这种合并不是绝对可靠的:如果多个地址都有大量内链,或者 canonical 指向不一致,索引里就可能保留多个版本,权重和点击也被分散。
更常见的情况是,搜索引擎选了一个它认为合适的地址作为展示版本,而那个版本未必是你希望的。比如站内导航大量使用 /page/,而 sitemap 里写的是 /page,最终展示的可能是前者。
统一 URL 的处理顺序
- 先定一个规范地址:确定每个页面唯一对外使用的 URL,包括协议、主机名、路径写法、是否带末尾斜杠。
- 服务器层做 301:把其他写法永久重定向到规范地址,包括大小写、默认文档、旧参数地址。301 比 canonical 更直接,能减少重复抓取。
- 页面 canonical 指向规范地址:在 HTML 的 head 里写绝对地址,不要用相对路径或带参数的版本。
- 内链与 sitemap 统一:站内导航、面包屑、分页、sitemap 都使用规范写法,避免自己制造多个入口。
- 检查参数与跟踪链接:广告、分享、统计参数尽量用工具处理,不要让它进入可抓取链接体系。
末尾斜杠与大小写的注意点
有些服务器对 /page 和 /page/ 都返回 200,且内容相同;有些则一个 301 到另一个,或者直接 404。建议统一成一种写法,并用 301 把另一种指过去。大小写同理:如果服务器区分大小写,/Page 和 /page 就是两个地址,最好统一小写,并在服务器或框架层做重定向。
不要只靠 canonical 来兜底。canonical 是提示,不是指令,搜索引擎可以忽略。301 和内部链接统一,才是更稳的做法。
默认文档的常见坑
首页经常可以同时通过 /、/index.html、/index.php 访问,栏目页也可能有 /list/ 和 /list/index.html 两个版本。如果这些地址都返回 200,就会形成重复。处理方式是把非规范版本 301 到规范版本,并在内链中只使用规范版本。
与其让搜索引擎在多个地址里挑一个,不如自己先确定哪个地址是代表,再把其他地址明确指向它。
验证与回查
- 用 site: 查询观察索引里展示的是哪个地址。
- 查看服务器日志,确认重定向是否生效,是否还有大量非规范地址被抓取。
- 在搜索资源平台的覆盖率或页面报告中,检查重复网页、备用网页等状态。
- 用抓取测试工具确认 canonical 和重定向链是否符合预期。
URL 写法统一不是一次性工作,改版、新增栏目、换系统时都可能重新产生多种写法。把规范地址写进开发规范,比事后排查更省事。