有些站点為了防采集和恶意請求,會在服務器或 CDN 上開啟 WAF、频率限制、Bot 管理。規則一多,搜尋蜘蛛也可能被誤伤:返回 403、429,或者被要求驗證。蜘蛛不會像用戶一样点击驗證碼,遇到拦截往往就放弃本次抓取。站点运营需要把“安全策略”和“正常抓取”放在一起检查。
先確認拦截是否真實存在
不要只看“感觉抓取變少了”。先去日誌和 CDN 报表里找證據。
- 按狀態碼篩選:403、429、503 是否在蜘蛛訪問时集中出現。
- 看被拦 URL 的類型:是整站、某個目錄,還是搜尋、篩選、API 這類動態路径。
- 對比 UA 與 IP:蜘蛛 UA 可能被伪造,不能只凭 UA 判断,要结合反向 DNS 或官方 IP 段。
- 看時間分布:是全天拦截,還是只在流量高峰、爬取频率較高时触發。
如果日誌里已经出現大量 403/429,並且請求来自已驗證的搜尋引擎 IP,那基本可以確認是誤拦,而不是蜘蛛本身出問题。
检查三類常见誤拦来源
1. 通用 WAF 規則
有些規則會對特殊字符、空 Referer、無 Cookie、異常 URL 參數直接拦截。蜘蛛請求通常没有 Cookie,Referer 也可能為空。若規則寫得太粗,正常頁面也會被挡。
- 检查是否有针對空 UA、非浏览器 UA 的全局拦截。
- 检查 URL 中带問号、等号、百分号编碼时是否触發規則。
- 检查是否對 HEAD、OPTIONS 等請求方法一並拦截,蜘蛛偶尔會用到。
2. 频率限制阈值
频率限制按 IP、按 UA、按路径統計时,搜尋引擎蜘蛛可能因為短時間内集中抓取而触顶。尤其是新站或刚提交大量 URL 後,抓取會明顯變密。
- 確認限速是“每 IP 每分钟/每秒”還是“整站總量”,後者更容易誤伤。
- 看阈值是否低于蜘蛛正常抓取速度,比如每分钟只允许几十次請求。
- 對已驗證蜘蛛單獨設定策略,而不是和普通匿名流量共用一條阈值。
3. CDN 與 Bot 管理
不同 CDN 节点可能套用不同規則,或者回源时再次被源站 WAF 拦截。用戶訪問正常,不代表蜘蛛也正常。
- 检查 CDN 的 Bot 管理是否把“已驗證搜尋引擎”放行。
- 確認回源 IP 是否在源站白名單中,避免 CDN 回源被源站拦下。
- 抽查多個节点,观察响應碼是否一致。
高風險路径要單獨過一遍
搜尋頁、篩選頁、分頁參數、站内 API、文件下载、用戶中心,往往是 WAF 規則最嚴的地方。但這些路径也可能被蜘蛛發現並尝试抓取。
- 如果這些頁面不希望被抓,用 robots.txt 或 noindex 明确處理,而不是靠 WAF 返回 403。
- 如果希望被抓,就要确保正常蜘蛛能拿到 200 和完整内容。
- 避免让蜘蛛在 403 頁面上反复重试,浪費抓取预算。
調整與驗證
- 整理已驗證蜘蛛的 IP 段或反向 DNS 名單,只放行真實来源。
- 為搜尋引擎蜘蛛設定獨立、宽松但仍有限制的频率策略,防止伪造 UA 滥用。
- 在 WAF 日誌中标记“已放行蜘蛛”,持續观察是否還有誤拦。
- 改動後用官方抓取測試工具或日誌回查,確認狀態碼從 403/429 變為 200。
- 設定告警:当蜘蛛請求的 403/429 比例突然升高时,及时通知运维和 SEO 负责人。
安全策略不是越嚴越好。對蜘蛛来说,稳定的可訪問性比偶尔放行更重要。放行已驗證蜘蛛,不等于放開所有匿名爬虫,關键是区分對象。
WAF 和频率限制的自查不需要一次改完。先確認誤拦是否存在,再處理最影响抓取的那几條規則。對站点运营来说,让正常蜘蛛顺利拿到内容,同时把恶意請求挡在门外,才是更實际的目标。