抓取预算不是一個固定數字
很多站点在讨论收錄时,會預設爬虫總能“把整站看一遍”。實际上,搜尋引擎對單個站点在一段時間内的抓取次數和並發是有限度的,這個額度常被称作抓取预算(crawl budget)。它没有公開的固定值,會随站点規模、更新频率、服務器响應速度和歷史抓取表現而變化。
所以問题往往不是“爬虫有没有来”,而是“来的时候把時間花在了哪里”。如果重要頁面迟迟不被抓取,先別急着重复提交,通常要看两件事:有没有在低價值 URL 上浪費額度,以及有没有明确信号把爬虫引向核心頁面。
先看浪費:几類常见的预算消耗
參數组合和會话類 URL
篩選、排序、分頁參數、會话 ID、追踪參數,如果每一種组合都能生成可抓取的地址,爬虫很容易在同一批内容上反复打轉。
- 确實没有收錄價值的參數组合,可以考虑用 robots.txt 挡掉,但要確認不會连带挡住核心頁。
- 頁内篩選尽量采用不生成新可抓取地址的方式實現,或者用 noindex 控制,同时保證入口可控。
- 會话類、追踪類參數對收錄没有帮助,尽早去掉或在站内連結中規范掉。
跳轉鏈和失效地址
一次跳轉常常要多花一次請求,鏈式跳轉(A→B→C)比直接跳轉更浪費。如果站内還在大量連結到已经 301 的舊地址,爬虫就會反复走同一條绕路。把内鏈直接指向最终地址,並把跳轉压缩到一层,通常比事後补救更省事。
404、软 404 和空壳頁
這些地址本身没有收錄價值,却會持續被内鏈或站点地图送進抓取队列。定期清理内鏈里的死鏈,把确實没有内容的頁面下架或返回明确的失效狀態,比让它們長期挂着更省額度。
再把額度引向重要 URL
减少浪費只是一半,另一半是给爬虫清晰的優先級。
- 内鏈位置:從首頁、栏目頁、相關文章模块鏈出去,通常比藏在很深层級里更容易被频繁抓取。
- 被引用次數:同一地址被站内多篇内容自然引用,比只出現在站点地图里一次更容易被注意到。
- 层級深度:核心頁面尽量控制在較浅的点击深度,詳情頁不要只能通過“加载更多”到達。
- 站点地图:把真正希望被收錄的 URL 放進去,lastmod 保持真實,不要把所有歷史頁面反复刷成新日期。
- 更新节奏:内容有實质變化时再更新,频繁無意义地改動會让新舊内容一起被稀释。
几項可观察的核對項
抓取预算的分配情况,可以通過抓取統計和服務器日誌粗略判断:
- 抓取請求里有多大比例落在參數頁、跳轉地址和 404 上;
- 核心目錄的抓取次數是否長期低于低價值目錄;
- 重要新頁面從上线到首次被抓取的間隔是否在缩短;
- 服務器响應時間是否拖慢了整体抓取节奏。
抓取額度更像是長期的分配問题:少让爬虫走错路,多让它走對路。具体能抓多少、什么时候收錄,仍由搜尋引擎决定,我們能做的是把條件尽量摆好,而不是承诺结果。