搜尋抓取

URL 层級與抓取路径:重要頁面別埋在第五层目錄

蜘蛛的抓取深度受预算和路径影响,目錄层級與点击深度共同决定一個 URL 被發現的难易。本文說明怎么判断頁面是否埋得太深,以及用扁平化路径、面包屑、HTML 站点地图和内鏈把重要頁面提到更浅的位置。

搜尋抓取

URL 层級與抓取路径:重要頁面別埋在第五层目錄

站点做大之後,常會遇到一種情况:首頁和栏目頁被抓得很勤,而某些真正有轉化的頁面,日誌里好几個月不见蜘蛛。多數人第一反應是查 robots 或 Sitemap,其實更常见的原因是這些 URL 埋得太深——蜘蛛要走很多层連結才能到,或者目錄层級本身就長。

抓取深度其實有两层含义

说頁面“埋得深”,往往混了两件事:一是点击深度,從首頁出發点几次連結能到這個 URL;二是目錄层級,URL 路径里有几层斜杠。两者相關但不等同。点击深度决定蜘蛛能不能沿着連結走過来,目錄层級更多影响路径的可讀性和後期改版时的稳定性。優化时先看点击深度,因為它直接對應抓取路径。

深层頁面為什么更难被抓

  • 抓取预算有限,蜘蛛倾向于優先重复訪問已發現的浅层 URL;
  • 信任度随层級衰减,深层頁面拿到的内鏈和入口都更少;
  • 路径越長,中間任一环节出問题(分頁断鏈、參數寫错、返回 404),後面的頁面這一轮就抓不到;
  • 服務器响應變慢时,预算先被浅层頁面吃掉,深层頁面被排到队列後面。

几種把頁面越埋越深的寫法

列表頁分頁翻到十几頁以後:新内容進不了前几頁,蜘蛛也很少顺着第八、第九頁繼續往下走,後面的詳情頁只能等下一次。按年份、月份做归档目錄:结构上清楚,抓取路径上却拉得很長,内容一多就形成一長串時間层級。

标簽頁和篩選頁大量複製同一批連結,蜘蛛在這些頁面之間绕圈,反而消耗掉通往詳情頁的次數。還有一種是把内容放在多級子目錄里,首頁到詳情頁要经過五六個中間頁,任何一层改版都會影响整條通路。

把重要頁面提到浅层的做法

  • URL 路径尽量控制在两三层以内,目錄名保持语义化,方便判断頁面归属;
  • 重要頁面在首頁或一級栏目直接给入口,而不是只出現在列表頁末尾;
  • 用面包屑补齐上下級關系,让蜘蛛從詳情頁可以横向走到同层級頁面;
  • HTML 站点地图放在全站頁脚,一次点击就能拿到主要栏目和重点頁面,作為兜底通路;
  • 正文内的相關阅讀、推荐位把深层頁面互连起来,减少對分頁列表的依赖。

服務器稳定性在這里起什么作用

层級深意味着一次抓取要串起更多請求。如果中間頁面响應時間不稳定或偶發 5xx,蜘蛛可能在半路停住,後面的 URL 這一轮就没了。相比之下,浅层頁面即使偶發失敗,下一轮也容易被重新抓到。

所以控制响應時間、错誤率,和優化内鏈结构其實是一件事的两面,不必分開做。只調结构不改稳定性,深层頁面的抓取频次提升往往有限。

怎么確認頁面是不是埋太深

比較直接的办法是看日誌:統計每個頁面一個月内被蜘蛛抓取的次數,再對照它在站点里的点击深度。两條曲线通常大致平行——浅层頁面抓得多,越深越少。如果某個重要頁面的抓取次數明顯低于同层級其他頁面,先检查内鏈入口和 Sitemap 是否完整,再看它是不是只能從分頁列表的靠後位置進入。

几個容易忽略的细节

  • 层級不是越平越好,扁平只是手段,让重要頁面有一條短而稳定的通路才是目的;
  • 改版时如果調整了目錄结构,记得用 301 把舊路径指到新路径,別直接删掉;
  • 新上线的重点頁面,可以临时在首頁或栏目頁给它一個入口,等它被抓過几轮後再撤下。
頁面被抓不到,先別急着怪蜘蛛;從首頁數一數要走几步才到它,答案通常就在那几步里。