429 和 503 不是一回事
429 Too Many Requests 表示“请求太频繁”,通常由服务器、WAF 或 CDN 的限速规则主动返回;503 Service Unavailable 表示服务暂时不可用,可能因为维护、过载,也可能是站点主动拒绝爬虫。两者对搜索蜘蛛传递的信号不同,但结果相近:这一次请求没有拿到入口页正文。
搜索蜘蛛遇到限速时一般怎么做
主流搜索引擎的爬虫都有重试与退避机制,遇到限速时通常不是“立刻拉黑走人”。
- 本次抓取视为失败,一般不会把这个入口页当成空页面处理;
- 如果响应里带 Retry-After 头,蜘蛛会参考这个时间再回来;
- 没有 Retry-After 时,往往会拉长重访间隔,逐步降低对该目录或该 IP 的抓取频率;
- 短时间内反复触发限速,站点整体抓取速率也会被压低。
最先受影响的往往是抓取预算
抓取预算是有限的。入口页被限速后,蜘蛛通常先减少被抓得最频繁的那些路径,而蜘蛛池入口页恰好属于高频路径。结果是入口页被读到的次数变少,页面里新出现的链接自然也更难被及时解析出来。
那目标 URL 还会被发现吗
多数情况下还会,但节奏会被拉慢,而且不保证全部覆盖。可以分三种情况看:
- 限速是偶发的:蜘蛛重试后成功拿到入口页,目标链接照常被发现;
- 限速是长期策略:入口页访问频率下降,新链接的发现延迟可能从几小时变成几天甚至更久;
- 限速叠加在写死的规则上(例如对某个 UA 段全部返回 429):蜘蛛长期拿不到入口页 HTML,目标 URL 只能靠站内链接、sitemap、外部链接等其他来源被发现。
需要分清的是,“被发现”和“被收录”是两件事。即使蜘蛛顺着入口页找到了目标 URL,是否收录仍取决于目标页自身的内容质量、重复程度和站点整体情况,跟入口页是否被限速没有直接因果关系。
常见误区
误区一:把 503 当万能挡板
有些站点为节省资源,对所有爬虫统一返回 503。短期看似省事,长期会让蜘蛛降低对整站的信任度和抓取频率,入口页和目标页都会一起受影响。
误区二:只在入口页限速,却忘了目标页
限速规则一般按 IP 或路径生效。如果规则范围覆盖了目标 URL 所在目录,即使链接被发现了,目标页也可能因为同样的规则抓不到。
误区三:以为加了 Retry-After 就万事大吉
Retry-After 只是建议值,蜘蛛不一定严格按它执行,也不代表会立刻恢复原有的抓取频率。
实际可以做的调整
- 先看日志:确认 429/503 是 WAF、CDN 还是源站返回的,定位到具体规则再动手;
- 给主流搜索蜘蛛单独放行或适当提高阈值,同时避免挤占真实用户的带宽;
- 入口页尽量轻量,减少单次请求的资源消耗,降低被限速的概率;
- 控制入口页数量和刷新频率,别自己制造高频访问;
- 保留 sitemap、站内链接等常规发现路径,不要让目标 URL 只依赖入口页;
- 确实需要限速时,用合理阈值配合 Retry-After,而不是一刀切拒绝。
搜索引擎处理限速的具体策略并不公开,也会随时间调整。以上描述的是常见行为,不能当作确定承诺,也无法保证目标 URL 一定被抓取或收录。
简单说:429 或 503 不会让搜索蜘蛛“永远不再来”,但会明显拖慢入口页的抓取节奏,从而拖慢目标 URL 的发现速度。与其用限速来管理流量,不如先把入口页做轻、把抓取路径做清晰。