搜尋抓取

蜘蛛的回訪周期:頁面多久被抓一次,由什么决定

蜘蛛抓到頁面之後還會回来,間隔却有長有短。本文說明回訪周期是怎么被推算出来的,哪些因素會让間隔缩短或拉長,怎么從服務器日誌里看回訪間隔的變化,以及想让重要頁面被抓得更勤时,哪些做法真正有用。

搜尋抓取

蜘蛛的回訪周期:頁面多久被抓一次,由什么决定

抓取不是一次性動作。蜘蛛把一個 URL 抓回去之後,還會按自己的节奏回来,只是間隔並不统一:有的頁面几天就被再抓一次,有的几個月都等不到第二次訪問。這個間隔通常被称為回訪周期,它决定了新内容多快被發現,也决定了舊内容改動後多久才會反映到搜尋结果里。

回訪周期由蜘蛛自己推算,不是你能直接設定的

站点在 robots.txt 里寫的 crawl-delay 只是给蜘蛛的一條建议,真正的回訪节奏由搜尋引擎根據歷史抓取结果推算。它會參考這個地址過去的表現:内容有没有變化、响應是否稳定、在站内是否被频繁連結、是否有真實的訪問需求。表現稳定的頁面,回訪間隔會慢慢缩短;長期没有變化或者经常出错的頁面,間隔會被拉長。這是一個動態調整的過程,改一次設定並不會马上生效。

影响回訪間隔的几個常见因素

  • 内容更新频率:栏目每天更新和一年不動一次,回訪节奏差別很大。蜘蛛倾向于把有限的抓取次數分配给更容易出現新内容的地址。
  • 歷史抓取质量:响應快、狀態碼稳定、没有大段超时和 5xx 的頁面,更容易被安排更密的回訪。
  • 站内位置:首頁、频道頁、被大量内鏈指向的頁面,通常比深层頁面回訪得更勤。
  • Sitemap 里的 lastmod:如果這個時間戳對應真實的内容修改時間,能帮助蜘蛛判断哪些頁面值得優先回訪;如果每次生成 Sitemap 都刷新一遍,時間戳就失去了參考價值。
  • 站点整体抓取预算:頁面總量、更新量和服務器的承受能力共同决定蜘蛛在一個站点上能花多少時間,單個頁面能分到的回訪次數也受這個總量影响。

從服務器日誌里看回訪間隔

  1. 按 URL 分组,把同一個地址的抓取時間挑出来。
  2. 計算相邻两次抓取之間的間隔,观察它是在變短、變長還是基本稳定。
  3. 把出現 304、5xx、超时的時間点标出来,看看回訪間隔的變化是否和這些異常有關。
  4. 横向對比不同栏目:更新更勤、内鏈更多的栏目,回訪間隔是否明顯更短。

這样看下来,通常會發現問题:回訪並不均匀,少數核心頁面被反复訪問,大量長尾頁面几乎排在队列末尾。哪些頁面在被正常维護,哪些已经被放到後面,日誌比主观感觉更可靠。

想让重要頁面回訪得更勤,能做的事

  • 保持這些頁面的内容有實际變化,小幅补充和修订也好過只改時間戳。
  • 让 URL 保持稳定。改地址、加參數、反复重定向,都會让之前积累的回訪节奏重新開始。
  • Sitemap 只放需要被發現的地址,lastmod 寫成真實的修改時間。
  • 把重要頁面放在离首頁不遠的位置,用正文里的内鏈指向它,而不是只挂在頁脚。
  • 保證服務器在這些頁面被訪問时能稳定快速响應,避免让蜘蛛把次數浪費在超时上。
回訪周期更像是一種長期积累的信任,而不是一次操作就能改掉的參數。持續提供有變化、能稳定打開的内容,比临时手段更可靠。

几個容易踩的誤区

频繁刷新頁面時間戳、反复提交同一批 URL,並不會让回訪間隔明顯缩短,反而可能让這些信号失去參考價值。反過来,如果某個頁面确實几個月才更新一次,也不必强求它被频繁回訪,把精力放在真正需要及时被看到的頁面上更划算。

观察回訪周期的意义,不在于逼着蜘蛛按你的节奏走,而在于判断站点目前的抓取狀態是否和你的内容更新节奏匹配,再决定是繼續投入,還是先調整结构和服務器表現。