做蜘蛛池和站点运营,很多人每天第一件事就是打開服務器日誌,看到几條带 Baiduspider 或 Googlebot 的记錄就安心了。但日誌里的 UA 是客戶端自己寫的,谁都能伪造。真正要判断的是:来的到底是不是搜尋蜘蛛,以及它有没有真的抓到你希望它抓的那個 URL。
一、只看 UA 很容易被誤導
日誌里出現的蜘蛛记錄,大致有三類:
- 真蜘蛛:来自搜尋引擎官方 IP 段,行為有自己的节奏。
- 伪装蜘蛛:采集器、掃描器把 UA 改成蜘蛛名字,實际是来扒内容的。
- 自己的誤判:某些监控、预取、CDN 回源請求,UA 里也可能带 spider 字样。
三類混在一起,就會出現“日誌里蜘蛛很多,目标 URL 却一直没動静”的错觉。
二、三步確認抓取是否真實
第一步:核對来源 IP,而不是 UA
主流搜尋引擎會公布蜘蛛的 IP 段,或者支持通過 DNS 反查驗證:把訪問 IP 做一次反向解析,看域名是否落在官方域名下,再做一次正向解析確認能對回来。只反查一次不够,正反都能對上才算數。
如果入口頁挂在 CDN 或反向代理後面,日誌里记錄的可能是节点 IP。這时候要去源站日誌,或者让 CDN 透传真實客戶端 IP,否則你看到的永遠是节点地址。
第二步:看請求路径和狀態碼
確認是官方 IP 之後,再看它到底請求了什么:
- 有没有請求入口頁本身並返回 200,還是只取了一次 robots.txt 就走了。
- 有没有顺着入口頁里的連結請求目标 URL,狀態碼是 200、301 還是 404。
- 返回 403、429 的次數多不多,多的话說明被 WAF 或限速挡了。
很多“蜘蛛来過但没抓目标 URL”的情况,實际是入口頁返回了 200,但目标 URL 那一行根本没出現,或者出現的那行狀態碼是 403。
第三步:看抓取节奏和並發
真蜘蛛通常按自己的队列节奏抓,短時間内不會對同一 IP 疯狂並發。如果某個“蜘蛛”在几秒内請求了几百個頁面,路径又集中在文章列表、下载頁,基本可以判定是采集器。反過来,如果一天只有零星一两次請求,說明入口頁對蜘蛛的吸引力有限,需要回头看入口頁的可發現性,以及站点自身的抓取预算情况。
三、把日誌结论轉成可执行動作
- 真蜘蛛抓入口頁却不抓目标 URL:检查連結是否可点、是否在首屏 HTML 里、是否被 nofollow 或 JS 渲染挡住。
- 真蜘蛛连入口頁都很少来:看入口頁本身是否被索引、是否有外部連結指向、是否被 robots 或 noindex 挡住。
- 大量 429 或 403:先調 WAF 白名單和限速規則,再谈抓取量。
- 大量伪装蜘蛛:不影响收錄判断,但會消耗带宽,可以按 IP 段做限流。
日誌只說明“發生過什么”,不保證“接下来會收錄什么”。蜘蛛来過、抓過,只是把 URL 放進了候選队列,最终是否收錄還取决于頁面本身的质量和站点整体情况。
养成按周對比日誌的习惯:真蜘蛛的請求次數、目标 URL 的命中次數、狀態碼分布,三條曲线放在一起看,比單看某一天的總請求量有用得多。