运营中常见的情况是:同一个页面在搜索结果里出现好几个版本,或者站长工具里显示的已收录 URL 数量明显超过实际页面数。多数时候不是搜索引擎在乱收,而是站点自己为同一个页面提供了多个可访问写法,蜘蛛顺着不同入口各抓了一遍。
先确认:这些 URL 是不是同一个页面
动手处理之前要先判断清楚,别把正常的独立页面误当成重复。
- 内容主体是否一致:正文、标题、主要图片相同,只是 URL 不同,才算同一页面。
- 是否由同一份数据生成:列表筛选、排序、分页参数往往生成的是另一批内容,属于另一类问题。
- 是否只是展示形态不同:打印页、AMP 页、独立移动端域名,这类应按多版本处理,而不是简单当作重复。
常见的 URL 变形类型
1. 大小写与末尾斜杠
/Article/123 与 /article/123、/page 与 /page/ 在很多服务器上都能返回 200,但对搜索引擎来说就是两个地址。这是最容易忽略、也最容易修的一类。
2. 参数顺序与无用参数
?a=1&b=2 和 ?b=2&a=1 指向同一结果,却可能生成两个可抓取地址。跟踪参数、session id、排序默认值同理:用户看到的页面没变,URL 却变了。
3. 编码与特殊字符写法
同一个中文字符可能存在百分号编码与原始字符两种写法,空格写成 %20 还是 + 也可能被当成不同地址。带中文、带空格的 URL 建议统一成一种编码形式。
4. 默认值与冗余路径
/list?page=1 与 /list、/index.html 与 / 这类默认写法,如果都能访问且都返回 200,就凭空多出了一份重复入口。
处理顺序:先归一化,再谈索引收敛
- 确定唯一规范写法。每个页面只保留一个标准 URL,其余写法全部指向它,这是后面所有操作的前提。
- 在服务器或框架层做跳转。把大小写、末尾斜杠、默认参数等变形用 301 统一到规范地址,通常比只在页面里加标签更彻底。
- 统一站内链接写法。导航、面包屑、列表页、分享按钮产出的链接都用规范地址,避免自己不断制造新的变形入口。
- 让 canonical 与跳转保持一致。如果 canonical 指向 A、跳转指向 B,等于给出两个信号,收敛过程会变慢。
- Sitemap 只放规范 URL。顺手清理掉带跟踪参数、排序参数的地址。
- 谨慎使用 robots.txt 屏蔽。被屏蔽的 URL 无法被抓取,页面上的 canonical 也就读不到,反而更难收敛。
收敛之前,先看这些 URL 有没有价值
不是所有变形 URL 都值得立刻处理,可以按下面的顺序排优先级:
- 有外链或自然流量的变形 URL:优先做跳转,把信号集中到规范地址上。
- 仅由站内参数生成的变形 URL:先切断生成入口,再等索引自然收敛。
- 已被收录但无流量、也无外链的:从内链和 Sitemap 中移除即可,不必额外操作。
重复 URL 的治理通常是先止损、再收敛:先把站点自己产生变形的入口关掉,再等搜索引擎重新抓取和更新索引。这个过程需要时间,不会因为改了一处配置就立刻见效。
日常可以固定检查的几项
- 站内链接是否全部使用规范 URL,有没有混用带斜杠和不带斜杠的写法。
- 参数页、筛选页是否被站内链接大量指向。
- canonical、跳转、Sitemap 三处指向是否一致。
- 站长工具中的重复页面、备用页面报告是否有新增趋势。
把这几项做成定期检查,比每次发现重复再回头排查要省力得多。