搜尋抓取

面包屑與返回連結:蜘蛛在站内迷路时的兜底路径

当頁面离首頁越来越遠,蜘蛛常靠面包屑和返回連結找到回去的路。這两種導航看起来简單,却會影响抓取深度和 URL 發現效率。本文讲清它們各自的作用、常见的寫法問题,以及怎么用日誌確認蜘蛛是否真的走到這條路径上。

搜尋抓取

面包屑與返回連結:蜘蛛在站内迷路时的兜底路径

蜘蛛進入一個站,通常從首頁開始,顺着連結一层层往外走。走到第三、第四层之後,頁面上的連結變少,能回到主干的路也變少。這时候面包屑和“返回上一級”這類導航,就成了蜘蛛繼續往前走、或者回到主干的重要线索。

深层頁面為什么容易變成终点

很多站点的詳情頁只放正文和几條相關推荐。相關推荐如果是随机拼出来的,連結指向的頁面未必稳定;頁面底部又没有回到分類或首頁的入口,蜘蛛從這個頁面出發能走的路就很有限。结果就是抓取深度停在某一层,後面的 URL 只能等下一次從別的地方被發現。

面包屑和返回連結解决的正是這個問题:它們把深层頁面重新接回上层结构,让抓取路径形成回路,而不是一條断掉的线。

面包屑该指向哪里

  • 每一級都應是真實存在、可訪問的列表頁或频道頁,不要拼出並不存在的路径。
  • 层級要和站点實际结构一致,URL 是三級目錄,面包屑也應是三級,別多也別少。
  • 最後一級通常是目前頁,可以不連結,也可以指向自身,但不要指向 404。
  • 文字用頁面真實标题或分類名,避免“更多”“点击這里”這類没有信息量的词。

面包屑最好是服務端輸出的静態 a 标簽。如果它靠 JS 渲染,蜘蛛能不能看到就要看渲染能力,很多时候直接看不到,等于没寫。

返回連結與“上一級”入口

列表頁的返回按钮、詳情頁顶部的“返回栏目”,作用類似。寫法上注意两点:一是連結指向列表的稳定地址,而不是带一堆參數的會话地址;二是列表頁本身要能被抓取,否則蜘蛛顺着返回連結走過去也是撞墙。

返回連結不等于必须做“上一頁”。把用戶從詳情頁带回分類,比让蜘蛛在分頁里原地打轉更有價值。

容易踩的几個坑

  1. 面包屑用脚本拼接,頁面源碼里根本没有 href。
  2. 层級寫错,比如商品属于“手机 > 安卓机”,面包屑里却直接從首頁跳過来。
  3. 返回連結指向带排序或會话參數的地址,同一個列表出現多個版本。
  4. 移動端和桌面端结构不一致,一個能点,一個点不動。
  5. 面包屑指向的列表頁已被刪除或屏蔽,蜘蛛走到一半路就断了。

怎么確認蜘蛛真的走了這條路

最直接的办法是看日誌:篩選蜘蛛的 User-Agent,观察分類頁、频道頁是否被反复訪問,還是只有詳情頁被零星抓到。如果詳情頁抓取量不低,對應的分類頁却几乎没有记錄,說明路径可能没通。也可以临时在面包屑連結上带一個标记參數,看蜘蛛是否訪問過带這個參數的地址。

Sitemap 能列出 URL,但它不表達层級關系;真正决定蜘蛛能不能沿着结构走的,還是頁面之間的連結。面包屑和返回連結属于基础工作,做好了不會立刻带来什么變化,但结构断裂的站点,往往就是從這里開始出問题。服務器返回是否稳定、返回連結指向的頁面是否可用,同样會影响這條路径能不能走通。