抓取预算(crawl budget)不是一個能在後台直接看到的數字,而是蜘蛛在一段時間内愿意花在一個站点上的訪問次數。它受站点体量和蜘蛛自身判断共同影响:小站可能一天只有几十次,大站可能上萬次。理解這点,才能解释為什么有些頁面提交很久仍没被抓,而有些没提交的頁面反倒被翻了出来。
先分清抓取和收錄
抓取是蜘蛛取回 URL、拿到 HTML;收錄是内容進入索引、能被搜到。抓取是收錄的前置條件,但抓完不收錄很常见:内容單薄、重复度高、頁面價值不足,都可能让它在索引阶段被過滤。反過来,頁面被收錄過,也不代表以後不會被移除。
所以排查要分两层:抓不到,先解决發現路径與訪問問题;抓到了不收錄,再看内容质量和規范設定。把两件事混在一起看,很容易得出错誤结论。
抓取预算主要被什么消耗掉
- 參數组合生成的篩選頁、排序頁、無限列表頁
- 已下架或刪除、但站内仍有連結指向的地址,返回 404 或空壳 200
- 重定向鏈,一次跳轉就是額外一次抓取請求
- 层級很深的归档和分頁,蜘蛛顺着爬到底
- 同一内容的多套 URL,例如大小寫不同、带不带结尾斜杠、附带追踪參數
- CSS、JS 等静態资源,這類抓取通常占比不高,但小站也值得留意
哪些 URL 值得優先占用抓取机會
優先保留
- 首頁和核心栏目頁
- 主要的詳情頁、内容頁
- 更新频繁的列表第一頁
- 站点地图中标注的規范地址
可以放低
- 纯排序、纯篩選产生的參數頁
- 带會话 ID 或追踪碼的临时地址
- 長期不更新、位于深层归档的頁面
- 内容几乎相同的多版本地址
“放低”不等于完全不管。可以用 robots.txt 屏蔽部分參數、减少無效内鏈、用 canonical 指明規范版本,目的是把有限的訪問次數集中到真正希望被收錄的地址上。
自查预算有没有被浪費
- 拉一段時間的蜘蛛日誌,按狀態碼統計:200 占多少,3xx、404、5xx 各占多少。
- 看被抓的 URL 里,多少是你希望收錄的,多少是參數组合或歷史遗留地址。
- 把站点地图里的 URL 列表和實际被抓列表對照,看覆盖差距在哪。
- 检查内鏈:從首頁到重要頁面需要点几步,有没有完全没有入口的頁面。
- 看响應速度。服務器慢,單位時間内能完成的抓取次數就會下降,等于間接压缩了预算。
几個容易走偏的想法
一是把提交量当成抓取量,以為提交得多就抓得多;二是為了追求收錄數量批量制造參數頁,结果预算被稀释,主力頁面反而更新變慢;三是只看收錄總數,不看被抓的頁面里有多少是有用的。
抓取预算的作用是描述現状,不是可以随手調大的開關。真正能改的,通常是减少無效 URL、缩短内鏈路径、提升响應速度這几件事,而且都需要時間才能看出效果。
抓取预算解决的是“蜘蛛愿不愿意来、来得多不多”,收錄還取决于頁面本身值不值得留在索引里。两件事分開看,排查會清楚很多。