搜尋抓取

抓取回訪間隔:URL 被發現之後,搜尋蜘蛛多久再来一次

URL 被收錄進抓取队列只是開始,真正影响更新能否及时反映的是回訪間隔。本文拆解决定回訪节奏的几個變量——内容變化信号、内鏈位置、服務器响應、狀態碼鏈路與站点整体抓取压力,並给出一套可以用服務器日誌逐項核對的排查顺序。

搜尋抓取

抓取回訪間隔:URL 被發現之後,搜尋蜘蛛多久再来一次

URL 被發現只是第一步。接下来的問题是:搜尋蜘蛛多久會再回来一次?這個間隔不是站点能直接设定的參數,而是由一串信号共同决定的结果。理解這些信号,比反复猜测“多久抓一次”更有用。

回訪間隔從来不是一個固定數字

很多运营者习惯把抓取理解成“每天来一次”或“每周来一次”,但實际調度是逐個 URL 計算的。同一個站点里,首頁可能几小时就被回訪一次,而一個几個月没更新、只有一條内鏈指向的詳情頁,可能几周都不會被重新抓取。差异来自每個 URL 自身携带的信号,而不是站点的整体表現。

影响回訪频率的几個變量

頁面變化的可信度

如果 Sitemap 里的 lastmod 長期被批量刷新,但正文並没有實质變化,這個字段的參考價值會下降,回訪也不會因此變密。反過来,正文确實有新增段落、價格調整、库存變化,並且這些變化能被正常抓取到,回訪节奏通常會慢慢稳定下来。

内鏈位置與連結變化

一個 URL 被放在首頁導航、栏目列表第一屏,和被埋在分頁第五頁的正文末尾,被重新發現的概率並不相同。内鏈本身發生變化——比如新增了一條從訪問量較高的頁面指向它的連結——往往比修改頁面标题更能带動回訪。

服務器响應與稳定性

响應時間是調度端能直接观测到的信号之一。持續几百毫秒返回的頁面,和经常要數秒才响應的頁面,得到的抓取节奏不一样。間歇性的 5xx 更麻烦:它既消耗配額,又可能让調度端降低對该主机的抓取频率,恢复需要一段時間。如果站点在高峰期频繁超时,回訪間隔變長几乎是必然的。

抓取时拿到的狀態

每次回訪的结果都會影响下一次安排。返回 200 且内容有變化,属于正反馈;返回 304 說明内容没變;返回 404 會逐步减少回訪;返回 5xx 會被视為服務器問题;软 404(返回 200 但内容為空或提示不存在)則容易让頁面長期停留在低優先級队列里。重定向鏈也要注意,一次跳轉可以接受,三层以上跳轉會让抓取路径變長,回訪意愿下降。

站点整体的抓取压力

配額是站点級別的。如果日誌里大量 URL 是參數拼接产生的低價值地址,它們會占用本就有限的名額,把真正需要更新的頁面挤到後面。先清理這類地址,往往比反复提交新頁面更有效。

几個常见的誤解

  • 認為提交 Sitemap 就能加快回訪:提交只解决“知道有這個 URL”,不解决“多久来一次”。
  • 認為频繁改動 lastmod 能催抓取:字段被反复刷新後,參考價值反而降低。
  • 認為首頁更新會带動全站:首頁更新通常只影响首頁及其直接連結的少數頁面。
  • 認為搜尋结果里的快照時間等于上次抓取時間:两者並不總是一致,最好以服務器日誌為准。

可以用日誌驗證的核對顺序

  1. 先從日誌中筛出目标 URL 的抓取记錄,統計两次抓取之間的實际間隔,而不是凭感觉判断。
  2. 检查该 URL 的入口數量與入口位置,確認是否只有一條埋得很深的内鏈。
  3. 核對服務器响應時間與错誤率,排除超时、5xx 集中出現的时段。
  4. 核對狀態碼鏈路:是否存在多余的跳轉、软 404 或參數變体。
  5. 核對 Sitemap 中的 lastmod 是否與正文實际修改時間一致。
  6. 最後再考虑内容本身是否真的有更新價值——長期無變化的頁面回訪變慢属于正常現象。
回訪間隔是被“观测结果”推着走的:服務器稳定、内容有實质變化、入口清晰,节奏自然會稳;反之,任何一环出問题,最先反映出来的往往就是抓取變慢。