抓取预算常被说成一個固定額度,但更准确的理解是:它由站点自身的條件推導出来。可抓 URL 的數量、服務器响應速度、内容更新频率,這三項不同,蜘蛛愿意投入的抓取次數就完全不同。大站不一定预算高,小站也不一定被冷落,關键看抓取效率。
预算大致由三個變量决定
- 可抓 URL 總量。URL 越多,蜘蛛铺開抓一遍需要的次數越多,單個頁面能分到的次數就越少。
- 抓取容量。服務器响應稳定、延迟低,蜘蛛可以在同样時間里請求更多 URL;响應慢或经常超时,抓取速度會自動降下来。
- 更新频率。内容更新频繁的站点,重抓意愿更高;長期不更新的頁面,即使被抓也难以带来收益。
這三者里,站長能主動改善的是中間环节:减少無價值 URL,同时让重要頁面更容易被抓到。
预算通常被消耗在哪里
大多數站点的抓取浪費不是“被抓太多”,而是“被抓的東西不對”。常见的消耗点包括:
- 篩選、排序、追踪參數生成的 URL 组合,内容與主列表基本相同;
- 标簽頁、归档頁、日歷頁层层嵌套,彼此高度重复;
- 软 404 和空壳頁,蜘蛛抓到了却没有可用内容,也不會繼續深入;
- 翻得极深的列表分頁,後面的頁面几乎没有被訪問的可能;
- 站内搜尋结果頁,數量可以無限生成。
把抓取次數留给重要頁面
内鏈决定發現顺序
蜘蛛進入站点後主要靠連結扩展。重要頁面距离首頁的点击次數越少,被抓到的机會越大。把核心栏目放進導航和正文内鏈,比埋在頁脚或只寫在 Sitemap 里更有效。
Sitemap 只放需要抓的 URL
Sitemap 不是全站备份。把參數頁、重复列表、已下线的地址塞進去,只會让蜘蛛把時間花在不该抓的地方。保持文件與實际有效頁面對應即可。
该拦的拦住,该處理的處理干净
不需要被發現和抓取的目錄,可以用 robots.txt 挡住;但要注意,被 robots.txt 屏蔽的 URL 不會再被下载,也就讀不到 noindex 指令。如果頁面已经收錄且希望移除,通常需要先允许抓取,再通過 noindex 或狀態碼来處理,顺序不要弄反。
服務器表現會直接影响抓取节奏
抓取量並不只跟 URL 數量有關。当平均响應時間明顯上升,蜘蛛會降低並發、放慢节奏;如果持續出現 5xx 或连接超时,抓取量可能進一步收缩。也就是说,頁面數量没變,但因為服務器變慢,實际能抓完的 URL 反而更少。這一点在排查“抓取量莫名下降”时经常被忽略。
怎么判断预算用在了對的地方
- 看日誌里被抓次數最多的 URL 類型,是詳情頁還是參數頁;
- 看狀態碼分布,5xx、超时、404 的占比是否偏高;
- 看重要頁面的抓取間隔是否長期没有變化;
- 看新發布的 URL 多久第一次被抓到,判断發現路径是否通畅。
抓取预算優化的目标不是让蜘蛛抓得更多,而是让抓取的内容更接近你希望被收錄的那部分頁面。
几個常见誤区
- 提交 Sitemap 就等于提升预算——Sitemap 主要影响發現,不直接改變抓取容量;
- 给頁面加 noindex 就能省预算——noindex 頁面仍然需要被下载才能讀到该指令;
- 抓取量下降一定是被降權——更常见的原因是响應變慢、URL 數量激增或内容長期未更新。
把這几件事分開看,通常比盯着“抓取總量”這一個數字更容易找到問题所在。