搜尋抓取

抓取预算的分配核對:哪些 URL 在消耗搜尋蜘蛛的来訪次數

搜尋蜘蛛在一段時間内的来訪次數是有限的,多抓一批參數頁,就可能少抓一批新頁面。本文给出一套從抓取日誌出發的分類統計方法,帮助区分真正带来價值的 URL 與高消耗低回报的入口,並整理出收敛動作的先後顺序和驗證周期。

搜尋抓取

抓取预算的分配核對:哪些 URL 在消耗搜尋蜘蛛的来訪次數

抓取预算不是配額,而是有限的来訪机會

搜尋引擎對每個站点的抓取强度會動態調整,站点能拿到的抓取次數並没有公開的固定上限。但在某一段固定時間里,搜尋蜘蛛愿意花在這個站点上的請求數是有限的:它多抓一次篩選參數頁,就可能少抓一次刚上线的詳情頁。所谓“抓取预算”,更實用的理解是——在同样多的来訪次數里,哪些 URL 更值得被訪問。

這個话题容易讲成玄学,但它其實是可以用日誌算出来的。做法不复杂:把一段時間的抓取记錄按 URL 模板聚合,看清楚次數分给了谁。

先做分類統計,再谈優化

日誌里至少要落這几列

  • 請求時間與抓取耗时
  • 完整 URL,包含查询參數
  • 返回狀態碼與响應字节數
  • User-Agent 與来源 IP 段
  • Referer,用于判断是哪個入口把蜘蛛带進来的

多數站点按天導出即可,再按 URL 模板做聚合,就能看到分布。

分類口径建议分两层

第一层按用途分:有内容價值的頁面、分頁與归档、静態资源、接口與跳轉類 URL。第二层按模板分:詳情頁、列表頁、篩選组合頁、附件頁等。两层交叉後,通常一眼就能看出哪一類占了大头。

几類常见的“高消耗、低回报”入口

篩選與排序參數

多選篩選很容易组合出成百上千條 URL,内容却與主列表高度重叠。這類地址如果被大量抓取,回报往往很低。常见處理是给主列表保留一條規范地址,篩選结果通過 robots 拦截或在前端改為不产生獨立 URL 的交互。

静態资源是否放行

現代搜尋引擎需要抓取 CSS 與 JS 才能理解渲染後的頁面,全部拦截反而可能影响它對頁面内容的判断。比較稳妥的做法是保留主样式與主脚本,把构建产物、带版本哈希的副本、临时文件挡在外面。

低價值分頁與無限归档

深翻分頁和按日期自動生成的归档頁,越往後内容越稀薄。可以限制分頁可翻的深度,归档頁只保留按月入口,避免让蜘蛛顺着“下一頁”一路走下去。

同一内容的多條路径

带追踪參數、大小寫變体、尾斜杠差异的地址,如果都能返回 200,就等于把抓取次數摊薄在同一個頁面上。這類問题通常用規范連結配合服務端归一化處理更省事。

處理顺序:先止血,再回收

  1. 先確認異常抓取是不是来自镜像站或采集行為,排除誤判再動手。
  2. 對確認無價值的模板做收敛:统一入口、關閉内部連結、必要时用 robots 拦截,或让地址返回合适的狀態碼。
  3. 保留一段观察期,通常两到四周,看詳情頁的抓取次數是否回升。
  4. 如果抓取總量上升而有效頁面占比没變,說明拦掉的部分被別的模板补上了,需要回到第一步重新分類。

收敛之後怎么驗證

  • 看有效頁面(有内容、需要被收錄的頁面)抓取次數占全部来訪的比例,而不是只看總次數。
  • 看新發布頁面從上线到第一次被抓的間隔有没有缩短。
  • 看抓取耗时和 5xx 比例,服務器變慢时,抓取频率往往是最先受影响的指标。
抓取频次的變化通常滞後于改動,按周對比比按天對比更可靠。不要因為一两天没動静就反复調整,那样只會让日誌變得难以解讀。