搜尋抓取

抓取需求與抓取容量:蜘蛛来得勤,頁面為什么還是没爬完

蜘蛛訪問频繁,不等于頁面會被爬完。抓取需求是站点暴露出的 URL 總量,抓取容量是搜尋引擎愿意投入的抓取次數。本文讲怎么從日誌判断瓶颈在哪一侧,以及從服務器稳定性、低價值 URL 精简、Sitemap 與内鏈结构几個方向做調整。

搜尋抓取

抓取需求與抓取容量:蜘蛛来得勤,頁面為什么還是没爬完

两個容易被混在一起的概念

很多站長看日誌时會有一個疑問:蜘蛛每天都来,訪問次數也不少,可站内還是有大片 URL 從来没被爬過。這種情况通常不是“蜘蛛没来”,而是抓取需求大于抓取容量。抓取需求指的是站点暴露给搜尋引擎、希望被處理的 URL 總量;抓取容量指的是搜尋引擎愿意分给你這個站点的抓取次數上限。两者不是一回事,站点規模、更新频率、服務器表現都會影响後者。

当需求長期超過容量时,表現就是:新頁面發現得慢、老頁面更新不及时、部分 URL 長期停留在“已發現未抓取”的狀態。這时候單纯增加内鏈、多提交 Sitemap 未必有用,因為入口變多了,池子還是那么大。

先判断瓶颈在哪一侧

  • 偏向容量受限:日誌里蜘蛛訪問次數長期平稳甚至下降,抓取时段集中在少數几個小时,5xx、429、超时占比偏高,頁面响應時間波動大。
  • 偏向需求過剩:蜘蛛来得勤、抓得也顺,但抓的多是篩選頁、參數頁、重复列表頁,真正需要更新的内容頁很少被碰。
  • 两者並存:常见于内容量大、模板生成頁面多、服務器资源又比較紧張的站点。

判断方法不复杂:把一段時間内的日誌按 URL 類型分组,看蜘蛛把抓取次數花在了哪几類頁面上,再和 Sitemap 里你真正在意的地址做對照。差距出現的地方,基本就是問题所在。

扩容:让服務器先扛得住

抓取容量不是靠申請得来的,它更多是搜尋引擎根據站点表現给出的结果。要让它往上走,最先要處理的是稳定性:

  • 减少 5xx 和超时。哪怕是高峰期的短暂报错,也會让蜘蛛放缓节奏。
  • 控制响應時間,避免同一批 URL 的响應時間忽快忽慢。
  • 少用多跳重定向,每一次跳轉都占一次抓取名額。
  • 對蜘蛛的請求不要做過于嚴格的频率限制,誤伤會把正常抓取挡在门外。

這些改完不一定立刻见效,但它們是容量能否提升的前提。

减需:把不值得爬的 URL 收起来

多數站点的抓取需求是虚高的。以下几類 URL 经常占掉大量名額,却几乎没有價值:

  1. 站内搜尋结果頁、多條件组合的篩選頁。
  2. 排序、翻頁參數产生的近似重复地址。
  3. 带追踪參數的分享連結、會话參數。
  4. 已经下线但仍在被内鏈指向的歷史頁面。

處理方式可以分轻重:能合並的做归一化,能收敛的用 robots 規則或頁面級 noindex,能從内鏈里摘掉的尽量摘掉。Sitemap 只放你希望被處理、且确實有價值的地址,把它当成一份優先級清單,而不是把全站都塞進去。

内鏈结构决定抓取路径的效率

容量有限时,路径長短直接影响结果。蜘蛛從一個入口出發,跳轉次數越多,能覆盖的 URL 越少。把重要栏目放在導航或首頁的固定位置,让核心内容距离入口近一些;分類頁、标簽頁之間建立清晰的上下級關系,避免大量互相指向的循环;列表頁分頁做成可走的連結序列,而不是只靠脚本加载。這些都是不增加服務器负担的調整。

抓取優化很少是單点問题。容量、需求、路径三者互相牵制,只調其中一項,往往看不到明顯變化。

用一份简單的對照表跟踪效果

建议每周做一次對照:Sitemap 提交的 URL 數、日誌里被實际爬到的 URL 數、其中内容頁占比、平均响應時間、错誤狀態占比。几周下来的趋势比單日資料更有參考價值。如果被爬 URL 總數没變,但内容頁占比上升,說明减需起效了;如果訪問次數和响應時間同步改善,說明容量侧在恢复。

需要提醒的是,抓取节奏的調整由搜尋引擎决定,站方能做的是把自己的部分做扎實:结构清楚、地址干净、服務器稳定。剩下的交给時間。