搜尋抓取

抓取预算不是配額:蜘蛛每天愿意在你的站点里花多少時間

抓取预算常被当成一張固定額度,其實它由抓取速率上限和抓取需求共同决定。本文說明预算變紧时的几個信号,给出用服務器日誌估算實际抓取量的步骤,並整理减少無效入口、维持重点頁面抓取频率的常见做法。

搜尋抓取

抓取预算不是配額:蜘蛛每天愿意在你的站点里花多少時間

很多站長把抓取预算理解成搜尋引擎给的一張固定額度,好像今天没用完明天還能累积。實际不是這样。抓取预算更像一種临时分配:蜘蛛在某個時間段里愿意在你的站点上花多少並發、多少請求,取决于它對你站点的判断,也取决于它自己手头還有多少事。

抓取预算的两半

行业里通常把它拆成两部分:抓取速率上限和抓取需求。前者偏技術约束,服務器慢、超时多,蜘蛛就會自動降速;後者偏意愿,取决于你的頁面有多少值得抓、更新多频繁、在站内處于什么位置。

這两半的調整方式完全不同。速率上限靠優化服務器和响應時間就能松開,抓取需求則要靠内容和结构去争取。很多站点只盯着前一半,结果响應時間從 800ms 優化到 200ms,抓取量涨了一波就停了,因為後一半没動。

预算變紧的几個信号

  • 日誌里蜘蛛請求集中在少數几個目錄,深层頁面几乎不出現;
  • 同一批 URL 反复被抓,另一些長期不出現;
  • 抓取时段抖動大,白天很少、凌晨集中;
  • 大量 5xx 或超时之後,整体抓取量随之下滑。

用自己的日誌估個數

  1. 按天統計蜘蛛請求總數,並去掉重复 URL,得到真正被抓到的頁面數;
  2. 看狀態碼分布,200 之外的比例是否偏高;
  3. 看平均响應時間和 P95,慢的往往是動態接口或带參數的列表頁;
  4. 看被抓次數最多的前 100 個 URL,它們是不是你想要的重点頁面;
  5. 對比 Sitemap 里的 URL 集合與實际被抓集合,差集就是没覆盖到的部分。

這一步做完,通常就能看出問题出在蜘蛛不想来,還是蜘蛛来了但被你拖住了。

把预算花在刀刃上

减少無效入口

參數组合、排序方式、站内搜尋结果頁,這類 URL 數量可以無限膨胀,但價值很低。用 robots.txt 拦截、用 canonical 收敛,或者在頁面上干脆不给它們可抓連結,都是常见做法。關键是別让它們出現在蜘蛛能顺着爬到的地方。

维持重点頁面的重抓频率

内鏈是成本最低的一種提示。把重要頁面放在首頁或栏目的稳定位置,比把它埋在三級列表里更能维持抓取频率。同时留意頁面本身的更新节奏,長期不變的頁面被抓频率下降是正常現象,不必為了催抓而制造無意义的改動。

一個常被忽略的点:预算按主机名算

如果图片、静態资源放在獨立域名下,那是另一份预算,不會互相挤占。反過来,把大量内容放在同一域名下的不同子目錄,它們共享同一份抓取能力。做站点拆分或合並时,這一点值得提前想清楚。

抓取预算不是你能申請到的资源,而是蜘蛛根據你的站点表現临时给出的判断。

几件不建议做的事

  • 為了催抓取频繁提交 Sitemap,重复提交通常不會带来額外抓取;
  • 用大量低质頁面铺量,指望覆盖更多關鍵詞,往往只會摊薄每個頁面分到的抓取;
  • 服務器不稳定时繼續加大發布量,抓取量反而可能往下走。

總的来说,想提高抓取效率,先保證服務器稳定、URL 干净、重点頁面有清晰入口,剩下的事情交给時間。抓取量的變化通常是渐進的,短期内看不到明顯起伏属于正常。