我在面包屑跟踪中使用结构化数据。我指的是此文档:
https://developers.google.com/structured- data/breadcrumbs
我已经建立了一个面包屑列表。我还会显示引用当前页面的最后一项,但这不是链接,而只是纯文本。这是我的HTML标记的样子:
<ol class="breadcrumb"> <li><a href="http://www.example.com/">Home</a></li> <li><a href="http://www.example.com/brands">Brands</a></li> <li class="active">My Brand</li> </ol>
我已选择使用JSON-LD标记面包屑痕迹。我不确定面包屑列表中的最后一个不是链接,因此如何确定该标记呢?我应该放弃吗?这是我目前拥有的:
JSON-LD
<script type="application/ld+json"> { "@context": "http://schema.org", "@type": "BreadcrumbList", "itemListElement": [{ "@type": "ListItem", "position": 1, "item": { "@id": "http://www.example.com/", "name": "Home" } }, { "@type": "ListItem", "position": 2, "item": { "@id": "http://www.example.com/brands", "name": "Brands" } }] } </script>
我是否需要像添加其他两个项目一样添加最后一个项目,还是需要保留它?它仅用于具有链接的项目吗?
当然,您只需为ListItem最后一项提供,而省略@id:
ListItem
@id
<script type="application/ld+json"> { "@context": "http://schema.org", "@type": "BreadcrumbList", "itemListElement": [{ "@type": "ListItem", "position": 1, "item": { "@id": "http://www.example.com/", "name": "Home" } }, { "@type": "ListItem", "position": 2, "item": { "@id": "http://www.example.com/brands", "name": "Brands" } }, { "@type": "ListItem", "position": 3, "item": { "name": "My Brand" } }] } </script>
这是有效的JSON-LD,根据Schema.org可以使用。
但是,无论如何,我都会添加上一个/当前项目的URL。如果是RDFa或Microdata,我会使用link元素作为最后一项的URL(因此该URL对人类访问者而言不可单击,但是漫游器具有更多数据),但是对于JSON- LD,此问题不相关首先,因为人类访客通常不会与之互动。
link
唯一可以想象到的缺点是,如果HTML中的内容与JSON- LD中的内容不匹配(即缺少最后一项的URL),那么消费者就会感到困惑。但是我认为这种风险非常低,因为众所周知,处理最后一个面包屑项目有不同的方法。
就文档而言,Schema.org只说BreadcrumbList“通常以当前页面结尾”。
BreadcrumbList
并以消费者为例,Google对面包屑功能也说了同样的话:
面包屑痕迹可以包括或忽略出现在其上的页面的面包屑。
但是他们没有说最后一个项目没有URL的情况。