很多人做蜘蛛池时有個直觉:入口頁越多,蜘蛛来的次數就越多,目标頁被带到的机會也越大。這個直觉在起步阶段大致成立,但铺到一定規模之後往往會失效——蜘蛛的来訪總量没有明顯增長,摊到每個入口頁上的抓取次數却在下降。要理解這件事,需要先搞清楚搜尋引擎给單個站点分配的抓取预算。
什么是抓取预算
抓取预算可以粗略理解為:搜尋引擎在一個時間段内,愿意從某個站点抓取多少個 URL。它不是固定值,而是由站点评級、更新频率、响應速度、歷史抓取效果等多個因素共同决定的一個動態額度。蜘蛛来訪时,會在這個額度内挑選它認為值得抓的 URL,抓完就走。
關键点在于:額度是给站点的,不是给頁面的。一個站点能拿到的總预算有限,頁面越多,平均到每個頁面上的次數就越少。入口站如果铺了几萬個頁面,而站点本身並不被信任,那么绝大多數頁面可能長期處于排不上队的狀態。
预算被谁吃掉了
在讨论數量之前,先看入口站的预算實际花在了哪里。常见的消耗項包括:
- 重复内容頁:同一套模板換标题、換關鍵詞,蜘蛛抓了几頁後發現内容高度相似,後續同類 URL 的抓取意愿會下降。
- 低價值頁面:标簽頁、分頁、排序參數、搜尋结果的 URL,這些頁面往往數量庞大但對蜘蛛没什么信息量。
- 死鏈與软 404:返回 404 或返回 200 但内容為空白的頁面,抓一次就是一次浪費,重复出現還會拉低站点整体评價。
- 無限层級:列表頁翻頁不设上限,蜘蛛顺着翻下去,一個站就能吃掉大量预算。
- 重定向鏈:A 跳 B、B 跳 C,每一跳都要占用一次請求。
如果這些消耗項占了预算的大头,那再往上铺新入口頁,只是把有限的額度摊得更薄,單頁被爬的次數自然下降。
入口頁數量與抓取频率的邊际递减
可以把這件事想象成分蛋糕:蛋糕大小由站点權重决定,短期内不會有太大變化;切蛋糕的刀數由你决定。切十份的时候,每份還算像样;切一萬份的时候,每份就只剩下渣。蜘蛛不會因為頁面多就多给预算,它只會按自己的节奏從這些頁面里挑一部分。
入口頁的價值不在于數量,而在于有多少頁面能真正進入蜘蛛的抓取队列,並且被抓完之後還愿意再来。
所以判断铺量是否有效,不能只看蜘蛛今天来了多少次,而要看来訪的請求里有多少落到了入口頁上、入口頁的抓取覆盖率是多少。這两個指标不涨,說明規模已经超過预算承载能力。
更實际的做法
與其持續加頁面,不如先做减法,把预算集中到真正有用的 URL 上:
- 把入口站的頁面規模控制在一個可维護的范围内。具体多少没有标准答案,取决于站点自身的抓取表現,先小規模跑一段,看日誌里入口頁的抓取覆盖率,再决定要不要扩。
- 清理無效 URL。用 robots.txt 屏蔽參數頁和搜尋頁,把已经没有價值的入口頁改成 410 或 404,不要让它們繼續占位。
- 收敛层級。入口頁到目标頁的路径尽量短,中間不要层层跳轉。
- 分批观察。每加一批入口頁後,看下一周期的抓取分布有没有變化,如果新增頁面几乎不被抓,說明该停手了。
- 關注响應速度。慢的站會被蜘蛛主動降频,预算也會跟着缩水,這是很多入口站被忽略的隐形损耗。
几個容易踩的誤区
- 把蜘蛛請求數当成效果指标。請求數高但集中在少數几個頁面上,說明预算没有被有效利用。
- 認為頁面越多權重越高。大量低质頁面通常起的是反作用,站点整体评分被摊薄,單個頁面能拿到的抓取机會反而更少。
- 只看入口站不看目标站。入口頁的工作是把蜘蛛带到目标站,能不能留下取决于目标站自己的抓取承载能力,两邊脱节时,入口站再努力也有限。
归根结底,蜘蛛池的規模和入口站的抓取预算是相互制约的。铺量之前先想清楚预算够不够分,比事後加站补量要省事得多。把無效頁面减掉、把结构压平、把速度提上来,往往比多铺几百個入口頁更有效。