先给结论:访问量突增时,不要因为看到日志里大量抓取请求就立刻改robots.txt。先判断突增的请求是否集中在少数已知路径、是否伴随5xx或超时上升,再决定是扩容/限流,还是修配置。以下用一个假设情境说明决策顺序。
假设某站点在促销活动开始后两小时内,总请求数明显高于日常水平。日志显示,大部分新增请求来自少数几个URL,响应时间上升,但200状态码比例没有明显下降。同时,运维侧报告CPU和带宽接近上限。此时如果直接改robots.txt去禁止抓取,可能压住一部分请求,但也可能误伤正常用户访问,并且不能解决资源瓶颈。
反过来,如果新增请求分散在大量不存在的路径上,且404比例明显上升,同时服务器资源占用并不高,那么更可能是配置错误或错误链接扩散,而不是真实资源压力。这时改robots.txt或加限流才有针对性。
动作:把突增时段的请求按路径前缀聚合。如果前十个前缀覆盖了大部分新增请求,且这些前缀对应真实业务页面,优先查资源;如果新增请求大量落在404或410上,优先查配置和链接来源。
动作:如果5xx上升且集中在有效路径,下一步是扩容、限流或降级,而不是改robots.txt。如果4xx上升且资源占用平稳,下一步是检查站点地图、内链、重定向规则和外部链接,而不是扩容。
有时突增并不是外部抓取变多,而是robots.txt被改错后,抓取行为发生变化。例如,原本允许的目录被误写为禁止,导致抓取集中到少数仍允许的路径上。检查方法:对比当前robots.txt与上一次已知正常版本的差异,确认User-agent、Disallow、Allow和Sitemap行是否被改动。
动作:如果发现robots.txt在突增前被修改,先回滚到已知正常版本,再观察请求分布是否恢复。如果回滚后请求分布不变,说明突增另有原因,继续查资源或外部链接。
只有在确认突增请求来自抓取工具、且这些请求集中在你不希望被抓取的路径上时,才考虑用robots.txt限制。写法上要注意:
User-agent指定目标抓取工具,不要用*一刀切,除非你确认所有抓取工具都该被限制。Disallow禁止目录时,路径要写完整,避免误伤同前缀的正常目录。动作:改完后不要只看robots.txt返回200就结束。下一步是观察目标路径的请求量是否下降,以及有效路径的请求量是否不受影响。如果目标路径请求量没降,可能是抓取工具不支持该规则,或者请求来自其他来源。
这个顺序的核心是:robots.txt是抓取管理工具,不是资源压力或配置错误的通用修复手段。用错方向,既压不住突增,还可能让正常抓取和收录受到影响。