後台統計和第三方工具给的是整理過的结论,服務器日誌给的是一手事實。当报表顯示“抓取正常”而收錄迟迟不動时,把日誌翻出来看一遍,往往能找到被忽略的原因。這篇只讲一件事:怎么從蜘蛛抓取记錄里,看清哪些頁面被認真抓過,哪些只是被路過。
先確認日誌字段够用
常见的訪問日誌至少要有這些字段:訪問時間、来源 IP、請求方法、完整 URL、狀態碼、User-Agent、来源頁,最好再加上响應大小和响應耗时。如果站点前面挂了 CDN 或反向代理,直接看日誌可能全是节点 IP,需要让服務端取 X-Forwarded-For 或 X-Real-IP 里的真實地址,否則後面所有按 IP 做的判断都是错的。
另外注意日誌的保留周期。只留三天,就没法和上周對比,也看不出“某個目錄是慢慢變差的”。一般建议滚動保留 30 天以上,重要站点按月归档。
把蜘蛛請求單獨筛出来
按 User-Agent 過滤出 Googlebot、Bingbot、Baiduspider、YisouSpider 等常见标识,先看每天的總請求量,再分两步處理:
- 核對 UA 的真實性。關键节点可以做反向 DNS 驗證,很多自称蜘蛛的請求其實是采集器或者刷流量的脚本。
- 按目錄分组。首頁、栏目頁、詳情頁、静態资源、接口各占多少,比例能反映蜘蛛的兴趣落在哪里。
如果大量請求来自陌生 UA,並且集中在動態接口或搜尋參數上,不要急着当成“抓取旺盛”,先按訪問频率和来源做限速或拦截。
重点看四個指标
- 狀態碼分布。正常站点 200 應占大多數。如果 404 集中在某個舊目錄,說明還有内鏈或外鏈指向失效地址;5xx 集中在固定时段,通常是备份、批處理或資料库慢查询在抢占资源。
- 抓取频次與深度。核心栏目是否天天被抓,三层以外的頁面多久出現一次。長期不出現的地址,多半是入口太少或层級太深。
- 响應耗时。日誌里的耗时字段比“首頁秒開”更有代表性,看看詳情頁在被蜘蛛訪問时的平均响應,是否明顯高于普通用戶。
- 抓取集中度。如果绝大部分請求都落在參數篩選、日歷翻頁、排序連結上,說明抓取预算被稀释,需要把這類地址收敛掉。
常见異常與對應動作
- 同一路径持續 404:补 301 到最接近的有效頁面,並更新站内指向。
- 静態资源被反复抓取:考虑加缓存头或合並請求,减少無效抓取。
- 蜘蛛只抓首頁不抓内頁:检查導航和列表頁是否被脚本遮住,入口是否可点击。
- 深夜出現異常抓取高峰:核對是否與备份、日誌切割、同步任務重合。
- 參數頁數量暴涨:用 canonical 或 robots 規則明确哪些组合不需要抓。
這里顺便提一句:市场上有些所谓“蜘蛛池”服務,承诺短時間带来大量抓取。日誌里确實能看到請求暴涨,但那些請求多數来自伪造 UA 和被劫持的站点,既不产生收錄,也會让站点在正常评估中顯得異常。抓取量不等于抓取质量,日誌里最该關注的是狀態碼和落地頁,而不是绝對數量。
把结论落成待办
看完日誌別只点個头。至少寫下三件事:要修的地址清單、要补的入口位置、下周要复查的指标。比如“某栏目 404 共 46 條,先改内鏈,下周三复查是否归零”。有明确項和复查時間,日誌分析才算閉环。
日誌是事實,报表是结论。两者對不上时,先把原始记錄看一遍再下判断。
日誌分析不需要每天做,每周挑一天,把蜘蛛請求、狀態碼和响應耗时過一遍,長期下来對站点抓取状况的了解,會比任何單次报表都清楚。