面包屑导航通常出现在页面标题上方,用户扫一眼就知道自己在站点的什么位置。对搜索引擎来说,它还有一层作用:把页面的层级关系用可点击的链接表达出来。爬虫抓到一个地址之后,既能顺着面包屑走到上级栏目,也能从栏目页走到同层页面。如果面包屑缺失、写错,或者只是一段纯文本,爬虫对站点结构的理解就只能靠 URL 路径去猜,而 URL 命名一旦不规范,猜出来的结果往往和真实结构对不上。
面包屑实际承担的四件事
- 表达层级:说明当前页面属于哪个栏目、哪个上级分类。
- 提供内链:从详情页回到列表页、频道页,多一条可爬的路径。
- 辅助区分:帮助用户和爬虫分辨同名但不同栏目的页面。
- 稳定入口:站内推荐位、搜索框会变,层级链接相对稳定。
几种常见的错误写法
只写「首页 > 当前页」
这种写法等于没有层级,只是重复了一遍页面标题。对用户帮助有限,对爬虫也没有提供新的路径。如果站点确实只有一级分类,至少把所属栏目补上,让页面有个明确归属。
层级与 URL 目录不一致
面包屑显示「首页 > 教程 > 入门」,URL 却是 /a/123.html,两种信号互相矛盾。短期看不出问题,等站点改版、目录调整时,很容易出现同一批内容被归到两个不同层级的情况。建议让 URL 路径、面包屑层级、栏目页归属三者尽量对齐,改动时一起改。
把筛选参数写进面包屑
用户点了颜色或价格筛选,面包屑也跟着变成「首页 > 女装 > 红色」。这类组合状态一旦被固定成层级,等于给爬虫提供了一个可以无限拼地址的入口。更稳妥的做法是:筛选状态只保留在列表页参数里,不进入面包屑;面包屑始终指向不带筛选条件的主分类页。
链接指向空栏目或失效页
面包屑里的每一级都应该是可访问的地址。如果上级栏目页被下线、改名,或者只是一个没有任何内容的占位页,点击后落到 404 或空白列表,这条路径对用户和爬虫都是断的。下线栏目时,记得同步检查指向它的面包屑链接。
一份可执行的自查清单
- 随机抽取不同层级的 10 个页面,逐一点击面包屑中的每一级,确认都能正常打开。
- 核对面包屑层级与 URL 目录是否对得上,尤其是深度超过三级的页面。
- 检查面包屑是否为真实可点击的链接,而不是纯文本或 JavaScript 跳转。
- 确认筛选、排序、分页状态不会出现在面包屑里。
- 检查首页之后的第一个层级是否指向真实栏目页,而不是站内搜索页。
- 查看移动端面包屑是否被折叠隐藏,隐藏后是否还有别的层级线索可循。
- 核对面包屑中的名称与栏目页标题是否一致,避免同一栏目出现多种叫法。
结构化数据要和页面显示一致
不少站点会输出 BreadcrumbList 结构化数据。需要注意的是,页面如果没有可见的面包屑,却只输出 JSON-LD,属于展示与标注不一致,容易在解析时产生歧义。反过来,如果页面可见面包屑有三层,结构化数据里只写两层,也会造成信息对不上。建议以页面实际显示为准,两边保持同一套层级和名称。
和 URL、内链、Sitemap 配合来看
面包屑只是层级线索的一部分。URL 路径表达目录归属,内链决定权重和抓取路径的走向,Sitemap 则是另一份独立的地址清单。三者如果各说各话,排查问题时就会互相干扰。比较省事的做法是:栏目调整时,先把 URL 目录、面包屑、Sitemap 中的对应路径列成一张表,一起改、一起验证。
面包屑改对不会立刻带来什么变化,它只是把站点结构这条线索理顺。真正起作用的,是长期一致的层级划分、可正常访问的栏目页,以及持续更新的内容。
建议把面包屑检查放进站点改版和栏目调整的固定流程里,每次上线前顺手点一遍。它不解决所有抓取问题,但能避免很多「结构本来清楚,却因为一处链接没对上而变得模糊」的情况。发现问题时,先记录现象和涉及的地址,再判断是改链接、改层级还是改 URL,不要一次动太多。