Cloudflare WAF 与搜索引擎爬虫放行安全配置指南
本文档用于指导在 Cloudflare / CDN 及 Web 服务器层级正确配置防护规则,在保障站点免受恶意攻击的同时,100% 避免误伤 Googlebot、Bingbot 等搜索引擎合法抓取,防止因 WAF 挑战导致掉索引。
核心原则
- 不可降低站点整体防攻击安全性,但必须将经认证的合法搜索引擎爬虫加入白名单。
- 切勿仅通过 User-Agent 字符串来判断蜘蛛(因为恶意攻击者极易伪造 UA)。
- 必须利用 Cloudflare 原生基于反向 DNS 解析(rDNS)与 IP 认证的权威特征字段:
(cf.client.bot)。
一、Cloudflare WAF 自定义规则(首选推荐)
进入 Cloudflare 控制台 -> 选中 jcpick.co 域名 -> 安全性 (Security) -> WAF -> 自定义规则 (Custom Rules) -> 创建规则:
规则名称:
Allow Verified Search Engine Bots (Google / Bing / Baidu / Yisou)
规则表达式(Expression Editor):
text
(cf.client.bot) or (http.user_agent contains "yisouspider") or (http.user_agent contains "Baiduspider")执行操作(Action):
- 选择:跳过 (Skip)
- 勾选以下全部保护功能的跳过选项:
- [x] 所有其余自定义规则 (All remaining custom rules)
- [x] 速率限制规则 (Rate limiting rules)
- [x] 托管规则 (Managed Rules / OWASP)
- [x] Bot Fight Mode (机器人战斗模式) / Super Bot Fight Mode
注:Googlebot 与 Bingbot 已 100% 纳入 Cloudflare 的
cf.client.bot权威已验证列表,不会触发任何验证码、JS Challenge 或封禁。针对神马(yisouspider)和百度蜘蛛,若未开通 Enterprise 自定义验证,可配合 IP 过滤或 UA 条件放行。
二、Bot Fight Mode (机器人战斗模式) 配置
在 安全性 (Security) -> Bots:
- 若开启 Bot Fight Mode:
- 免费版 Cloudflare 的 Bot Fight Mode 可能会偶发影响部分国内爬虫。若发现百度/神马抓取频次异常下降,可在 WAF 中优先应用上述“跳过规则”。
- 严禁对已知搜索引擎开启“托管挑战 (Managed Challenge)”或“交互式质询 (Interactive Challenge)”。
三、Apache / Nginx 服务器层级规则
在服务器层(.htaccess),我们已配置好纯静态路由与 Clean URLs,并且:
- 无任何基于 User-Agent 的 Disallow 拒绝规则。
- 无任何阻断爬虫的 IP 黑名单。
- 所有静态产物与压缩资源均对 HTTP 200 / 301 正常响应。
四、自检验证命令
部署完成后,可使用自带的健康检测工具,模拟 Googlebot 进行连通性校验:
bash
npm run seo:prod或本地预演验证:
bash
npm run seo:prod -- --local