抓取预算不是配額,而是有限的来訪机會
搜尋引擎對每個站点的抓取强度會動態調整,站点能拿到的抓取次數並没有公開的固定上限。但在某一段固定時間里,搜尋蜘蛛愿意花在這個站点上的請求數是有限的:它多抓一次篩選參數頁,就可能少抓一次刚上线的詳情頁。所谓“抓取预算”,更實用的理解是——在同样多的来訪次數里,哪些 URL 更值得被訪問。
這個话题容易讲成玄学,但它其實是可以用日誌算出来的。做法不复杂:把一段時間的抓取记錄按 URL 模板聚合,看清楚次數分给了谁。
先做分類統計,再谈優化
日誌里至少要落這几列
- 請求時間與抓取耗时
- 完整 URL,包含查询參數
- 返回狀態碼與响應字节數
- User-Agent 與来源 IP 段
- Referer,用于判断是哪個入口把蜘蛛带進来的
多數站点按天導出即可,再按 URL 模板做聚合,就能看到分布。
分類口径建议分两层
第一层按用途分:有内容價值的頁面、分頁與归档、静態资源、接口與跳轉類 URL。第二层按模板分:詳情頁、列表頁、篩選组合頁、附件頁等。两层交叉後,通常一眼就能看出哪一類占了大头。
几類常见的“高消耗、低回报”入口
篩選與排序參數
多選篩選很容易组合出成百上千條 URL,内容却與主列表高度重叠。這類地址如果被大量抓取,回报往往很低。常见處理是给主列表保留一條規范地址,篩選结果通過 robots 拦截或在前端改為不产生獨立 URL 的交互。
静態资源是否放行
現代搜尋引擎需要抓取 CSS 與 JS 才能理解渲染後的頁面,全部拦截反而可能影响它對頁面内容的判断。比較稳妥的做法是保留主样式與主脚本,把构建产物、带版本哈希的副本、临时文件挡在外面。
低價值分頁與無限归档
深翻分頁和按日期自動生成的归档頁,越往後内容越稀薄。可以限制分頁可翻的深度,归档頁只保留按月入口,避免让蜘蛛顺着“下一頁”一路走下去。
同一内容的多條路径
带追踪參數、大小寫變体、尾斜杠差异的地址,如果都能返回 200,就等于把抓取次數摊薄在同一個頁面上。這類問题通常用規范連結配合服務端归一化處理更省事。
處理顺序:先止血,再回收
- 先確認異常抓取是不是来自镜像站或采集行為,排除誤判再動手。
- 對確認無價值的模板做收敛:统一入口、關閉内部連結、必要时用 robots 拦截,或让地址返回合适的狀態碼。
- 保留一段观察期,通常两到四周,看詳情頁的抓取次數是否回升。
- 如果抓取總量上升而有效頁面占比没變,說明拦掉的部分被別的模板补上了,需要回到第一步重新分類。
收敛之後怎么驗證
- 看有效頁面(有内容、需要被收錄的頁面)抓取次數占全部来訪的比例,而不是只看總次數。
- 看新發布頁面從上线到第一次被抓的間隔有没有缩短。
- 看抓取耗时和 5xx 比例,服務器變慢时,抓取频率往往是最先受影响的指标。
抓取频次的變化通常滞後于改動,按周對比比按天對比更可靠。不要因為一两天没動静就反复調整,那样只會让日誌變得难以解讀。