搜尋抓取

Sitemap 與内鏈的分工:谁负责發現,谁负责维持抓取路径

Sitemap 和内鏈经常被当成同一件事来做,但一個负责提出“有哪些 URL”,另一個负责說明“這些 URL 怎么被走到”。這篇文章梳理两者的职责邊界、常见错配,以及一套可执行的核對顺序,帮助站点把 URL 發現和抓取路径分開管理,减少重复劳動。

搜尋抓取

Sitemap 與内鏈的分工:谁负责發現,谁负责维持抓取路径

说到让搜尋蜘蛛找到 URL,最常用的两個抓手是 Sitemap 和站内連結。很多站点把它們当同一件事来维護,结果要么重复劳動,要么两邊互相打架:Sitemap 里列了一堆頁面,站内却没有任何入口;内鏈走得通的頁面,Sitemap 里又長期缺失。把两者的职责分開看,管理會清爽很多。

Sitemap 解决的是“我有哪些 URL”

Sitemap 本质是一份候選清單,它回答的問题是:這個站点希望被看到的地址都有哪些。它的優势在于覆盖面和效率,不需要蜘蛛沿着連結一层层爬,就能拿到一份完整度較高的列表。

  • 适合列举层級較深、内鏈不容易覆盖到的頁面;
  • 适合新頁面刚上线、内鏈還没铺開时的早期暴露;
  • 适合數量庞大、靠導航难以穷举的归档類頁面。

需要记住的是,Sitemap 只是提出候選。它不是收錄開關,也不是抓取承诺,蜘蛛仍然會按自己的判断决定是否訪問、何时訪問。

内鏈解决的是“這些 URL 怎么被走到”

蜘蛛在站内的行動方式是跟着連結走。連結决定了路径長度、入口數量,以及一個頁面是不是長期處于可達狀態。這部分工作 Sitemap 替代不了。

  • 首頁和栏目頁的導航,决定了站点的基本层級;
  • 面包屑和列表頁,决定了詳情頁离入口有多遠;
  • 正文里的相關連結,决定了頁面之間的引用關系。

一個只在 Sitemap 里出現、站内没有任何連結指向它的頁面,實际上接近孤岛狀態。清單里有名字,路却走不通。

三類常见的错配

Sitemap 里有,内鏈里没有

通常是歷史遗留的栏目頁、活動頁,或者由後台自動生成但從未挂到導航上的地址。這類 URL 即使被抓取,也很难获得後續訪問。

内鏈里有,Sitemap 里没有

常见于改版後新增的栏目、临时頁面、參數變体,或者由程序拼出来的列表頁。它們能被走到,但清單里没有登记,規模一大就容易失控。

两邊都在,但内容對不上

比如 Sitemap 里還留着已经 404 的舊地址、被 robots 屏蔽的路径,或者指向了带追踪參數的變体。清單本身不干净,核對时就容易誤判。

一次可执行的核對顺序

  1. 導出目前 Sitemap 中的全部 URL,去重後形成清單 A;
  2. 用站内抓取工具或爬虫從首頁出發,抓出所有内鏈可達的 URL,形成清單 B;
  3. 比對 A 與 B:只出現在 A 里的,检查是否需要补内鏈入口;只出現在 B 里的,检查是否需要补進 Sitemap;
  4. 對两個清單都出現的 URL,抽查狀態碼、canonical 和 robots 規則,剔除重定向、失效和被屏蔽的地址;
  5. 改版、上新栏目或批量下架後,重复一次這個流程,而不是只在建站时做一遍。

不要期待它解决收錄問题

理顺 Sitemap 與内鏈,能减少“明明有頁面却没人發現”和“清單里全是走不到的死地址”這两類問题。但它不會直接带来收錄,也不影响頁面在结果中的位置。把它当成一項基础维護:清單保持干净,路径保持通畅,剩下的交给蜘蛛自己的調度。

清單负责让蜘蛛知道有什么,連結负责让蜘蛛走到哪里。两者分開看,問题往往更容易定位。