站点运营

站点运营:WAF、CDN 与反爬策略自查,别把搜索引擎蜘蛛一起挡在门外

给站点上了 WAF、CDN 或自建反爬之后,抓取量反而下滑,是不少运营者踩过的坑。这篇文章梳理蜘蛛被拦截的常见形态,给出一份可执行的自查清单和验证方法,帮你在保留必要安全防护的同时,别把正常的搜索引擎抓取一起挡在门外。

站点运营

站点运营:WAF、CDN 与反爬策略自查,别把搜索引擎蜘蛛一起挡在门外

给站点做了安全加固之后,抓取量不升反降,是很多运营者会遇到的情况。日志里看不到明显的 5xx,页面本身也没报错,但搜索引擎蜘蛛的访问记录就是越来越少。排查到最后,问题常常出在 WAF、CDN 或者自建反爬策略上——它们把正常抓取和恶意爬虫一起挡在了门外。

这类故障的特点是安静。没有告警,没有错误日志,只有抓取频次在悄悄下滑,等发现新内容很久没被处理时,可能已经过去几周了。

蜘蛛被拦住的几种常见形态

WAF 规则误伤

安全产品的默认规则集通常包含大量“疑似扫描”特征,比如请求参数里带特殊字符、短时间内重复请求同一路径、UA 中含爬虫字样。搜索引擎蜘蛛的抓取行为恰好会命中其中一些特征:它会连续请求大量 URL,也会带一些看起来很“机器”的查询串。如果规则没有针对官方蜘蛛做例外,就容易被当成攻击流量拦截。

CDN 的人机校验

部分 CDN 开启了 JS 挑战或验证码挑战,正常浏览器能通过,但搜索引擎蜘蛛不会执行这类挑战,结果就是收到 403,或者拿到一个需要跳转的中间页。表现上,蜘蛛看到的是一个空壳,真正的页面内容拿不到。

频率限制与临时封禁

为了防刷,不少站点按 IP 或 UA 做了 QPS 限制。低频抓取时看不出问题,一旦站点更新量大、蜘蛛集中抓取,就会触发限流。轻则返回 429,重则把整个 IP 段临时封禁一段时间。更麻烦的是,蜘蛛在被限流后往往会自行降低抓取频次,之后再想提上来并不容易。

一份可执行的自查清单

  1. 查看服务器访问日志,确认最近一段时间是否还有来自主流蜘蛛 UA 的请求;如果一条都没有,先怀疑入口被拦。
  2. 用官方工具发起一次真实抓取,比如搜索资源平台提供的抓取诊断,看返回的状态码和抓取到的 HTML 内容。
  3. 对比直连源站和经过 CDN 之后的响应,确认两者返回的内容一致。
  4. 检查 WAF 的拦截记录,看是否有匹配到蜘蛛 UA 或蜘蛛 IP 段的规则命中。
  5. 检查 CDN 配置里是否启用了人机校验、Bot 管理或强制跳转,确认其策略对已知搜索引擎蜘蛛放行。
  6. 检查限流阈值,评估站点在更新高峰期可能产生的并发请求量,是否低于蜘蛛的正常抓取强度。
  7. 检查 robots.txt、防火墙白名单和 CDN 白名单是否在不同层级上互相覆盖。

怎么确认蜘蛛确实是“真”的

光看 UA 是不够的,UA 可以随意伪造,只按 UA 放行等于给所有伪装爬虫开了门。比较稳妥的做法是做反向 DNS 验证:对请求 IP 做反向解析,确认域名属于搜索引擎官方,再正向解析回同一个 IP。主流搜索引擎都公布了各自的 IP 段和验证方式,可以做成定时任务自动核对。

白名单不是一次配置就完事。搜索引擎的 IP 段会新增和调整,写死的 IP 列表过一段时间就可能失效,或者把已经回收的地址继续放行。

放行时容易忽略的几个细节

  • 放行位置要正确。如果站点前面有 CDN,源站看到的往往是 CDN 回源 IP,在源站放行蜘蛛 IP 段没有意义,需要把规则加在 CDN 或 WAF 那一层。
  • 区分抓取与回源。CDN 缓存命中率高的时候,蜘蛛的请求根本不会到源站,日志里看不到记录不代表没抓,要结合 CDN 日志一起看。
  • 保留必要的拦截。放行不等于全开,针对异常请求路径、明显恶意的参数仍然要拦,只是别把蜘蛛的正常请求一起放进去。
  • 改完要复测。规则调整后重新用官方工具抓一次,并观察几天日志里的抓取频次是否回升,不要只改不验。

安全防护和抓取通路并不是二选一。多数情况下,问题只是白名单没配、规则没做例外,或者改配置时忘了同步。把上面这几项做成固定的检查动作,每次上 WAF、上 CDN、调整限流之后都过一遍,就能省掉不少“蜘蛛怎么突然不见了”的排查时间。