做收录核对时,很多人会先看索引量。但真正值得留意的是另一种情况:索引里的 URL 数量,比站点实际存在的页面还多。多出来的部分通常不是搜索引擎凭空生成,而是同一份内容的不同地址被分别记了一笔。搞清楚它们的来源,比单纯盯着总量涨跌更有用。
先确认“多”是不是真的多
索引量是估算值,本身会波动,偶尔高一点低一点不必紧张。要判断是否真的膨胀,可以拿三份数据交叉比对:站点地图里提交的 URL、抓取日志里出现过的 URL,以及从首页出发顺着内链能走到的 URL。三者合并去重后,得到一个大致的“应有页面数”,再和索引量对照。如果差出成百上千,而且集中在某几种地址形态上,就属于可处理的范围。
多出来的 URL 一般来自这几类
- 追踪与会话参数:utm_、gclid、fbclid、sid 这类参数,用户点一次就多一个地址。
- 排序、筛选、视图参数:?sort=、?view=list、?page=2 这类组合,很容易被逐条发现。
- 同路径的写法变体:大小写不同、结尾斜杠有无、多带一个 index.html。
- 协议与域名变体:http 与 https、带 www 与不带 www,历史上都留下过入口。
- 移动版、打印版、AMP 等副本:同一篇内容被输出成多个模板。
- 站内搜索结果页:只要有人从外部点进来,就可能被当成独立页面。
- 接口或数据文件暴露的地址:JSON、XML、CSV 里的链接被顺藤摸瓜地发现。
- 旧域名、测试域名、CDN 域名上的镜像副本。
按形态归类,再看每组值不值得留
只导出一份 URL 列表意义不大,先按参数名、路径层级、域名分组。分组之后给每组打两个标记:数量,以及这组 URL 在过去一段时间有没有带来过搜索点击。有转化的参数页可以考虑保留并做规范化,纯参数副本和明显的写法变体则倾向收敛。这样处理起来有优先级,也不至于一刀切误伤。
处置的大致顺序
- 域名与协议层重复:优先用 301 统一到唯一版本,这一层影响面最大。
- 参数副本:主版本保留可抓取,其余版本用 canonical 指向主版本;确实不需要的,再考虑限制抓取。
- 站内搜索与结果页:通常不建议进索引,处理时注意不要只靠 robots.txt。
- 旧域名与镜像:统一跳转到现行域名,避免两套地址同时被访问到。
注意:被 robots.txt 挡住的 URL,搜索引擎通常读不到页面上的 noindex。想让某个地址退出索引,要么让它能被抓取并返回 noindex,要么确认它不会再被外部链接访问。两者混用很容易事与愿违。
顺手把内链和站点地图收一收
很多变体地址是被自己的内链喂出来的。检查页脚、面包屑、标签云、分页控件,确认输出的都是规范版本。站点地图只放希望被访问的 URL,不要把带参数的变体一并提交。内链收敛之后,新产生的变体会明显减少,这比事后清理省力得多。
改完之后看什么
不要只看索引总量。按前面分好的组分别跟踪,观察每一组的数量是否在缓慢下降,同时确认规范版本的抓取频次有没有上升。这个过程通常要按周看,几天的波动说明不了什么。如果某一组迟迟不动,再回头检查该组的链接入口是不是真的被断掉了。