搜尋抓取

URL 發現渠道不止一條:外鏈、内鏈、Sitemap 與提交入口的分工

蜘蛛抓取的第一步不是抓,而是知道這個地址存在。内鏈、Sitemap、外鏈和提交入口都能让 URL 被發現,但它們的速度、覆盖面和稳定性差別不小。本文拆開讲這四條路各自适合放什么,怎么互相补位,以及 URL 被發現之後還要经過哪些环节。

搜尋抓取

URL 發現渠道不止一條:外鏈、内鏈、Sitemap 與提交入口的分工

很多人把抓取問题归到“蜘蛛不来”,但真正的起点更早:蜘蛛得先知道這個地址存在。一個 URL 如果没有任何地方指向它,抓取工具不會凭空猜到。所以讨论抓取效率,先把“發現”這一步拆開看。

發現和抓取是两件事

URL 被發現,只意味着它進了候選池。之後還有驗證、去重、排優先級、分配抓取频次,最後才轮到實际請求。很多站長看到提交了地址却没有抓取记錄,其實是卡在後面的环节,而不是發現失敗。

把這两步分開,問题就好定位了:日誌里完全没有這個 URL,多半是發現渠道的問题;有訪問记錄但很少来,多半是抓取环节的問题。

四條常见的發現路径

内鏈:最稳定,也最容易被忽略

站内連結是蜘蛛最依赖的發現方式。它顺着已经抓過的頁面往下走,一层层铺開。内鏈的好處是可控——你在哪個頁面放連結、放在什么位置,都由自己决定。

問题常出在覆盖不均:首頁和栏目頁連結很多,深层頁面却只有孤零零一條入口,還藏在列表第二頁之後。想让某個 URL 被稳定發現,最直接的做法是從一個已经被频繁抓取的頁面给它一條正文内的連結。

Sitemap:适合批量交代,不适合排優先級

Sitemap 像是给蜘蛛的一份清單,适合告诉它“這些地址都在,而且属于同一個站点”。新站、内容量大、内鏈结构還没搭起来的阶段,Sitemap 的價值最明顯。

但它是平的。Sitemap 里所有 URL 看起来權重差不多,蜘蛛不會因為一條记錄排在前面就先去抓它。所以不要把 Sitemap 当成提升某個頁面抓取優先級的手段,它解决的是“有没有被知道”,不是“先抓谁”。

外鏈:快,但不可控

外部連結能让蜘蛛從別的站点走到你的頁面,對全新域名尤其有用,因為那时站内還没有多少被抓過的頁面可以当跳板。

缺点是节奏不由你掌握:對方什么时候發、連結會不會被撤、是不是放在能被跟到的位置,都存在變數。可以把它当作补充入口,而不是主要依赖。

提交入口:用来补漏

站長後台的提交接口、以及一些协议化的推送方式,适合處理那些内鏈和 Sitemap 都覆盖不到的地址,比如刚上线還来不及加進導航的活動頁。

它們更像是加速發現,而不是替代结构。提交量遠大于站点實际更新量时,反而會稀释信号。

四條路怎么配合

一個比較稳的组合是:站点底层结构用内鏈串起来,Sitemap 兜住全量,外鏈负责冷啟動和站外扩散,提交入口专门用来补漏。任何时候都用四條路覆盖同一批 URL,其實是一種浪費。

  • 常規内容:内鏈為主,Sitemap 兜底
  • 新域名或全新目錄:外鏈加 Sitemap 双管
  • 临时頁面、活動頁:提交入口加一條首頁或栏目内鏈
  • 已刪除頁面:從内鏈里摘干净,同时更新 Sitemap

發現之後還有几道關

URL 進了候選池,還要经過規范化處理——带參數的、带會话 ID 的、末尾斜杠不一致的地址可能被合並。合並之後,一部分地址就再也不會被單獨抓取。

接着是優先級排序。蜘蛛會參考頁面的連結来源、更新频率、歷史响應情况来决定先抓谁。一個只有 Sitemap 记錄、没有任何内鏈指向的頁面,往往排在後面。

最後是抓取时的驗證:如果能稳定返回 200,後續回訪會規律一些;如果经常超时或返回错誤,回訪間隔會被拉長。這部分属于服務器侧的稳定性問题,和發現渠道無關,但會直接影响發現之後的落地效率。

發現渠道解决的是“蜘蛛知不知道”,服務器稳定性和内鏈结构解决的是“知道之後愿不愿意常来”。两件事混在一起排查,容易找不到重点。

一個简單的自查顺序

  1. 日誌里完全没有该 URL:先看内鏈有没有指向它,再看 Sitemap 是否包含
  2. 有记錄但抓取次數极少:检查連結所在頁面的抓取频率,以及该頁面在站内的层級
  3. 抓取過但不再回来:看响應狀態、内容是否長期不變、是否已经被合並到別的地址
  4. 批量新增 URL:先补内鏈入口,再更新 Sitemap,不要只做後者

把這四條發現路径当成一個整体来規划,比單纯反复提交地址更省事,也更容易看清問题到底出在哪一步。