面包屑導航通常出現在頁面标题上方,用戶掃一眼就知道自己在站点的什么位置。對搜尋引擎来说,它還有一层作用:把頁面的层級關系用可点击的連結表達出来。爬虫抓到一個地址之後,既能顺着面包屑走到上級栏目,也能從栏目頁走到同层頁面。如果面包屑缺失、寫错,或者只是一段纯文本,爬虫對站点结构的理解就只能靠 URL 路径去猜,而 URL 命名一旦不規范,猜出来的结果往往和真實结构對不上。
面包屑實际承担的四件事
- 表達层級:說明目前頁面属于哪個栏目、哪個上級分類。
- 提供内鏈:從詳情頁回到列表頁、频道頁,多一條可爬的路径。
- 辅助区分:帮助用戶和爬虫分辨同名但不同栏目的頁面。
- 稳定入口:站内推荐位、搜尋框會變,层級連結相對稳定。
几種常见的错誤寫法
只寫「首頁 > 目前頁」
這種寫法等于没有层級,只是重复了一遍頁面标题。對用戶帮助有限,對爬虫也没有提供新的路径。如果站点确實只有一級分類,至少把所属栏目补上,让頁面有個明确归属。
层級與 URL 目錄不一致
面包屑顯示「首頁 > 教程 > 入门」,URL 却是 /a/123.html,两種信号互相矛盾。短期看不出問题,等站点改版、目錄調整时,很容易出現同一批内容被归到两個不同层級的情况。建议让 URL 路径、面包屑层級、栏目頁归属三者尽量對齐,改動时一起改。
把篩選參數寫進面包屑
用戶点了颜色或價格篩選,面包屑也跟着變成「首頁 > 女装 > 红色」。這類组合狀態一旦被固定成层級,等于给爬虫提供了一個可以無限拼地址的入口。更稳妥的做法是:篩選狀態只保留在列表頁參數里,不進入面包屑;面包屑始终指向不带篩選條件的主分類頁。
連結指向空栏目或失效頁
面包屑里的每一級都應该是可訪問的地址。如果上級栏目頁被下线、改名,或者只是一個没有任何内容的占位頁,点击後落到 404 或空白列表,這條路径對用戶和爬虫都是断的。下线栏目时,记得同步检查指向它的面包屑連結。
一份可执行的自查清單
- 随机抽取不同层級的 10 個頁面,逐一点击面包屑中的每一級,確認都能正常打開。
- 核對面包屑层級與 URL 目錄是否對得上,尤其是深度超過三級的頁面。
- 检查面包屑是否為真實可点击的連結,而不是纯文本或 JavaScript 跳轉。
- 確認篩選、排序、分頁狀態不會出現在面包屑里。
- 检查首頁之後的第一個层級是否指向真實栏目頁,而不是站内搜尋頁。
- 查看移動端面包屑是否被折叠隐藏,隐藏後是否還有別的层級线索可循。
- 核對面包屑中的名稱與栏目頁标题是否一致,避免同一栏目出現多種叫法。
结构化資料要和頁面顯示一致
不少站点會輸出 BreadcrumbList 结构化資料。需要注意的是,頁面如果没有可见的面包屑,却只輸出 JSON-LD,属于展示與标注不一致,容易在解析时产生歧义。反過来,如果頁面可见面包屑有三层,结构化資料里只寫两层,也會造成信息對不上。建议以頁面實际顯示為准,两邊保持同一套层級和名稱。
和 URL、内鏈、Sitemap 配合来看
面包屑只是层級线索的一部分。URL 路径表達目錄归属,内鏈决定權重和抓取路径的走向,Sitemap 則是另一份獨立的地址清單。三者如果各说各话,排查問题时就會互相干扰。比較省事的做法是:栏目調整时,先把 URL 目錄、面包屑、Sitemap 中的對應路径列成一張表,一起改、一起驗證。
面包屑改對不會立刻带来什么變化,它只是把站点结构這條线索理顺。真正起作用的,是長期一致的层級划分、可正常訪問的栏目頁,以及持續更新的内容。
建议把面包屑检查放進站点改版和栏目調整的固定流程里,每次上线前顺手点一遍。它不解决所有抓取問题,但能避免很多「结构本来清楚,却因為一處連結没對上而變得模糊」的情况。發現問题时,先记錄現象和涉及的地址,再判断是改連結、改层級還是改 URL,不要一次動太多。