蜘蛛抓取這件事,很多站長是靠“今天抓了多少次”来判断的。次數当然要看,但只看次數容易得出错誤结论:抓取量涨了,可能是蜘蛛在反复抓同一批带參數的 URL;抓取量跌了,也可能只是它在消化已有頁面。把日誌当成一份原始记錄来讀,能看出更多東西。
日誌里最值得看的几列
- 狀態碼:200 是正常;301/302 說明還在走跳轉;404/410 說明連結指向已失效;403 常见于防火墙或 CDN 拦截;429、503 說明服務端在限流或過载。按狀態碼分類統計一遍,比單看總量有用得多。
- 响應時間與响應字节數:蜘蛛每次都要花上秒級才拿到响應,或者返回的字节數遠小于頁面實际大小(被截断、返回空壳 HTML),都需要回服務端复核。
- User-Agent:区分 Googlebot、Bingbot、百度蜘蛛等。不同蜘蛛的节奏不一样,混在一起統計會互相干扰。
- 請求路径:把同一目錄下的抓取次數排序,能看出蜘蛛偏好走哪條路径,也能發現某些目錄從未被抓過。
從日誌里能算出的三個指标
有效抓取比例
用 200 狀態碼的請求數除以蜘蛛的全部請求數。這個比例偏低,通常意味着大量請求耗在重定向、错誤頁或參數變体上,而不是耗在真正的内容頁上。
URL 覆盖率
分母是你希望被發現的 URL 總數,可以拿 Sitemap 或整理好的内鏈清單来当基准;分子是日誌里真實出現過的 URL 數。這個數字才能反映“發現”有没有缺口。
抓取分布在哪些层級
用 URL 路径深度粗略估算,看蜘蛛是主要停在列表頁,還是能落到詳情頁。如果深层頁面在日誌里長期缺席,問题往往出在内鏈而不是服務器。
几個常见卡点
- 5xx 與超时集中出現:先確認是不是某個时段、某台机器或某個接口的問题,而不是整個站点都不稳定。
- 403 反复出現:可能是安全策略把蜘蛛誤判成了攻击流量,需要核對 User-Agent 並做 IP 反查。
- 302 鏈太長:蜘蛛跟着跳,既消耗抓取額度,也容易丢參數。
- 同一内容被多種參數寫法抓取:說明站内連結或推送清單里混進了带參數的 URL,需要统一規范。
- robots.txt 拦住了本该被抓的目錄:這種情况在日誌里的表現是“根本没有請求”,所以不能只在日誌里找答案。
日誌只记錄了蜘蛛来過的請求,没来的頁面不會留下任何痕迹。判断“發現缺口”必须把日誌和 Sitemap、内鏈清單放在一起比對。
观察节奏與真伪核對
不需要每天盯。建议按周匯總一次,保留 30 到 90 天,重点看趋势而不是單日波動。改版、換 CDN、調整 robots.txt 的前後各留一段對照資料,结论會清晰很多。
另外要確認日誌里的蜘蛛是真的。用 User-Agent 配合反向 DNS 反查,或對照搜尋引擎官方公布的 IP 段,避免把伪装爬虫的流量当成搜尋蜘蛛,否則所有结论都會偏。