抓取预算不是玄学,而是一筆有限的額度
蜘蛛在一段時間内愿意為某個站点發起多少次請求,大致是有上限的。這個上限由几件事决定:服務器响應是否稳定、頁面返回是否干脆、站点里有多少可抓的 URL、以及這些 URL 的歷史表現。可以把它想成一張額度卡——花在低價值頁面上的每一次請求,都是從核心内容那里挪走的。
所以讨论抓取预算,重点不是去猜具体數字,而是让每一次抓取都落在值得抓的 URL 上。
哪些 URL 正在悄悄消耗額度
- 篩選、排序、會话參數生成的無限组合,同一批商品被拼出成百上千個 URL。
- 分頁翻得极深的列表頁,越往後内容重复度越高,蜘蛛仍要一頁頁走。
- 软 404:狀態碼是 200,内容却是“暂無資料”“已下架”。
- 重定向鏈:A 跳 B,B 跳 C,每一跳都是一次額外的請求。
- 空标簽頁、空分類頁、只由站内搜尋产生的 URL。
這些頁面單看都不致命,叠在一起就會把額度吃得干干净净,让新發布的内容迟迟等不到抓取。
把額度集中给三類頁面
核心内容頁
詳情頁、文章頁、商品頁——真正承载價值、能被搜尋需求命中的頁面。它們應该离首頁更近,内鏈指向更明确。
入口與列表頁
列表頁是蜘蛛在站内移動的通道。通道要通,但不需要無限深;保留有内容的分頁,砍掉空分頁和參數组合頁。
更新频繁的頁面
抓取频率最好和更新频率大致匹配。每天更新的栏目,不该和半年不動一字的頁面享受同样的回訪节奏。
内鏈與 Sitemap 各管一段
内鏈解决的是“優先級”和“路径”:蜘蛛沿着連結走,連結的位置、层級、數量都會影响它先抓谁。Sitemap 解决的是“补全”:把散落在深處的 URL 集中交出去,但它更像清單,不等于優先級投票。
- 重要頁面放在首頁或一級栏目入口,別只靠 Sitemap 兜底。
- Sitemap 只放可索引、canonical 明确的 URL,把 404、重定向、參數頁排除在外。
- lastmod 寫真實修改時間,長期不變就別天天改。
服務器狀態是预算的隐形開關
抓取中断往往不是内容問题,而是响應問题。首字节時間過長、5xx 比例偏高、偶尔超时,都會让蜘蛛降低訪問频次——它回来得更谨慎,恢复也需要時間。
- 關注 TTFB 和错誤率的波動,而不只是平均响應時間。
- 確認 robots.txt 與防火墙没有誤拦,把蜘蛛 IP 段放行。
- 大流量活動前评估抓取压力,別让蜘蛛和用戶抢同一份资源。
用資料確認額度有没有花對地方
- 從日誌里抽样一周的抓取记錄,按目錄或模板統計抓取占比。
- 對比抓取频次與内容更新频率,看是否错配。
- 模拟一次站内爬取,观察從首頁到詳情頁需要几跳、有没有回环。
- 观察核心 URL 的發現與抓取間隔,是否随調整而缩短。
抓取预算没有统一數值,也不该被当成一個可以一键調大的開關。能做的是减少浪費、把路径理顺,剩下的交给時間和持續观察。
調整不必一次做完,先砍掉最明顯的浪費源,再逐步優化入口层級與 Sitemap,通常比大改一轮更稳。