很多站点在接入 WAF、CDN 或云防護後,會看到搜尋蜘蛛的抓取量下降,第一反應是服務器或 DNS 出了問题。實际上,安全策略把正常抓取誤判成攻击,是很常见的原因。它不是“防護没用”,而是規則没有给蜘蛛留出可识別、可通行的通道。
先分清:防的是攻击,不是所有自動請求
WAF 的預設策略通常针對高频請求、異常 UA、可疑參數、非常用地区等特征。搜尋引擎蜘蛛也属于自動請求,如果频率、IP 段或請求头触發了規則,就可能被返回 403、406、429 甚至 503。這類响應和真實的服務器错誤很容易混淆,需要從日誌和防護面板两邊對照看。
怎么判断抓取被安全策略挡了
- 服務器訪問日誌里,蜘蛛 IP 的請求大量返回 403、406、429 或 503,而同一時間普通用戶訪問正常。
- WAF 或 CDN 日誌中能看到規則命中记錄,拦截原因常寫着“高频訪問”“可疑 UA”“地区限制”“CC 防護”等。
- 用站長平台的抓取測試或模拟蜘蛛請求,结果與真實蜘蛛日誌不一致。
- 防護規則調整後,抓取量、收錄量或日誌中的蜘蛛請求數出現同步變化。
放行策略要分层,不要一關了之
發現誤伤後,直接把 WAF 全關掉並不可取。更稳妥的做法是分层放行:
- 驗證来源,不只信 UA。 UA 可以伪造,最好结合官方公布的 IP 段、反向 DNS 解析结果和請求行為综合判断。
- 對已驗證蜘蛛放行主要路径。 首頁、栏目頁、文章頁、sitemap、robots.txt 等應允许正常抓取,但不必對全站所有接口都開放。
- 保留基础防護。 针對登入、搜尋、提交、後台等敏感路径繼續限制,不要因為放行蜘蛛而把攻击面一起放開。
- 限速要留余量。 有些 CC 規則把單 IP 频率设得很低,蜘蛛连續抓几個頁面就被拦。可以按 IP 段或已驗證来源設定更合理的阈值。
- 避免驗證碼和 JS 挑战。 蜘蛛通常不會执行复杂交互,這類驗證會直接導致抓取失敗。
几個容易踩的坑
- 只按 UA 白名單放行,结果被伪造 UA 的請求绕過,或者誤放行恶意流量。
- 開啟地区封禁後,海外蜘蛛或使用多地节点的搜尋引擎被一起挡住。
- CDN 把 403、429 错誤頁缓存下来,後續正常請求也拿到拦截结果。
- 防護規則變更没有记錄時間点,出問题後很难定位是哪條規則生效導致。
安全防護和搜尋引擎抓取並不是二選一。關键是把“识別”做在前面,把“放行”做细,而不是等抓取量掉了再全站關閉防護。
誤伤後的恢复步骤
先對照防護日誌和服務器日誌,確認拦截規則和生效時間;能回滚就先回滚可疑規則,再逐步加回。把已驗證的蜘蛛来源加入白名單,並检查 CDN 是否缓存了错誤响應。之後观察几天抓取日誌,看 403、429 是否回落,蜘蛛是否重新訪問重要頁面。如果站点有站長平台,可以提交重新抓取或抓取诊断,但不要把它当成收錄承诺,它只是帮助確認通道恢复。
最後,建议把安全策略纳入日常运营检查:規則變更留记錄,蜘蛛訪問和拦截資料定期看,白名單定期复核。這样既能挡住恶意請求,也不至于把正常抓取長期挡在门外。