抓取日誌里连續几天出現超时、5xx,或者抓取次數干脆掉了一半,很多人的第一反應是“是不是被降權了”。更常见的情况是:蜘蛛来的时候你的服務器没能正常响應,它只能把手里有限的額度挪到別處。收錄變慢通常只是這個结果的外在表現。
處理這類問题,顺序比技巧重要。先分清错誤類型和發生時間,再决定是從服務器動手,還是從抓取策略動手。
一、先看時間分布,判断是偶發還是持續
把日誌按小时或按天拉出来,看错誤是集中在某個时段,還是全天零散出現。
- 只出現在某几個小时:先想那個時間段做了什么——資料备份、批量生成、定时任務、压测。
- 全天零散出現:可能是某台机器或某個接口慢,也可能是 CDN 回源不稳定。
- 從某一天突然開始:對比那天前後的發布、改版、防火墙規則調整。
偶發错誤不必紧張,搜尋引擎自己會重试。持續几天以上的错誤,才需要当成問题去處理。
二、按错誤類型分開看,不要混在一起
5xx 服務端错誤
這是最需要優先處理的。蜘蛛看到 5xx,等價于“這個頁面現在不能用”,抓取會退避,反复几次後抓取频次就會降下来。常见来源包括資料库连接池打满、PHP-FPM 排队、缓存穿透,以及某個插件在蜘蛛来訪时触發了重查询。
超时與连接重置
日誌里表現為抓取耗时很長,或者請求中途中断。要区分是頁面本身慢,還是整條網絡鏈路有問题。可以拿一個静態文件做對照:如果静態文件也慢,問题多半在出口带宽、CDN 或防火墙,而不是頁面代碼。
403、429 與频控拦截
不少站点上了 WAF 或安全插件,預設規則會把高频訪問直接挡掉。蜘蛛的訪問特征比較集中,很容易誤伤。检查方式很直接:在防火墙日誌里搜搜尋引擎的 UA 和 IP 段,看有没有被規則命中。
同一段時間里,服務器看到的“異常訪問”和蜘蛛看到的“被拒绝”,很可能是同一件事。
三、服務器侧常被忽略的几個点
- 首頁和列表頁的查询太重。它們被抓取最频繁,一旦慢,整站抓取都會受影响。
- 日誌本身在拖後腿。全量寫日誌、實时分析,在高频抓取下會明顯增加负担。
- 图片和静態资源没走 CDN,蜘蛛抓頁面时顺带拉资源,占用了同一份带宽。
- Sitemap 每次現算或体积過大,蜘蛛一来就触發一次重查询。
四、服務器稳定之後,再谈抓取額度
抓取恢复正常後,如果站点頁面數量多,還是要把額度用在關键頁面上。
- 把參數頁、篩選頁、搜尋结果頁通過 robots.txt 或 noindex 收敛掉,別让它們持續消耗抓取。
- Sitemap 只放希望被收錄的 URL,不要把全站所有變体都塞進去。
- 内鏈優先指向核心頁面,让蜘蛛顺着連結走進来,而不是靠穷举發現。
- 确定不要的頁面返回 404 或 410,比一直返回 200 更省抓取。
五、恢复之後先看什么
不要只盯收錄量這一個指标。先看抓取成功率是否回到正常水平,再看抓取频次有没有回升,最後才是索引量的變化。這三個指标通常按這個顺序恢复,急着看最後一個容易誤判。
如果服務器已经稳定、抓取成功率也正常,收錄仍然長時間不動,那問题多半不在抓取环节,需要回到頁面质量和重复内容上重新排查。