蜘蛛每天愿意花在一個站点上的抓取量,受站点体量、更新频率、服務器响應速度和歷史质量共同影响。它不是一個固定額度,而是蜘蛛根據過往经驗做出的分配结果。理解這一点,比记住“每天抓多少次”這種说法更有用。
抓取预算花在哪里,通常能看出来
如果服務器日誌里同一批 URL 反复出現,而真正需要更新的頁面却很久没被訪問,多半是抓取路径被無效連結带偏了。常见的情况包括:
- 篩選、排序、分頁參數组合出成百上千個地址,内容却高度相似;
- 站内搜尋结果頁被允许抓取,每個關鍵詞都能生成一個地址;
- 日歷、日期归档、無限滚動生成的大批空頁面;
- 重定向鏈條過長,一次抓取被拆成多次請求;
- 大量返回 404、410 或長時間超时的舊連結仍在被内鏈引用。
這些頁面本身未必有害,但它們會占用蜘蛛的請求次數。当抓取被它們吃掉,新頁面和更新頁面的發現速度就會變慢。
先用日誌和索引报告確認,再動手
不要凭感觉判断。把一段時間的訪問日誌按目錄、狀態碼、响應時間和抓取频率分组,能看到比較清楚的结构:哪些目錄被反复抓取,哪些目錄几乎没人来。索引报告里“已抓取尚未编入索引”的數量,也能從侧面反映一部分抓取被浪費的情况。
如果某個目錄的抓取量很大,但它對應的有效收錄很少,就值得检查這個目錄是不是由參數或列表组合生成的。反過来,如果核心内容目錄的抓取量很低,問题往往出在点击距离太深或内鏈太少,而不是蜘蛛不想来。
把抓取引導到值得收錄的頁面
調整的方向通常不复杂,但需要持續维護:
- 用 robots.txt 屏蔽纯參數组合頁、站内搜尋结果頁和排序篩選頁,前提是這些頁面不承担收錄任務;
- 给需要收錄的地址稳定的内鏈入口,避免頁面只有一處入口、藏在很深的目錄里;
- sitemap 只放規范 URL,並保持 lastmod 真實,不要每次全量刷新時間;
- 清理長期 404 的内鏈和失效跳轉,缩短重定向鏈;
- 提高服務端响應速度,让每次抓取更快結束,同样時間内能抓更多頁面。
更新频率與抓取频率並不完全對應
常更新的頁面,蜘蛛通常會提高訪問频率,但前提是它每次来都能看到有意义的改動。如果頁面每次打開都顯示新的時間戳、随机推荐或轮播内容,這些變化很难被当作實质更新,時間一長,回訪频率就會降下来。想维持較好的抓取频率,不如让改動真實可辨:正文有實质补充、列表有新增條目、库存或價格有真實變化。
另一個容易被忽略的点是站点整体規模。小站不太需要复杂的预算管理,几十個頁面的站点,蜘蛛基本能覆盖完。真正需要認真分配的,是那些由模板批量生成、URL 數量成千上萬的站点。
數量不是目标,覆盖才是
調整抓取预算最终要看的是:重要頁面是否被更及时地抓取,無效抓取是否下降。收錄量增加還是减少,取决于站点實际有多少值得收錄的頁面。堆砌大量相似頁面来換取收錄數字,往往會让索引里低质量内容的比例上升,對整体表現没有好處。
把抓取当成一種有限的注意力:先想清楚哪些頁面值得被反复看,再把入口留给它們。