想了解蜘蛛到底怎么走站点,服務器日誌是最直接的一手材料。它记錄的是已经發生的事,不依赖任何工具的估算。但日誌也最容易被過度解讀:抓取次數多不等于抓得好,5xx 變少也不等于問题解决了。看日誌之前,先明确自己想回答的是哪類問题——“哪些 URL 被抓了”“抓的时候服務器回了什么”“哪些頁面一直没被抓”,而不是笼统地看“今天蜘蛛来了多少次”。
先把日誌里的三類信息分開
- 請求本身:時間、IP、User-Agent、請求方法、完整 URL(含參數)。
- 响應结果:狀態碼、响應体积、响應耗时。
- 来源线索:Referer 有时能看出蜘蛛是從哪個頁面走到這個 URL 的。
把這三類分開看,很多疑問會自然消失。比如“蜘蛛是不是不喜欢我的新頁面”,往往只是新頁面還没有被站内連結指向,日誌里自然不會出現。
值得長期盯的几個信号
狀態碼的分布
200 之外的部分更值得關注。404 集中出現,說明站内仍有指向失效地址的連結,蜘蛛每次都白跑一趟;301 鏈過長,說明跳轉没有收敛到最终地址;5xx 與超时則會影响抓取节奏,蜘蛛遇到连續失敗通常會放慢速度、拉開間隔。304 是正常現象,表示蜘蛛在做條件請求、頁面没有變化,不算抓取失敗。
被抓的 URL 是不是你想被抓的
如果日誌里大量出現篩選、排序、會话參數拼出来的地址,而有用的内容頁反而出現得少,說明抓取路径被參數入口分走了。這时先检查内鏈和 sitemap 里的 URL 寫法,再考虑其他原因。
同一 URL 的重复抓取
短期内反复抓同一個地址,通常意味着頁面有更新信号,或者這個地址被多處連結引用。前者是正常的;後者要看是不是内鏈冗余,是否值得調整連結位置,让連結集中到更有價值的地址上。
抓取时段與频次的變化
频次突然下降,可能出在服務端(响應變慢、错誤率上升),也可能出在站点本身(長期不更新、内容结构發生變化)。连續看两周的趋势,比盯着某一天的峰值有意义得多。
容易被誤讀的几種情况
- User-Agent 可以伪造:日誌里自称蜘蛛的請求不一定是蜘蛛,必要时用反向 DNS 校驗身份。
- CDN 命中时源站日誌是空的:邊缘节点直接返回缓存,源站看不到這次抓取,容易得出“蜘蛛没来”的错誤结论。要分析抓取,最好取邊缘节点日誌,而不是只看源站。
- 被抓不等于被收錄:日誌只說明請求發生過,頁面是否進入索引是另一回事,两者不要混着判断。
- 抓取量下降不一定有問题:清理掉大量重复的參數 URL 之後,抓取總量下降反而是一次正常的收敛。
用日誌反過来推進 URL 發現
- 把 sitemap 里的 URL 與日誌中實际被抓的 URL 做一次對照,找出“提交了但從没被抓過”的部分,優先检查這些頁面的内鏈入口。
- 找出“被抓過却没有内鏈指向”的孤岛頁面,為它們补上自然、相關的連結路径。
- 结合 Referer,確認重要的内容頁是否真的處在离首頁几步之内就能被点到的位置。
- 翻出 404 日誌里的来源頁面,把失效連結修掉或換成有效地址,避免蜘蛛每次都走進同一條死胡同。
日誌是過程指标,不是结果指标。它适合用来發現抓取路径上的問题,不适合用来判断頁面本身的好坏。
把日誌当成一張路线图来看,比当成一張成绩單更有用。定期對照 sitemap、内鏈结构和狀態碼分布,通常就能找到抓取路径里最明顯的那几處断点。