我尝试为具有以下结构的网站实现JSON-LD面包屑:
Home
Topic A (No content)
Article A1
Article A2
Topic B (No content)
Article B1
Article B2
Topic C (No content)
Article C1
Article C2
我的问题是,级别2(主题A / B / C)上的所有页面都是空白页面,主导航无法访问这些页面。人们不应导航到“主题A”等。
如何在JSON-LD面包屑中表达这种行为?
这是页面“ Article A1”的JSON-LD外观:
{
"@context": "https://schema.org",
"@type": "BreadcrumbList",
"itemListElement": [{
"@type": "ListItem",
"position": 1,
"name": "Home",
"item": "https://example.com/"
},{
"@type": "ListItem",
"position": 2,
"name": "Topic A",
"item": ""
},{
"@type": "ListItem",
"position": 3,
"name": "Article A1",
"item": "https://example.com/topic-a/article-a1"
}]
}
当我尝试使用https://search.google.com/structured-data/testing-tool验证上述代码时,总是会抱怨:
itemListElement
@type ListItem
position 2
name Topic A
item Field item requires a value.
指定URL以外的任何内容都会导致:
字段项的值必须是有效的URL。
如何描述使用JSON-LD的URL无法访问第二级页面?
答案 0 :(得分:1)
面包屑的目的是查看层次结构中的当前页面,并导航到其父页面。无页面条目不应在此处显示,因为它们无法导航到。
Schema.org的BreadcrumbList
类型仅用于网页(但这种无页面主题当然不是网页):
面包屑列表是一个由一系列链接的网页组成的ItemList,通常至少使用其URL和名称进行描述,并且通常以当前页面结尾。
这也是Google为其Breadcrumbs rich result所需要的(如果您想获得此功能):
通过从面包屑路径中的最后一个面包屑开始,用户可以在网站层次结构中一直导航,一次一次。
因此,您可以省略BreadcrumbList
中的无页面主题,或将其设为实际页面。
如果您不希望它们作为页面存在,那么您仍然可以传达主题(请参见下面的about
示例),但是我不希望这些数据被那些对您的面包屑感兴趣:
{
"@context": "http://schema.org",
"@type": "BreadcrumbList",
"itemListElement":
[
{
"@type": "ListItem",
"position": 1,
"item":
{
"@id": "https://example.com/",
"@type": "WebPage",
"name": "Home"
}
},
{
"@type": "ListItem",
"position": 2,
"item":
{
"@id": "https://example.com/article-a1",
"@type": "WebPage",
"name": "Article A1",
"about": {
"@type": "Thing",
"name": "Topic A"
}
}
}
]
}
HTML + RDFa:
<ol typeof="schema:BreadcrumbList">
<li property="schema:itemListElement" typeof="schema:ListItem">
<a property="schema:item" typeof="schema:WebPage" href="https://example.com/">
<span property="schema:name">Home</span>
</a>
<meta property="schema:position" content="1" />
</li>
<li property="schema:itemListElement" typeof="schema:ListItem">
<a property="schema:item" typeof="schema:WebPage" href="https://example.com/article-a1">
<span property="schema:name">Article A1</span>
<span property="schema:about" typeof="schema:Thing">
<meta property="schema:name" content="Topic A" />
</span>
</a>
<meta property="schema:position" content="2" />
</li>
</ol>