很多人把抓取预算理解成搜尋引擎發给每個網站的固定配額,好像後台摆着一個數字。實际不是。蜘蛛每天来多少次、抓走多少 URL,是两股力量互相妥协的结果:一邊是它觉得你站上有多少内容值得抓,另一邊是你的服務器能稳定承受多少請求。任何一端收紧,最後的抓取量都會往下掉。
需求端:蜘蛛想抓多少
需求端看的是“值不值得”。同一批 URL,更新越频繁、被内鏈和外鏈指向越多、内容越獨立,被抓的理由就越充分。反過来,大量近似重复的頁面、長期不動的归档、參數拼出来的空结果頁,會摊薄需求。
- 更新节奏:整站每天大改和一年不動,蜘蛛的訪問密度完全不同。
- 内鏈结构:從入口頁到目标頁的跳轉次數越少,越容易被反复检查。
- Sitemap 與 lastmod:時間戳寫得真實,等于提前告诉蜘蛛哪些頁面值得再看一眼。
- 外鏈與站内引用:有真實入口的頁面,通常比只出現在 Sitemap 里的頁面来得更快。
容量端:服務器能接多少
容量端看的是“抓得動吗”。蜘蛛會持續观察响應時間、错誤率和连接稳定性,然後調整並發。如果頁面平均响應在两三秒以上,或者高峰时频繁出現 5xx、超时,它會主動降速,而這個降速往往比你想的恢复得更慢。
- 响應時間:把首字节時間压下来,比事後解释更有效。
- 错誤率:5xx 和超时會被当作服務器吃力的信号。
- 429 與限速:确實需要控制时,用明确的狀態碼,而不是直接断连。
- 抓取时段:维護窗口尽量避開蜘蛛习惯的訪問時間,减少無谓失敗。
判断瓶颈在哪一端
- 看抓取總量趋势:長期平缓、新頁面迟迟不被抓,偏需求端問题。
- 看响應時間與错誤率:抓取量下降同时伴随延迟上升,偏容量端問题。
- 看抓取分布:如果抓取都集中在老頁面和低價值頁面,說明需求端没被引導好,该整理内鏈和 Sitemap 了。
抓取预算不是申請来的,是观察出来的。结构調整完,用两到四周的日誌去對比,別指望第二天就有變化。
常见的几個誤区
- 提交 Sitemap 就能提升抓取量:Sitemap 解决的是“知道有這個 URL”,不等于“愿意多抓”。
- 頁面越少抓得越深:删掉低價值頁面能减少浪費,但重要頁面本身没有入口、没有更新,抓取也不會自動變多。
- 堆服務器配置就够:容量只是上限,需求端不给信号,配置再好也用不满。
可以做的調整
- 整理站内連結,让重要頁面在两三次跳轉内可達。
- 把 Sitemap 控制在有效 URL 范围内,lastmod 保持真實。
- 把响應時間和 5xx 当成日常监控項,而不是出問题才看。
- 定期清理死鏈、空列表頁和重复參數頁,减少無效抓取。
两端各管一半。先確認是哪一端在限制你,再動手,比一味地“想办法让蜘蛛多来”省力得多。