做收錄检查时,很多人盯着“整站只收錄了一小部分”,但也有一種相反的情况:索引里的 URL 數量比站点真實頁面多出好几倍。這種状况通常被称為索引膨胀。它本身不是惩罚,但會让蜘蛛把抓取预算花在重复、低價值的地址上,也让索引里真正重要的頁面被稀释。
索引膨胀通常從哪来
大部分多余 URL 不是凭空出現的,而是同一份内容被拆成了多個地址:
- 參數组合:排序方式、篩選條件、每頁條數、分頁号,两两组合就能生成成百上千個地址。
- 追踪與會话參數:utm、gclid、session id 之類,往往只在分享連結或广告落地頁里出現,却照样能被蜘蛛抓到。
- 同一頁面的多個入口版本:http 與 https、带 www 與不带、大小寫混用、带不带尾斜杠。
- 空结果頁:篩選後没有内容,但頁面仍返回 200 且模板完整,容易被当成正常頁面處理。
- 标簽頁與归档頁:一篇文章挂十来個标簽,标簽之間還能繼續交叉组合。
- 打印版、移動版、AMP 版:没有做規范指向时,會被当作獨立頁面各自收錄。
先量化,再動手
處理之前最好先確認規模,方法並不复杂:
- 用 site 查询看索引里地址的大致形態,注意抽样多個位置,不要只看第一頁。
- 在搜尋控制台的頁面分组里按 URL 结构归類,看清哪几類占了大头。
- 拉一段服務器日誌,看蜘蛛實际抓了哪些地址。抓取频次高的那几類,通常就是主要来源。
- 把“索引里的 URL 數”和“站点真實頁面數”(sitemap 或資料库中的規范 URL)對比一下,差多少心里有數。
归類之後往往會發現,少數几個模式贡献了大部分多余 URL,優先處理它們,收益最明顯。
處理的先後顺序
- 先统一規范:把协议、域名、大小寫、尾斜杠收敛到一個版本,站内連結和 sitemap 都只用這個版本。
- 再處理參數:能在服務器或 CDN 层去重的,就不必依赖頁面上的指令;不能去重的,用 canonical 明确指向主版本。
- 再看頁面價值:确實没有獨立價值的地址可以考虑 noindex;整類都不该被抓的,用 robots.txt 挡住,但要清楚它只阻止抓取,已進入索引的 URL 可能還會停留一段時間。
- 最後检查内鏈:蜘蛛能爬到多少 URL,很大程度上取决于你给了多少入口,多余 URL 往往也從入口最多的地方冒出来。
几個容易踩的坑
把“索引里的 URL 多”直接等同于“被惩罚”,是最常见的誤判。多數情况下它只是技術层面的重复,處理干净即可,不必過度反應。
- 一刀切 noindex:把带參數的頁面全部屏蔽,可能连真正有用的分頁和篩選也一起丢了,先看這些頁面有没有带来訪問和轉化。
- 只改 canonical 不改内鏈:蜘蛛仍會從站内不断發現舊地址,收敛速度會很慢。
- 指望立刻生效:索引更新有自己的节奏,通常需要數周,期間繼續观察,不要频繁改策略。
處理索引膨胀的目标不是让索引里的數字變小,而是让留下来的每一個 URL 都有存在的理由。做到這一点,抓取效率和對頁面质量的判断都會更清晰。