很多人做蜘蛛池时有个直觉:入口页越多,蜘蛛来的次数就越多,目标页被带到的机会也越大。这个直觉在起步阶段大致成立,但铺到一定规模之后往往会失效——蜘蛛的来访总量没有明显增长,摊到每个入口页上的抓取次数却在下降。要理解这件事,需要先搞清楚搜索引擎给单个站点分配的抓取预算。
什么是抓取预算
抓取预算可以粗略理解为:搜索引擎在一个时间段内,愿意从某个站点抓取多少个 URL。它不是固定值,而是由站点评级、更新频率、响应速度、历史抓取效果等多个因素共同决定的一个动态额度。蜘蛛来访时,会在这个额度内挑选它认为值得抓的 URL,抓完就走。
关键点在于:额度是给站点的,不是给页面的。一个站点能拿到的总预算有限,页面越多,平均到每个页面上的次数就越少。入口站如果铺了几万个页面,而站点本身并不被信任,那么绝大多数页面可能长期处于排不上队的状态。
预算被谁吃掉了
在讨论数量之前,先看入口站的预算实际花在了哪里。常见的消耗项包括:
- 重复内容页:同一套模板换标题、换关键词,蜘蛛抓了几页后发现内容高度相似,后续同类 URL 的抓取意愿会下降。
- 低价值页面:标签页、分页、排序参数、搜索结果的 URL,这些页面往往数量庞大但对蜘蛛没什么信息量。
- 死链与软 404:返回 404 或返回 200 但内容为空白的页面,抓一次就是一次浪费,重复出现还会拉低站点整体评价。
- 无限层级:列表页翻页不设上限,蜘蛛顺着翻下去,一个站就能吃掉大量预算。
- 重定向链:A 跳 B、B 跳 C,每一跳都要占用一次请求。
如果这些消耗项占了预算的大头,那再往上铺新入口页,只是把有限的额度摊得更薄,单页被爬的次数自然下降。
入口页数量与抓取频率的边际递减
可以把这件事想象成分蛋糕:蛋糕大小由站点权重决定,短期内不会有太大变化;切蛋糕的刀数由你决定。切十份的时候,每份还算像样;切一万份的时候,每份就只剩下渣。蜘蛛不会因为页面多就多给预算,它只会按自己的节奏从这些页面里挑一部分。
入口页的价值不在于数量,而在于有多少页面能真正进入蜘蛛的抓取队列,并且被抓完之后还愿意再来。
所以判断铺量是否有效,不能只看蜘蛛今天来了多少次,而要看来访的请求里有多少落到了入口页上、入口页的抓取覆盖率是多少。这两个指标不涨,说明规模已经超过预算承载能力。
更实际的做法
与其持续加页面,不如先做减法,把预算集中到真正有用的 URL 上:
- 把入口站的页面规模控制在一个可维护的范围内。具体多少没有标准答案,取决于站点自身的抓取表现,先小规模跑一段,看日志里入口页的抓取覆盖率,再决定要不要扩。
- 清理无效 URL。用 robots.txt 屏蔽参数页和搜索页,把已经没有价值的入口页改成 410 或 404,不要让它们继续占位。
- 收敛层级。入口页到目标页的路径尽量短,中间不要层层跳转。
- 分批观察。每加一批入口页后,看下一周期的抓取分布有没有变化,如果新增页面几乎不被抓,说明该停手了。
- 关注响应速度。慢的站会被蜘蛛主动降频,预算也会跟着缩水,这是很多入口站被忽略的隐形损耗。
几个容易踩的误区
- 把蜘蛛请求数当成效果指标。请求数高但集中在少数几个页面上,说明预算没有被有效利用。
- 认为页面越多权重越高。大量低质页面通常起的是反作用,站点整体评分被摊薄,单个页面能拿到的抓取机会反而更少。
- 只看入口站不看目标站。入口页的工作是把蜘蛛带到目标站,能不能留下取决于目标站自己的抓取承载能力,两边脱节时,入口站再努力也有限。
归根结底,蜘蛛池的规模和入口站的抓取预算是相互制约的。铺量之前先想清楚预算够不够分,比事后加站补量要省事得多。把无效页面减掉、把结构压平、把速度提上来,往往比多铺几百个入口页更有效。