搜尋抓取

服務器日誌里的抓取记錄:哪些信号值得看,哪些容易被誤讀

服務器日誌是观察蜘蛛抓取最直接的材料,但抓取次數多並不代表抓得對。本文把日誌里的請求、狀態碼與来源分開来看,整理出值得長期關注的几類信号,也列出 CDN 缓存、伪造 UA、參數噪音等容易誤讀的情况,並给出用日誌反查内鏈與 URL 發現的几個具体動作。

搜尋抓取

服務器日誌里的抓取记錄:哪些信号值得看,哪些容易被誤讀

想了解蜘蛛到底怎么走站点,服務器日誌是最直接的一手材料。它记錄的是已经發生的事,不依赖任何工具的估算。但日誌也最容易被過度解讀:抓取次數多不等于抓得好,5xx 變少也不等于問题解决了。看日誌之前,先明确自己想回答的是哪類問题——“哪些 URL 被抓了”“抓的时候服務器回了什么”“哪些頁面一直没被抓”,而不是笼统地看“今天蜘蛛来了多少次”。

先把日誌里的三類信息分開

  • 請求本身:時間、IP、User-Agent、請求方法、完整 URL(含參數)。
  • 响應结果:狀態碼、响應体积、响應耗时。
  • 来源线索:Referer 有时能看出蜘蛛是從哪個頁面走到這個 URL 的。

把這三類分開看,很多疑問會自然消失。比如“蜘蛛是不是不喜欢我的新頁面”,往往只是新頁面還没有被站内連結指向,日誌里自然不會出現。

值得長期盯的几個信号

狀態碼的分布

200 之外的部分更值得關注。404 集中出現,說明站内仍有指向失效地址的連結,蜘蛛每次都白跑一趟;301 鏈過長,說明跳轉没有收敛到最终地址;5xx 與超时則會影响抓取节奏,蜘蛛遇到连續失敗通常會放慢速度、拉開間隔。304 是正常現象,表示蜘蛛在做條件請求、頁面没有變化,不算抓取失敗。

被抓的 URL 是不是你想被抓的

如果日誌里大量出現篩選、排序、會话參數拼出来的地址,而有用的内容頁反而出現得少,說明抓取路径被參數入口分走了。這时先检查内鏈和 sitemap 里的 URL 寫法,再考虑其他原因。

同一 URL 的重复抓取

短期内反复抓同一個地址,通常意味着頁面有更新信号,或者這個地址被多處連結引用。前者是正常的;後者要看是不是内鏈冗余,是否值得調整連結位置,让連結集中到更有價值的地址上。

抓取时段與频次的變化

频次突然下降,可能出在服務端(响應變慢、错誤率上升),也可能出在站点本身(長期不更新、内容结构發生變化)。连續看两周的趋势,比盯着某一天的峰值有意义得多。

容易被誤讀的几種情况

  • User-Agent 可以伪造:日誌里自称蜘蛛的請求不一定是蜘蛛,必要时用反向 DNS 校驗身份。
  • CDN 命中时源站日誌是空的:邊缘节点直接返回缓存,源站看不到這次抓取,容易得出“蜘蛛没来”的错誤结论。要分析抓取,最好取邊缘节点日誌,而不是只看源站。
  • 被抓不等于被收錄:日誌只說明請求發生過,頁面是否進入索引是另一回事,两者不要混着判断。
  • 抓取量下降不一定有問题:清理掉大量重复的參數 URL 之後,抓取總量下降反而是一次正常的收敛。

用日誌反過来推進 URL 發現

  1. 把 sitemap 里的 URL 與日誌中實际被抓的 URL 做一次對照,找出“提交了但從没被抓過”的部分,優先检查這些頁面的内鏈入口。
  2. 找出“被抓過却没有内鏈指向”的孤岛頁面,為它們补上自然、相關的連結路径。
  3. 结合 Referer,確認重要的内容頁是否真的處在离首頁几步之内就能被点到的位置。
  4. 翻出 404 日誌里的来源頁面,把失效連結修掉或換成有效地址,避免蜘蛛每次都走進同一條死胡同。
日誌是過程指标,不是结果指标。它适合用来發現抓取路径上的問题,不适合用来判断頁面本身的好坏。

把日誌当成一張路线图来看,比当成一張成绩單更有用。定期對照 sitemap、内鏈结构和狀態碼分布,通常就能找到抓取路径里最明顯的那几處断点。