被拦下的蜘蛛,看起来很像内容問题
排查抓取異常时,很多人的第一反應是頁面质量、内鏈结构或者 Sitemap。但如果日誌里搜尋引擎 IP 的請求大多是 403、429、503,或者返回体只有几百字节的一段拦截提示,那問题不在内容,而在防護規則。蜘蛛拿到的是「請稍後再试」,自然不會繼續往下走。
這類誤伤常出現在站点刚上线、刚迁移或刚調整防護策略之後。站長自己用浏览器訪問一切正常,因為浏览器带着真實 Cookie、执行了 JS、也没有触發频率阈值。
常见的几種誤伤来源
- 频率限制過嚴:CC 防護按 IP 或會话統計單位時間請求數,蜘蛛短時間内集中抓取一批 URL,很容易撞线。
- UA 黑名單寫得太粗:用關鍵詞匹配 UA,把包含 bot、spider 的請求一概拦掉,正規蜘蛛也跟着中招。
- 来源 IP 段被封:机房 IP、云服務商 IP 段被整体拉黑,而搜尋蜘蛛恰恰常從這些網段發起請求。
- JS 校驗與驗證碼:强制跳轉到驗證頁,蜘蛛不會替你完成驗證,只會停止抓取。
- 規則寫错位置:本意是拦某個广告爬虫,结果匹配范围覆盖了整站或整類請求。
先判断是拦截還是内容問题
看狀態碼和响應体
在日誌里筛出搜尋引擎的訪問,按狀態碼分组。403、429 集中出現在某些路径上,基本就是規則命中;503 如果只出現在對蜘蛛的請求上,也要怀疑是防護层返回的。
看抓取量的變化曲线
抓取频次不是缓慢下降,而是在某一天之後突然掉到接近零,通常對應防護策略上线的時間点。把這條時間线和操作记錄對一下,比逐條翻日誌更快找到原因。
放行要做對,而不是全放開
先確認身份再放行
只根據 UA 放行最省事,也最容易被冒用。更稳妥的做法是用反向 DNS 解析或者官方公布的 IP 段做匹配,確認来源确實属于對應搜尋引擎,再加白名單。只認 UA 的白名單,等于给伪装者開了同一扇门。
按路径和阈值分別處理
如果只是詳情頁被抓得太密,可以只對内容目錄降低限制,管理後台、接口路径繼續嚴格拦。频率阈值按路径分開設定,能让抓取落在真正需要更新的頁面上。
给驗證碼和挑战頁留例外
對已確認身份的蜘蛛,跳過 JS 挑战和驗證碼;否則無论前面的規則多宽松,抓取都會停在那一頁。
放行不等于關掉防護。目的是让可驗證的抓取顺利通過,同时保留對可疑流量的限制,而不是把所有規則一次性撤销。
調整之後看什么
改完規則別只看当天資料,观察一周左右:搜尋引擎 IP 的 403、429 是否减少,抓取請求是否回到正常水平,此前没被訪問過的 URL 是否開始出現。同时留意有没有非搜尋引擎的請求混進白名單,如果某個 IP 段放行後出現大量異常抓取,就该把范围收窄。
另外,抓取恢复不代表收錄會立刻變化。防護規則只是把路打通,頁面最终能不能進索引,還要看内容本身和站内结构。