事情本身不复杂,线索都在日志里。每篇文章发布后 sitemap 和 IndexNow 同时通知,蜘蛛在十分钟内对同一栏目发起五十多次请求,云 WAF 的速率规则把它判成 CC 攻击,返回 403 长达两小时。

原因不止一个,得分开看。发布时的多个通知渠道叠加,同一批 URL 被重复推送。还有一种是WAF 的速率阈值按 IP 计算,蜘蛛自然会被判成高频访问。

少数情况下是拦截发生在边缘,源站日志里只看得到正常请求,很难察觉。

第一件事是看边缘侧被拦截的请求记录

curl -sI -A "Mozilla/5.0 (compatible; Googlebot/2.1)" https://www.example.com/post/1 | head -3

然后在 WAF 里给搜索引擎 IP 段开白名单

Allow if ip.geoip.asnum in {15169 8075 16509}

末了把发布通知合并成一次只推变更的 URL

wp post list --post_status=publish --after="-1 hour" --field=url | head -5

改完先别撤,确认这几项。蜘蛛的请求不再出现 403,发布后一小时内新文被抓取成功,WAF 日志里该 IP 段的拦截计数归零。

补一句。白名单按官方 IP 段配,别按 UA 放行,UA 可以伪造,放行范围一开就是后门。同一份配置在测试环境跑通,不代表线上没事,两边的默认值经常不一样。

作者 9823189