搜尋抓取

重訪节奏:頁面更新後,蜘蛛多久會再来看一次

抓取不是一次性動作。本文從服務器日誌出發,讲清蜘蛛重訪同一頁面的間隔受哪些因素影响、如何統計重訪节奏,以及通過稳定响應、真實 lastmod、内鏈入口和内容實质更新,让重要頁面的重抓更可预期。

搜尋抓取

重訪节奏:頁面更新後,蜘蛛多久會再来看一次

很多站点在内容更新之後會盯着服務器日誌,希望看到蜘蛛立刻出現。現實是,抓取不是一次性動作,而是一套按站点整体情况動態調整的調度。理解“重訪节奏”,比纠结某一次抓取更有用。

蜘蛛並不是按固定周期回来

不存在“每三天来一次”這種统一規則。蜘蛛是否重訪某個 URL,取决于它把多少抓取配額分给這個站、這個目錄、這個頁面。同一站点内,首頁和热门栏目頁的重訪間隔可能只有几小时,而半年前發布、再没動過的深层頁面,間隔拉到几周甚至更久都很常见。

影响重訪間隔的几個現實因素

  • 歷史更新频率:長期稳定更新的栏目,蜘蛛更愿意多来几次;長期不動的目錄,訪問會逐渐稀疏。
  • 頁面在站内的位置:入口多、内鏈密的頁面,被重新發現和重抓的机會更多。
  • 上次抓取的结果:返回 5xx、超时、反复重定向,都會让調度器降低優先級;稳定快速的响應則更有利。
  • 内容的實际變化:如果每次抓取拿到的都是同一份 HTML,重訪動力自然下降。
  • 站点整体抓取预算:小站配額有限,頁面越多,平均重訪間隔越長。

從日誌里讀重訪間隔

把日誌按 URL 分组,按時間排序,看同一蜘蛛 UA 對同一地址的连續訪問時間差,就能得到大致的重訪分布。注意区分几件事:

  1. 同一分钟内的多次請求,多半是並發或重试,不算重訪。
  2. 带不同參數的 URL 要單獨統計,否則資料會互相污染。
  3. 只看返回 200 的那一次,才算一次有效的抓取。

如果發現某個重要栏目頁的重訪間隔突然從几天變成几周,先查服務器狀態碼和响應時間,再查這個栏目的内鏈是否被改版削弱。

让“更新”這件事變得可识別

蜘蛛判断頁面是否變化,主要靠内容比對。以下几種做法能让更新更容易被感知:

  • 正文有實质增补、修订,而不是只改一個日期或調整無關模块。
  • Sitemap 里的 lastmod 與真實改動時間一致,不要每次生成都刷新成当天。
  • 更新後如果頁面已在站内被連結,可以顺带在相關栏目頁或列表頁体現出来,让入口頁也带着新信号。
  • 保持固定發布节奏,比偶尔一次性發布大量内容更利于形成稳定的抓取预期。
抓取频率提升只是過程指标。蜘蛛来得勤,不等于内容會被收錄,更不等于會获得排名。真正值得盯的是重要頁面能否被稳定抓取、抓到的是不是正确版本。

几個常见誤区

  • 反复微調頁面期待触發重抓:無意义的改動只會稀释變化信号,還可能让頁面長期停留在半成品狀態。
  • 靠提交接口解决一切:提交只是告知頁面存在與更新,抓取與否仍由調度决定。
  • 只盯着新頁面:老頁面更新後同样需要重抓,尤其是長期有效的内容頁。

可以落地的做法

先統計:挑二十個代表性 URL,從日誌里算出它們的平均重訪間隔,做成基线。再優化:保證服務器稳定、首字节時間波動小;把重要頁面的内鏈入口维持在合理數量;Sitemap 保持干净並且 lastmod 真實;更新内容时優先改正文而不是只改标题。最後观察:每隔两三周對比一次基线,看重点 URL 的重訪間隔和返回狀態是否朝着好的方向變化。节奏是慢慢調出来的,而不是一次操作就能改變。