面包屑导航怎么标:四个属性,和那个该省掉的

面包屑导航只要一段 JSON-LD:一个 BreadcrumbList、至少两个 ListItem,每项带 position、name、item —— 加上官方明说最后一级可以省掉的那一个。

排名与引用6 分钟读完1365 次阅读
面包屑导航怎么标:四个属性,和那个该省掉的

面包屑导航要被 Google 读懂,只需要一段 JSON-LD:一个 BreadcrumbList,里面至少两个 ListItem,每个 ListItempositionnameitem 三个属性。最后一级那个 item 可以不写——而且不写更稳。

开始之前

这件事只在你的站真有层级时才划算:有分类、有栏目、读者能一级一级往回走。所有文章都平铺在首页下一层的博客,本来就没有路径可描述,标出来也只是给 Google 一条两级的路径,说的还是网址已经说过的话。层级本身怎么定,是站点结构的问题,写在 网站结构其实只由内链决定 里。

还有一件事要先确认:用现成主题或 SEO 插件的站,页面上那条可见面包屑和插件输出的那段标记,往往由两套代码各自生成。做出海独立站的人多半是这种情况——Shopify 的主题、WordPress 的插件、Webflow 的组件,谁也不知道对方写了什么。开工前先看一眼页面源码里有没有已经存在的 BreadcrumbList,免得改完之后站上同时挂着两份、还互相矛盾。

面包屑导航能换来什么,换不来什么

它改的是结果长什么样,不是能不能出现在结果里。Google《Breadcrumb (BreadcrumbList) structured data》(2026-08-28 抓取)把适用范围写得很死:「This feature is available on desktop in all regions and languages where Google Search is available.」——桌面端,官方没有提移动端的对应形态。

同一页还有两条约束。第一,标出来的必须是真实的路径,不是导航菜单:面包屑的定义是读者能「navigate all the way up in the site hierarchy, one level at a time」,一级一级往上走。第二,老的 data-vocabulary.org 词汇表已经作废,官方原话是「no longer eligible for Google rich result features」——一套 2018 年的主题没动过的话,很可能还在输出 Google 早就不读的东西。

面包屑描述的是回去的路。这一页没有上级,就没有面包屑。

四个属性,一个例外

Google 支持 JSON-LD、微数据、RDFa 三种写法,并给了偏好:「In general, Google recommends using JSON-LD for structured data if your site's setup allows it, as it's the easiest solution for website owners to implement and maintain at scale」。除非你的建站平台不给改 head,否则就用 JSON-LD。

属性写在哪要放什么
itemListElementBreadcrumbListListItem 数组,至少两项
positionListItem整数,1 是起点
nameListItem给用户看的那个名字
itemListItem这一级的网址

例外在最后一级。官方原话:「If the breadcrumb is the last item in the breadcrumb trail, item is not required. If item isn't included for the last item, Google uses the URL of the containing page.」不写它是更稳的习惯,因为这样就少了一个「手写的网址和它所在的页面对不上」的出错点——改过 slug 的站尤其吃这个亏。

「至少两项」这条门槛,与其当成技术限制,不如当成结构判据。一条只有两级的路径——首页,然后这一页——描述的是一个只有一层的站,渲染出来说的还是域名已经说过的话。如果你多数模板只能生成两级,该动的是站点结构,不是这段标记。

动手:五步

第一个模板留二十分钟,之后每种页型大约两分钟。

  1. 先按读者会怎么走,把路径写出来,终点是当前这一页。三级最常见:栏目、子栏目、本页。
  2. 把同一条路径在页面靠上的位置显示成可见文字。结构化数据是用来描述页面上有什么的,只活在脚本里的路径是一句没有实物的声明。
  3. 把 JSON-LD 输出到 <head> 里,一级一个 ListItemposition 从 1 数起,最后一级不写 item
  4. 用富媒体搜索结果测试工具验证,再挑几个页面上线,用网址检查工具看 Google 怎么读——这是官方给的顺序。同时确认这一页没有被 robots.txt、noindex 或登录墙挡住。
  5. 按模板铺开,不要按页面铺。分类页、文章页、商品页各要一套生成逻辑;把同一条路径硬编码复制到全站,是产出「指向错误上级」的最快方式。

交付物:两段可直接粘的 JSON-LD

三级路径,最后一级的 item 有意省掉:

<script type="application/ld+json">
{
  "@context": "https://schema.org",
  "@type": "BreadcrumbList",
  "itemListElement": [
    {"@type": "ListItem", "position": 1, "name": "手册",
     "item": "https://example.com/handbook"},
    {"@type": "ListItem", "position": 2, "name": "抓取与收录",
     "item": "https://example.com/handbook/crawling"},
    {"@type": "ListItem", "position": 3, "name": "面包屑导航"}
  ]
}
</script>

一个页面确实挂在两处时——比如一件商品既在品牌树下、又在品类树下——官方允许一段脚本里放两条路径:

<script type="application/ld+json">
[
  {"@context": "https://schema.org", "@type": "BreadcrumbList",
   "itemListElement": [
     {"@type": "ListItem", "position": 1, "name": "Books",
      "item": "https://example.com/books"},
     {"@type": "ListItem", "position": 2, "name": "Science Fiction",
      "item": "https://example.com/books/sciencefiction"},
     {"@type": "ListItem", "position": 3, "name": "Award Winners"}]},
  {"@context": "https://schema.org", "@type": "BreadcrumbList",
   "itemListElement": [
     {"@type": "ListItem", "position": 1, "name": "Literature",
      "item": "https://example.com/literature"},
     {"@type": "ListItem", "position": 2, "name": "Award Winners"}]}
]
</script>

别为了充数造第二条路径。两条路径是给真的能从两边走到的页面用的,其余情况写上去就是在描述一个自己站上并不存在的结构。

上线前查过的条件
长度至少两个 ListItem
序号1、2、3,不跳号不从 0 起
可见一致页面上有同名的那条路径
末级不写 item,或写规范网址
词汇表schema.org,不是 data-vocabulary
可访问没被屏蔽也没 noindex

三种常见的做坏

这三种在测试工具里都不报错,所以能在站上活很久。

  1. 把导航菜单当成路径标了上去。顶部导航列的是同级栏目,面包屑列的是祖先级;标了菜单,得到的是一条跟本页没什么关系的路径。
  2. 最后一级写死的网址和页面对不上,多半发生在改过 slug 之后。最后一级干脆不写 item,这个出错点就整个消失了,Google 会用当前页面的网址。
  3. 可见面包屑和标记逐渐分家:一个在模板里,一个在插件里。两边从同一份数据生成,否则迟早会给同一个页面发出两套层级。

这一篇管不到的地方

这一篇有三处不适用。面包屑标记造不出你本来没有的层级;它也不会让一个页面排得更前——官方把它归在搜索结果外观里,不是排名信号;而且有资格出富媒体结果不等于一定会展示,官方也没有承诺过。如果你的问题是页面在结果里根本不出现,那就不是这一层该动的地方,先看爬虫到不到得了、内容会不会被引用,入口在 QueryWin 怎么运转。还想知道现在哪几种结构化数据类型仍然有效,看 结构化数据还剩哪几种有用

最后一件建生成器之前值得知道的事:路径是按模板生成的,而路径里那些名字,就是你在别处做锚文本用的同一批词。让它们保持一字不差,构建时不多花任何成本,却能免掉一个常见的毛病——同一个栏目在站内被叫成三个名字,读者和答案引擎都得自己去猜它们是不是一回事。

常见问题

面包屑导航能提升排名吗?

官方把它写在搜索结果外观里,不是排名信号。值得做的真实理由是:结果里显示的会是一条读得懂的路径而不是一串网址,同一套层级对其他解析你页面的程序也一样清楚。

页面上一定要显示面包屑吗?

结构化数据的定位就是描述页面上的内容,所以稳妥答案是要:先显示,再标记。只写标记、页面上永远没有那条路径,就是在描述一个读者看不见的结构。

路径做几级合适?

至少两项,这是 BreadcrumbList 的文档下限。再往上应该跟你站点的真实深度走,而不是凑一个数字。

一个页面能有两条路径吗?

可以。官方示例就是一个数组里放两个 BreadcrumbList,给的是能从两条路走到的同一个页面。只在两条路都真实存在时才用。

老主题里的 data-vocabulary 怎么办?

按官方的说法,它已经没有资格出富媒体结果了。老主题还在输出的话,换成 schema.org 的 JSON-LD 就是全部修法。

本文属于 QueryWin 实操手册 · 第 2 阶

面包屑导航怎么标:四个属性,和那个该省掉的