Как реализовать "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 для обоих.)