搜尋抓取

新連結的發現鏈路:蜘蛛從哪里第一次看到你的頁面

抓取的第一步不是解析也不是渲染,而是發現。本文梳理蜘蛛發現 URL 的几類入口,比較不同入口的發現速度差异,並给出用服務器日誌量化“首次發現時間”的具体做法,以及几種让連結看似存在却抓不到的常见寫法。

搜尋抓取

新連結的發現鏈路:蜘蛛從哪里第一次看到你的頁面

很多站点把“没有被收錄”归结為權重或算法問题,但更常见的原因是:蜘蛛压根没见過這個 URL。抓取的第一步不是解析,也不是渲染,而是發現。發現不了,後面所有優化都無從谈起。

蜘蛛發現 URL 的几類入口

同一篇文章,從不同入口進入抓取队列的時間可能差几天。常见的入口大致有這些:

  • 站内連結:首頁、栏目頁、列表頁、相關推荐里的 a 标簽,是發現新連結最稳定的来源。蜘蛛顺着連結走,顺便還能带走連結所在頁面的上下文。
  • Sitemap:适合批量告知,尤其是那些层級深、内鏈少的頁面。它更像一份清單,不是加速器。
  • 外部連結:別人頁面上指向你新頁面的連結,往往能带来較快的首次訪問,但可控性差。
  • 推送接口:搜尋引擎提供的主動推送(如 IndexNow、站点推送 API)能在短時間内把 URL 送出去,通常有配額限制,适合重点頁面。
  • RSS / 订阅源:部分蜘蛛會定期拉取,适合内容更新频繁的站点作為补充。

入口不同,發現速度也不同

经驗上,從快到慢大致是:主動推送、首頁或高频更新栏目的内鏈、Sitemap、深层内鏈、纯外鏈。這不是绝對值,但方向可以拿来安排發布流程。

  • 新文章發布後,先保證它在某個高频被抓取的列表頁里露出一段時間。
  • 重点頁面可以配合推送,但不要把所有 URL 都推一遍,配額用完了真正需要加速的頁面反而没机會。
  • Sitemap 更新後不需要反复提交,保持内容與實际 URL 一致更重要。

用日誌確認“首次發現時間”

發現速度是可以量化的,不必靠猜。做法是:

  1. 记錄頁面上线時間(不是寫作時間,是 URL 可訪問的時間)。
  2. 在服務器訪問日誌里筛出该 URL 的第一次蜘蛛訪問记錄,取時間戳。
  3. 用首次訪問時間减去上线時間,得到發現延迟。
  4. 按栏目或頁面類型分组,看哪些入口的延迟明顯更長。
  5. 對延迟異常的頁面,回头检查它的入口連結是否真的存在、是否可点击。

采样几十個頁面就能看出規律,比逐頁盯着看效率高得多。

让連結“看起来存在却抓不到”的几種寫法

  • 連結靠 JS 交互生成:需要点击、滚動或登入後才出現的連結,蜘蛛不一定會触發。
  • a 标簽缺 href:用 JS 绑定点击事件的“伪連結”,在 HTML 里没有可抓取的地址。
  • nofollow / robots 誤伤:本意是控制權重或隐私,结果把發現入口也一起關掉了。
  • Sitemap 與實际 URL 不符:提交了已刪除或跳轉的地址,蜘蛛白跑一趟,也會降低對這份清單的信任。
  • URL 带随机參數:同一個頁面每次生成不同地址,蜘蛛每次看到的都像新頁面,實际互相分散。

把發現鏈路串起来

比較稳妥的组合是:站内連結负责日常發現,Sitemap 负责兜底,推送负责少數重点頁面,外鏈顺其自然。發布流程上,先確認頁面可訪問,再让它出現在列表頁,最後才考虑是否需要推送。

發現只是把 URL 交到蜘蛛面前,能不能抓、抓几次、要不要收錄,仍取决于服務器响應、頁面质量和站点整体情况。

定期做一次發現鏈路自查:随机挑十個新頁面,用日誌算一遍發現延迟,再回到頁面上找它的入口連結。多數“收錄慢”的問题,在這一步就能定位到原因。