網站收錄

搜尋蜘蛛被防火墙挡住:怎么判断並放行

CDN 或 WAF 上线後收錄迟迟不動,常见原因不是内容,而是爬虫請求根本没到源站。本文按訪問日誌、網址检查、IP 反查、地域對比四步確認是否為拦截,並說明放行时優先按官方 IP 段處理、注意缓存與限速對齐,避免放行之後仍然抓不到。

網站收錄

搜尋蜘蛛被防火墙挡住:怎么判断並放行

给站点上了 CDN 或云 WAF 之後,收錄往往不會立刻變化,問题常在几周後才浮出来:新頁面一直停在“已發現,尚未抓取”,抓取統計里的错誤碼悄悄上升。很多时候並不是内容质量的問题,而是搜尋蜘蛛的請求压根没走到應用层。

爬虫可能被拦在哪一层

從請求到頁面之間有好几道關口,任何一道都可能把爬虫挡回去。

  • 云 WAF 的通用規則:某些正則命中 SQL 注入、XSS 或路径穿越特征,正常 URL 也會被誤判。
  • 频率限制:自建 Nginx 限速、CDN 的 QPS 阈值,抓到一定數量就直接拒绝。
  • 地域或 IP 封禁:為了應對攻击把整段 IP 拉黑,很容易连带誤伤。
  • 爬虫管理产品:按 UA、指纹评分决定放行,還是给一個驗證頁。
  • 非拦截因素:源站超时、DNS 解析異常、robots.txt 寫错,也會表現出相似症状,需要先区分開。

几個容易被誤讀的現象

  • 抓取統計中 5xx、403 上升,但你自己打開頁面一切正常。
  • 部分目錄收錄正常,另一些路径完全不收錄,說明規則是按路径生效的。
  • CSS、JS、图片加载失敗,頁面能打開但渲染不完整。
  • 抓取測試工具报“無法訪問”,而你本地網絡毫無異常。

確認是不是拦截,按這四步走

  1. 先看源站訪問日誌。如果按官方爬虫 IP 段過滤後,這些請求压根没出現在日誌里,說明拦在了 CDN 或 WAF 层,而不是應用层。
  2. 用網址检查看返回内容。重点看抓取到的 HTML 是真實頁面,還是拦截頁。有些 WAF 會返回 200 加一個驗證頁面,比 403 更隐蔽。
  3. 做 IP 反查。對可疑来源 IP 做反向 DNS,確認域名是否属于搜尋引擎官方。只看 UA 並不靠谱,UA 可以随意伪造,而不少規則又拿 UA 当唯一依據。
  4. 換地区、換线路做對比。地域封禁最容易被忽略:從不同节点請求同一個 URL,看返回是否一致。

放行时的几個處理顺序

  • 優先按官方公布的 IP 段或反查结果放行,不要只加 UA 白名單。
  • 检查 CDN 缓存里是否存了拦截頁。一個被缓存的 200 驗證頁,會持續被当作正常内容返回。
  • 限速阈值調到合理范围。每秒一個請求這種設定,對大站几乎等于關閉抓取。
  • 让 robots.txt 和 WAF 規則保持一致。一邊允许一邊拒绝,是最难排查的一類問题。
  • 放行後观察一到两周,抓取統計和“已發現,尚未抓取”的數量通常會有所變化,但不要期待立刻见效。
放行只是让請求進得来。能不能進索引,還要看頁面内容、结构和其他站点信号,這两件事別混在一起判断。

几個常被忽略的坑

  • 只放行了 www 版本,http 或裸域仍被拦,抓取结果按哪一版算就變得不确定。
  • 移動端和桌面端分属不同域名,只處理了其中一個。
  • 用第三方工具從机房 IP 測試,结论和搜尋引擎實际訪問的情况並不通用。
  • 驗證頁带 JS 挑战,蜘蛛拿不到内容,却拿到了 200 狀態碼,日誌里看不出異常。

排查顺序建议從日誌開始:先確認請求有没有到源站,再判断是拦截還是其他原因,最後才谈放行和观察。這样比一上来就加白名單更省時間,也不容易漏掉真正的問题。