具有非链接级别的面包屑

时间:2019-05-20 08:55:08

标签: schema.org breadcrumbs json-ld

我尝试为具有以下结构的网站实现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无法访问第二级页面?

1 个答案:

答案 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>