Новый обязательный mainEntityOfPage для структурированных данных статьи

12

Я взглянул на структурированные данные статьи, предложенные Google, и увидел, что есть новые обязательные и рекомендуемые поля, которых на прошлой неделе не было. Вот ссылка:

https://developers.google.com/structured-data/rich-snippets/articles

Первое свойство в списке:

  • mainEntityOfPage. @ id (рекомендуется)

Я не понимаю, какой должна быть стоимость имущества? Что это за собственность? Это ссылка на:

..или ссылку на текущий пост в блоге, например:

Они имеют это в своем примере кода:

<meta itemscope itemprop="mainEntityOfPage"  itemType="https://schema.org/WebPage" itemid="https://google.com/article" />

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

<div itemscope itemtype="http://schema.org/BlogPosting">
   <h1 itemprop="headline">
      <a href="http:///www.example.com/blog/1001/my-blog-article" itemprop="url">My Blog Article</a>
   </h1>
   <p>Written by
      <span itemprop="author" itemscope itemtype="http://schema.org/Person">
         <span itemprop="name">Mase Kind</span>
      </span> on
      <time itemprop="datePublished" datetime="2015-11-16T15:30:00+02:00">November 16, 2015</time>
      <meta itemprop="dateModified" content="2015-12-10T12:29:00+02:00" />
      <div itemprop="publisher" itemscope itemtype="http://schema.org/Organization">
         <div itemprop="logo" itemscope itemtype="http://schema.org/ImageObject"></div>
         <meta itemprop="name" content="My Company Name" />
      </div>
   </p>
   <div itemprop="articleBody">
      <p>first article body</p>
   </div>
</div>

У меня также есть это в моем документе:

<body itemscope itemtype="http://schema.org/WebPage">
...
</body>

Будет ли это каким-либо образом противоречить образцу кода, предоставленному Google?

Брендан Фогт
источник
Просто видел, как то же самое случилось с моим сайтом этим утром и попал в эту ветку.
dasickle

Ответы:

14

mainEntityOfPageСвойство используется , чтобы дать URL страницы , на которой предмет является основным объектом. Это может стать более понятным, если вы посмотрите на обратное свойство mainEntity: это дает основную сущность для страницы ( см. Пример ).

Например, для веб-страницы, содержащей один пост в блоге, вы можете предоставить один из следующих:

  • BlogPostingmainEntityOfPageWebPage
  • WebPagemainEntityBlogPosting

Эти свойства полезны для передачи основного содержимого страницы (поскольку страницы могут содержать несколько элементов, например, ItemListсо связанными WebPageэлементами, Personописанием автора, WebSiteпредоставлением некоторых метаданных и т. Д.).

(См. Мой ответ о переполнении стека для более подробного объяснения.)


Есть два способа использования mainEntityOfPage:

  • укажите URL страницы
  • вставлять / ссылаться на элемент страницы (обычно WebPage)

Второе часто не имеет особого смысла (вы бы предпочли использовать обратное свойство mainEntity), и, вероятно, по этой причине Google рекомендует / ожидает первое.

Для предоставления URL вы можете просто использовать linkэлемент:

<article itemscope itemtype="http://schema.org/BlogPosting">
  <link itemprop="mainEntityOfPage" href="http://example.com/article-1" />
</article>

Инструмент тестирования структурированных данных Google принимает это.

В примере Articles Rich Snippet Google использует metaэлемент itemidвместо:

<meta itemscope itemprop="mainEntityOfPage" itemType="https://schema.org/WebPage" itemid="https://google.com/article"/>

Это недопустимый HTML5 + микроданные: если metaэлемент имеет itempropатрибут, он также должен иметь contentатрибут .

ОООНР
источник
Что <meta itemscope itemprop="mainEntityOfPage" itemType="https://schema.org/WebPage" itemid="https://google.com/article" content='https://google.com/article' />
StarWars,
@StarWars: Да, это способ сделать этот metaэлемент действительным. Обратите внимание, что contentзначение будет игнорироваться, поэтому вы можете указать пустое значение.
ОООНР
хорошо, теперь я добавил content = "" в метатег.
StarWars
Почему гугл использует metaвместо linkсвоих примеров? оба они проверяются в инструменте тестирования структурированных данных. Хотя предварительный просмотр другой. Когда linkиспользуется, он имеет в mainEntityOfPage http://example.com/article-1то время как в случае metaэтого показывает @idи @typeатрибуты.
StarWars
@StarWars: Да, в этом и заключается различие: metaспособ создания нового элемента с типом и URI в качестве идентификатора, linkспособ просто ссылки на страницу. Я понятия не имею, почему Google использует документацию meta, тем более, что я думаю, что linkпуть проще.
ОООНР
2

Что это за собственность?

Это дополнительное к urlи sameAsсвойств, как описано в mainEntityфоновом режиме .

У него уникальное имя, так как оно может применяться ко всем типам предметов Thing. Если бы оно относилось только к Articlesнему, его можно было бы назвать mainTopic/ mainTopicOfArticleи было бы более ясным.

Я не понимаю, какой должна быть стоимость имущества?

Ожидается, что значением свойства будет элемент типа CreativeWorkили URLссылка, которая работает в соответствии с Schema.org. Это означает, что это также может быть Articleили BlogPostingкак вы упомянули. Однако, если вы создаете страницы AMP, значение должно быть URL.

Будет ли это каким-либо образом противоречить образцу кода, предоставленному Google?

Несмотря на то, что инструмент тестирования структурированных данных Google говорит, что их документация больше не рекомендует использовать mainEntityOfPageдля страниц не-AMP, так что вы можете их опустить.

Джош Хабдас
источник