站点运营

站点运营:WAF 与限流规则自查,别把正常蜘蛛一起挡在门外

蜘蛛抓取量突然下滑,不一定出在内容上,也可能是被防火墙、WAF 或限速规则挡在门外。本文按拦截层级、官方 IP 段、反向解析验证、限速分组几个环节整理了一套自查顺序,并给出白名单复核与日志巡检的长期习惯,帮站点把正常爬虫和恶意采集区分开。

站点运营

站点运营:WAF 与限流规则自查,别把正常蜘蛛一起挡在门外

抓取量掉了,先看状态码分布

蜘蛛抓取量下滑,很多人的第一反应是内容质量或者收录策略出了问题。但如果日志里出现大量 403、406、429,甚至请求根本没到源站,那问题多半出在入口这一层。服务器、CDN、WAF、防火墙、限流插件,任何一环加了规则,都可能把正常搜索引擎一起挡在外面。

排查的第一步不是急着改规则,而是先看数据:

  • 按状态码统计最近 7 天与 30 天的抓取响应,看 403、429 的占比有没有明显抬头;
  • 按 UA 分组,确认常用搜索引擎的爬虫是否还能拿到 200;
  • 按 IP 反查,看被拦的是不是集中在官方公布的爬虫 IP 段;
  • 对比 WAF 后台的拦截日志与源站访问日志,确认请求到底在哪一层被拦下。

常见的误拦来源

UA 黑名单写得太粗

有些规则为了挡采集,直接写 curl、python、Bot 之类的关键词,或者用正则匹配到半个字符串,很容易把搜索引擎的正规 UA 一并命中。更隐蔽的是反向情况:只允许少数几个 UA 通过,结果新出现的搜索爬虫 UA 全被拦。

频率限制触发 429

限速通常按 IP 或按会话计数。搜索引擎会从同一批 IP 高并发抓取,一旦阈值设得偏低,就会连续收到 429。短时间被限速影响不大,但持续数天,抓取预算往往会往别的站倾斜。

地域封禁与 IP 段误伤

为了防攻击而封掉某些海外 IP 段是常见做法,但爬虫节点可能分布在多个地区,封得太宽会把正常抓取一起挡掉。

验证码与 JS 挑战页

开启人机验证后,返回给爬虫的是一个挑战页而不是正文。蜘蛛拿不到内容,短时间只是抓取失败,长期就可能出现页面掉出索引的情况。

云 WAF 的默认 BOT 规则

不少云厂商默认开启 BOT 管理,规则集里包含疑似自动化工具、高频访问这类策略。上线时没有逐条核对,就容易误伤。

一套可执行的自查顺序

  1. 确认拦截层级:先在源站记录真实来访 IP(例如通过 CDN 回源头),弄清楚请求有没有到源站。
  2. 核对官方 IP 段:主流搜索引擎都公布了爬虫 IP 段,比 UA 更可靠,优先用 IP 做白名单。
  3. 做反向解析验证:对可疑 IP 做反向 DNS 查询,确认域名归属,再决定放行还是拦截。
  4. 临时放行再观察:把确认的爬虫 IP 段加入白名单,观察 3 到 7 天日志里的状态码与抓取量变化。
  5. 调整限速阈值:把验证过的搜索引擎单独分组,给一个更宽松的速率,而不是和普通访客共用同一条限流规则。
  6. 记录改动:每次改规则都写清时间、原因、影响范围,方便出问题时回滚。
不要一看到抓取量下滑就去重新提交 Sitemap 或者改标题。先确认请求有没有进门,比什么都重要。

白名单长期维护的几个习惯

  • 每季度复核一次白名单,删掉过期 IP 段,避免名单只增不减;
  • 把 WAF 拦截日志纳入日常巡检,至少每周扫一眼异常拦截量;
  • 验证过是真实搜索引擎的流量,别因为频率高就自动拉黑;
  • 采集与蜘蛛分开处理:对异常采集做封禁与限速,对正规爬虫保证稳定响应;
  • 服务器与 CDN 两侧的规则保持同步,避免一边放行、一边拦截。

限速不能代替内容治理

限流只是入口管理,不是解决抓取预算问题的万能办法。如果站点存在大量低质量聚合页、参数组合页,蜘蛛本来就会减少抓取,这时候把限速调松,意义有限。先把该合并的合并、该 noindex 的标清楚,再回来处理入口规则,顺序会更顺。