搜尋抓取

新頁面發布後多久被發現:入口連結、内鏈與日誌時間线

新頁面發布後蜘蛛什么时候来,取决于站内入口、抓取节奏和連結深度。本文整理影响發現延迟的三個因素、常见的入口遗漏,以及用服務器日誌建立首次抓取時間线的核對方法。

搜尋抓取

新頁面發布後多久被發現:入口連結、内鏈與日誌時間线

新頁面發布之後,最常被問的問题是「蜘蛛什么时候来」。這個問题的答案很少由單一因素决定,它取决于頁面有没有被放進站点已有的抓取路径里,以及蜘蛛上一次訪問這些路径时,服務器给出的响應是否稳定。

發現延迟由三件事决定

  • 入口:頁面是否從已经被抓取的頁面上有可点击的連結指向。孤岛頁面只能靠 Sitemap 或外鏈被發現。
  • 抓取节奏:蜘蛛對你站点的整体訪問频率,受歷史更新频率、响應速度和站点規模影响。
  • 路径長度:從首頁到目标頁要经過几层連結,层數越多,被排队的時間通常越晚。

這三件事可以分別優化,但顺序上應先解决入口,再谈节奏。

發布时最容易漏掉的入口

很多頁面不是没有被連結,而是被連結在蜘蛛不常優先走的位置:

  1. 只在搜尋结果頁或篩選後的列表里出現,參數化 URL 让蜘蛛摸不到一個稳定地址。
  2. 只出現在首頁「最新」模块,而该模块由 JS 渲染,第一轮 HTML 里没有連結。
  3. 只挂在专题頁的最後一屏,中間隔了十几條折叠内容。
  4. Sitemap 更新了,但内鏈還没补,蜘蛛只能通過地图找到它,拿不到任何上下文。
入口和上下文最好同时具备:從相關栏目、相關内容或聚合頁,用一段正常可讀的連結引過去,比單纯扔進 Sitemap 更稳。

用日誌建立一條時間线

想知道發現延迟到底卡在哪,可以按下面的顺序對日誌:

  • 记錄頁面實际上线時間,包含内容真正可訪問的那個時間点。
  • 在日誌里筛這個 URL 的首次請求,记下時間與狀態碼。
  • 看首次抓取时返回的是 200,還是 301、302、404 或 5xx。狀態碼不對,後續會重复走弯路。
  • 再看第二次、第三次訪問的間隔,判断是被正常重訪,還是被反复试探。

如果首訪很快但狀態碼異常,問题多半在發布流程;如果狀態碼正常但首訪很晚,問题大多在入口和抓取节奏。

几個常被誤判的情况

「Sitemap 提交了,怎么還没来」

Sitemap 是發現线索,不是抓取指令。它告诉蜘蛛存在這么一個地址,但不保證立刻排队。真正决定顺序的,還是站点整体的抓取节奏,以及這個地址在站内的位置。

「日誌里没记錄,是不是被屏蔽了」

先確認日誌覆盖范围:CDN、负载均衡、源站可能各记一份,只看其中一层容易漏。另外要区分蜘蛛 UA 與伪装 UA,反向解析能帮你過滤掉噪音。

「同一頁面被抓好几次」

检查是否有多個 URL 指向同一内容,例如带和不带尾斜杠、大小寫不同、带跟踪參數。規范化没做好时,蜘蛛會把它当成多個頁面分別排队。

可操作的調整

  • 新頁面發布时同步补一條来自相關栏目的内鏈,至少保證從首頁三层内可達。
  • Sitemap 只放規范化的、能返回 200 的地址,lastmod 按真實更新時間填寫。
  • 保持服務器响應稳定,避免在蜘蛛訪問集中的时段做全站重置或大流量压测。
  • 按周統計新 URL 的首次抓取時間,形成自己的基线,出現異常时更容易發現。

發現延迟没有固定值,但可以观察、可以改善。把入口补齐、狀態碼理顺、日誌核對清楚,多數「蜘蛛不来」的問题都能定位到具体环节,而不是停在猜测上。