站点小的时候,蜘蛛每天来几次,頁面少,基本都抓得完,很少需要考虑抓取预算這件事。等站内頁面上到几千、几萬,尤其是加上篩選、排序、分頁、日歷這類會批量生成 URL 的功能之後,問题就會浮現:蜘蛛每天都来,但抓的都是些没流量的頁面,真正想被收錄的新内容反而排不上队。
抓取预算到底是什么
它不是搜尋引擎给每個站点發的固定配額,而是一個相對结果。站点速度、内容更新频率、頁面质量、連結结构,都會影响蜘蛛愿意在你這儿花多少時間。可以粗略理解成:蜘蛛每天能在你的站点上走多少步,這些步數用在了哪些頁面上。
预算被浪費,通常不是因為頁面太多,而是因為值得抓的頁面和不值得抓的頁面混在一起,蜘蛛分不出来。
常见的浪費来源
- 站内搜尋结果的 URL 被大量生成,每個關鍵詞一個地址,内容稀薄。
- 篩選、排序、视图切換參數叠加,同一批商品能拼出几十上百個網址。
- 日歷、日期归档頁只翻頁不更新,内容長期没有變化。
- 分頁翻到很深的位置,後面的頁碼几乎没人訪問,也没有獨立價值。
- 站点地图里塞進了本来不希望被收錄的頁面。
- 5xx 和長時間無响應的地址被反复重试,占掉大量請求次數。
怎么自查
第一步:看日誌,而不是只看报表
後台統計工具给的是抽样结果,服務器日誌才是原始记錄。可以按蜘蛛 UA 過滤,統計一段時間内的請求總數、URL 分布和返回碼分布。重点看两件事:哪些目錄被抓得最多,以及這些目錄带来了多少自然流量。抓取量和流量嚴重不成比例的地方,就是浪費最集中的地方。
第二步:統計返回碼
- 大量 404:說明站内還在指向已经刪除的頁面。
- 大量 301、302:跳轉鏈太長,蜘蛛要多花几步才能到正文。
- 大量 5xx 或超时:服務器扛不住,整体抓取量會被压缩。
- 大量 200 但内容重复:多半是參數和規范連結没處理好。
第三步:核對 sitemap 與 noindex
站点地图里列出的 URL,應当是你希望被收錄的那一批。如果里面混着搜尋结果頁、购物车、用戶中心、已下线的活動頁,等于主動把蜘蛛引到低價值位置。反過来,已经用 noindex 标记的頁面,就不要再寫進 sitemap,两個信号互相打架,只會让判断變得更慢。
處理思路
發現問题之後,處理方式大致分三類:
- 挡住不该抓的:對參數頁、搜尋结果頁、没有價值的排序视图,用 robots.txt 屏蔽抓取,或者用 noindex 让已收錄的頁面慢慢登出。注意两者用途不同:robots.txt 能减少抓取,但被屏蔽的頁面如果已经被收錄,搜尋引擎看不到頁面上的 noindex 标记;對已经收錄的頁面,優先用 noindex。
- 合並重复的:參數只保留必要的那几個,其余通過規范連結指向主版本,内部連結统一指向規范地址,不要再往參數版本上加權。
- 把重要的推上去:核心栏目减少点击层級,從首頁和上級栏目给出稳定入口;新内容發布後第一時間在站内被連結到,並让 sitemap 的 lastmod 如實反映更新。
抓取预算是相對的。你把低價值頁面清理掉,蜘蛛自然會把時間挪到有價值的頁面上;但如果站点本身响應慢、经常报错,清理得再干净,也没多少請求可用。
多久看一次
頁面規模不大时,半年看一次日誌足够了。如果站点在持續上新,或者刚上线了會批量生成 URL 的功能(篩選、站内搜尋、多語言、地区切換),建议上线後两周内就看一次日誌,確認新生成的地址没有失控。
把日誌分析当成固定動作,而不是出問题才临时翻记錄,很多抓取上的異常,在演變成事故之前其實都能被看出来。