服務器日誌大多被当成流量計數器:看 PV、看 UV、看哪個时段人多。但對站点运营来说,日誌還有一层更實用的價值——它记錄了搜尋蜘蛛到底訪問了什么、以什么频率訪問、在哪里碰壁。如果只把日誌用来數字节,等于把一份抓取体检报告搁在角落里积灰。
先確認日誌里到底记了什么
不同环境记的字段不一样。先打開最近一天的日誌,看有没有這些列:訪問時間、客戶端 IP、User-Agent、請求方法、請求 URL(含查询參數)、HTTP 狀態碼、响應字节數。少了狀態碼或 URL 參數,後面的判断都會打折扣。如果服務器没法补全,至少把狀態碼和完整 URL 保下来。
把真蜘蛛和伪装請求分開
日誌里自称蜘蛛的請求很多,未必都是真的。常见做法是组合判断:
- 看 User-Agent 是否完整、是否為已知的官方 UA 字符串;
- 對可疑 IP 做反查,看是否属于對應搜尋引擎的官方段;
- 看請求频率和路径特征,伪装爬虫往往集中抓取少數頁面,或者完全忽略 robots.txt 的限制。
把這两類分開之後,再去看抓取資料,结论才不會被刷量的假請求带偏。
看抓取路径分布,而不是只看總量
總量高不代表抓得對。按 URL 目錄维度做一次分组統計,通常能看到很直观的差异:有的栏目被抓了几千次,有的栏目几乎為零。出現這種情况时,先检查那些低抓取栏目是否入口太少、是否被 noindex、是否在列表頁第二頁之後没有稳定連結。抓取分布其實是在替你回答一個問题:站内連結把權重推向了哪里。
抓取频次和波峰是否和更新节奏對得上
如果你每周固定更新某几個栏目,日誌里這几個目錄的抓取频次應该有對應變化。如果更新了却看不到抓取反應,方向可能出在:新内容没有出現在任何列表頁、内鏈埋得太深、或者頁面本身加载過慢導致抓取被中断。
日誌里的几類異常信号
- 某個 URL 持續返回 5xx,蜘蛛反复重试,說明服務端不稳定;
- 大量 403,可能是防火墙或安全策略誤伤;
- 跳轉鏈過長,同一條路径出現多次 301;
- 带參數的 URL 數量爆炸,說明分頁、篩選、排序參數没有被規范處理;
- 蜘蛛频繁訪問已下线的舊地址,說明外部連結或站内連結還指向舊结构。
這些問题不一定立刻影响什么,但會持續消耗抓取资源,拖慢新頁面被發現的速度。
把日誌和 sitemap、内鏈對上
日誌能回答一個很實际的問题:你提交的地址,蜘蛛到底来没来。把 sitemap 里的 URL 和日誌中出現過的 URL 做一次比對,能分成三類——已抓取、未抓取、抓取但狀態異常。未抓取的那部分,需要回头检查是否被 robots.txt 挡了、是否只在 sitemap 里出現而没有站内連結。sitemap 是建议,内鏈才是主要入口,两者不一致时,蜘蛛通常信内鏈。
日誌留存和轮轉
建议至少保留 30 天以上的原始日誌,並按天归档。做月度對比时,至少能看出抓取量、抓取目錄、異常狀態碼的變化趋势。如果磁盘紧張,可以按周压缩,但不要只留匯總統計,原始行在排查具体 URL 时才有用。
日誌不是事後追责用的,它是少數几種能直接反映蜘蛛行為的原始材料。定期翻一翻,比猜测抓取情况可靠得多。