Разметка микроданных с помощью mainEntityOfPage для Google Article Rich Snippet
Пример микроданных статьи Google Rich Snippet содержит это meta
элемент с Schema.org's mainEntityOfPage
имущество:
<meta itemscope itemprop="mainEntityOfPage" itemType="https://schema.org/WebPage" itemid="https://google.com/article"/>
При проверке с помощью Nu Html Checker я получаю эту ошибку:
Элемент
meta
отсутствует обязательный атрибутcontent
,
Добавление пустого content
Атрибут, кажется, решить эту ошибку. Правильно ли это делать?
1 ответ
Проверка Nu Html верна, пример Google недействителен. content
атрибут обязателен, если meta
элемент имеет itemprop
приписывать.
Из WHATWG HTML, а также HTML 5.1 (W3C Working Draft): "Если […] itemprop
указывается, то content
атрибут также должен быть указан."
Из старых микроданных (примечание W3C): "Если meta
элемент имеет itemprop
атрибут, […] content
атрибут должен присутствовать."
Добавление пустого content
Атрибут делает его действительным, но есть и другие варианты.
Schema.org-х mainEntityOfPage
свойство ожидает в качестве значения либо URL, либо CreativeWork
вещь.
В собственной документации Google по рекомендуемым / требуемым свойствам для их статьи Rich Snippet говорится, что они ожидают значение URL, но их примеры показывают, как создать значение элемента.
Все следующие решения подойдут для инструмента тестирования структурированных данных Google. (Некоторые примеры используют itemid
атрибут, который, строго говоря, еще не разрешен / не определен для словаря Schema.org.)
Если вы хотите указать значение URL:
<link itemprop="mainEntityOfPage" href="https://example.com/article" />
Непосредственная.
Это следует за собственной рекомендацией Google, требует минимальной разметки и работает в head
так же хорошо как body
,
Если у вас есть видимая ссылка, вы также можете использовать a
элемент.
Если вы хотите указать стоимость товара:
Как тип вы можете использовать CreativeWork
или любой из его подтипов, как WebPage
,
div
элемент + url
имущество
<div itemprop="mainEntityOfPage" itemscope itemtype="http://schema.org/WebPage">
<link itemprop="url" href="https://example.com/article" />
</div>
Это создает WebPage
предмет с url
имущество. Может использоваться только в body
,
Если у вас есть видимая ссылка, вы также можете использовать a
элемент.
meta
элемент с пустым content
атрибут и itemid
<meta itemprop="mainEntityOfPage" content="" itemscope itemtype="http://schema.org/WebPage" itemid="https://example.com/article" />
Это основано на примере Google, но с пустым content
атрибут, чтобы сделать его действительным.
Обратите внимание, что анализаторы микроданных должны игнорировать content
атрибут в этом случае, потому что itemscope
предоставляется атрибут ( Микроданные W3C Примечание / WHATWG HTML Микроданные: "первый соответствующий случай"). Итак itemprop
значением будет элемент, а не строка.
Это создает пустой элемент с идентификатором. Работает в head
так же хорошо как body
, Это не позволяет добавлять свойства непосредственно к этому WebPage
элемент (вам нужно создать еще один элемент с тем же itemid
значение).
div
элемент с itemid
<div itemprop="mainEntityOfPage" itemscope itemtype="http://schema.org/WebPage" itemid="https://example.com/article">
</div>
Это создает пустой элемент с идентификатором. Вместо meta
Например, это работает только в body
, но, следовательно, позволяет добавлять дополнительные свойства непосредственно к этому WebPage
вещь.
Если у вас уже есть WebPage
вещь:
Если вы уже предоставили WebPage
элемент на вашей странице, например,
<body itemscope itemtype="http://schema.org/WebPage">
<article itemscope itemtype="http://schema.org/Article">
</article>
</body>
Вы можете использовать его через микроданные itemref
атрибут:
<body itemprop="mainEntityOfPage" itemscope itemtype="http://schema.org/WebPage" id="this-page">
<article itemscope itemtype="http://schema.org/Article" itemref="this-page">
</article>
</body>
в сочетании с одним из методов, описанных выше, например, с itemid
или url
имущество.
Обратите внимание, что вы обычно используете обратное свойство mainEntity
в таком случае, но Google не документирует, что они поддерживают его для статьи Rich Snippet, в настоящее время.