Крошка с несвязанным уровнем - PullRequest
1 голос
/ 20 мая 2019

Я пытаюсь реализовать хлебную крошку 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?

Так выглядит мой JSON-LD для страницы "Статья A1":

{
  "@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.

Как я могу описать, что страницы 2-го уровня недоступны по URL-адресу с помощью JSON-LD?

1 Ответ

1 голос
/ 21 мая 2019

Задача хлебных крошек - видеть текущую страницу в иерархии и переходить к ее родительским страницам. Записи без страниц там не должны появляться, потому что к ним нельзя перейти.

Тип BreadcrumbList на Schema.org предназначен только для веб-страниц (но, конечно, такая безстраничная тема не является веб-страницей):

BreadcrumbList - это ItemList, состоящий из цепочки связанных веб-страниц , обычно описываемых с использованием хотя бы их URL-адреса и имени, и обычно заканчивающихся текущей страницей.

Это также то, что Google требует для их Богатых результатов Breadcrumbs (на случай, если вы хотите получить эту функцию):

Пользователь может перемещаться по вплоть до в иерархии сайтов, по одному уровню за раз , начиная с последней крошки в следе крошки.

Таким образом, вы можете либо опустить темы без страниц в 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>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...