Как реализовать "mainEntityOfPage" для этого конкретного сайта?

Пожалуйста, посмотрите здесь: https://developers.google.com/structured-data/testing-tool?url=https%253A%252F%252Fglamourina.net%252Fen%252F

Как я могу правильно добавить mainEntityOfPage на этот сайт?

В примере документации Google я вижу что-то вроде этого:

<div itemscope itemtype="http://schema.org/NewsArticle">

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

Но это единственный авторский блог. И это показывает blogPosts.

<article itemscope itemtype="https://schema.org/BlogPosting" class="singlearticles">

Было бы хорошо, если бы я изменил это так:

<article itemprop="blogPost" itemscope itemtype="https://schema.org/BlogPosting">
<meta itemscope itemprop="mainEntityOfPage"  itemType="https://schema.org/WebPage" itemid="https://linktoarticle"/>

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

1 ответ

Решение

О примере микроданных Google

Пример Google Microdata недействителен. Если meta элемент имеет itemprop атрибут, content атрибут обязателен ( подробности).

Я описал разные способы, как указать mainEntityOfPage в микроданных, самым непосредственным из которых является link элемент, который создает значение URL (вместо другого элемента микроданных):

<link itemprop="mainEntityOfPage" href="http://example.com/article-1" />

mainEntity

Проще понять использование mainEntityOfPage если мы сначала посмотрим его обратное свойство, mainEntity,

Для WebPage который содержит BlogPosting мы могли бы иметь:

<body itemscope itemtype="http://schema.org/WebPage">
  <article itemprop="mainEntity" itemscope itemtype="http://schema.org/BlogPosting">
  </article>
</body>

Это значит: есть WebPage и BlogPosting и BlogPosting это "первичная сущность", описанная в этом WebPage, Обозначать это особенно имеет смысл, если в нем задействовано больше элементов, например, Person описывая автора, еще пять BlogPosting предметы для связанных постов, WebSite пункт, дающий метаданные и т. д. Благодаря mainEntity / mainEntityOfPage потребители могут узнать, что является основным / основным элементом на этой странице (т. е. что обозначает эта страница).

mainEntityOfPage

Следующий пример с mainEntityOfPage приведет к эквивалентным структурированным данным, как в примере с mainEntity сверху:

<article itemscope itemtype="http://schema.org/BlogPosting">
  <div itemprop="mainEntityOfPage" itemscope itemtype="http://schema.org/WebPage">
  </div>
</article>

Как видите, элемент для BlogPosting элемент содержит элемент для WebPage вещь. Это, конечно, довольно необычная разметка.

Но mainEntityOfPage собственность не только ожидает (CreativeWork) item как значение, в качестве альтернативы он ожидает URL. Таким образом, вместо предоставления WebPage элемент явно, вы можете предоставить URL страницы вместо:

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

(Это то, что ожидает Google, согласно их документации для статей Rich Snippet.)

Экскурс: URL страницы против поста

Многие сайты не различают URL-адрес веб-страницы и URL-адрес блога. Для этих сайтов может показаться глупым утверждать что-то вроде

http://example.com/article-1 (the blog post)
is the 'mainEntityOfPage' 
http://example.com/article-1 (the web page) 
http://example.com/article-1 (the web page) 
has 'mainEntity' 
http://example.com/article-1 (the blog post)

Но это может быть полезно в любом случае (например, для выбора, какой элемент является основным, потому что другие элементы не будут иметь этот оператор; или для пустого узла и т. Д.).

Однако некоторые сайты дифференцируются (особенно для связанных данных), поэтому они могут указывать что-то вроде

http://example.com/article-1#this (the blog post)
is the 'mainEntityOfPage' 
http://example.com/article-1 (the web page) 
http://example.com/article-1 (the web page) 
has 'mainEntity' 
http://example.com/article-1#this (the blog post)

Вот, http://example.com/article-1#this представляет запись в блоге, и http://example.com/article-1 представляет страницу с информацией об этой публикации (или содержанием самой публикации). Более понятным примером будет человек и страница об этом человеке; или здание и страница об этом здании. Смотрите мой ответ для примера, почему вы можете захотеть сделать это. (Но, как объяснялось выше, вам не нужно различать; вы можете использовать один и тот же URL для обоих.)

Другие вопросы по тегам