Вы помещаете метатеги Schema Microdata в тело html?
Я долго искал в Интернете и stackoverflow для ответа на этот вопрос, и я нашел ссылки, которые говорят, что вы не должны помещать метатеги в тело:
в то время как сайт schema.org четко показывает, что метатеги вставляются непосредственно в тело http://schema.org/AggregateRating
Просто посмотрите пример, который размещен там
Customer reviews:
<div itemprop="reviews" itemscope itemtype="http://schema.org/Review">
<span itemprop="name">Not a happy camper</span> -
by <span itemprop="author">Ellie</span>,
<meta itemprop="datePublished" content="2011-04-01">April 1, 2011
<div itemprop="reviewRating" itemscope itemtype="http://schema.org/Rating">
<meta itemprop="worstRating" content = "1">
<span itemprop="ratingValue">1</span>/
<span itemprop="bestRating">5</span>stars
</div>
<span itemprop="description">The lamp burned out and now I have to replace
it. </span>
</div>
<div itemprop="reviews" itemscope itemtype="http://schema.org/Review">
<span itemprop="name">Value purchase</span> -
by <span itemprop="author">Lucas</span>,
<meta itemprop="datePublished" content="2011-03-25">March 25, 2011
<div itemprop="reviewRating" itemscope itemtype="http://schema.org/Rating">
<meta itemprop="worstRating" content = "1"/>
<span itemprop="ratingValue">4</span>/
<span itemprop="bestRating">5</span>stars
</div>
<span itemprop="description">Great microwave for the price. It is small and
fits in my apartment.</span>
</div>
Если бы вы сохранили метатеги в <head>
, то как бы вы связали эти две даты с их отзывами?
<meta itemprop="datePublished" content="2011-04-01">
<meta itemprop="datePublished" content="2011-03-25">
Это вызывает путаницу, и я хотел бы знать, как это сделать правильно.
Ответы
Ответ 1
Если элемент meta
- имеет атрибут
itemprop
и атрибут content
, а
- не имеет атрибута
name
, атрибута http-equiv
и атрибута charset
,
то его значение имеет значение meta
в body
. (Если значением является URL-адрес, вы должны использовать link
вместо.)
Почему? Поскольку спецификация Microdata изменяет HTML5.
(Обратите внимание, что RDFa также изменяет HTML5, разрешая meta
в body
в некоторых случаях.)
Если бы вы сохранили теги meta
в <head>
, то как бы вы связали эти две даты с их отзывами?
Вы можете использовать атрибут itemref
:
<!DOCTYPE html>
<html>
<head>
<title>Using itemref for meta in the head</title>
<meta itemprop="datePublished" content="2011-03-25" id="date">
</head>
<body>
<div itemscope itemtype="http://schema.org/Review" itemref="date">
<span itemprop="name">…</span>
</div>
</body>
</html>
itemref
принимает список значений id
, разделенных пробелами, поэтому вы можете даже ссылаться на два или более элемента. Просто добавьте id
всех элементов (содержащих атрибуты itemprop
), которые следует добавить к элементу в свой атрибут itemref
, например: itemref="date author rating"
.
Ответ 2
Что я могу прочитать с whatwg.org правильно использовать в теле: http://www.whatwg.org/specs/web-apps/current-work/multipage/semantics.html#the-meta-element
Я использую метатеги в теле моего блога, чтобы указать свойства datePublished и dateUpdated. Googles Инструмент тестирования Rich Snippets сообщает мне это правильно, и w3c проверяет код.
Ответ 3
Помните также, что можно полностью избежать разметки HTML и использовать разметку JSON-LD , полностью содержащуюся в <head>
в любом месте в документе HTML (даже динамически вставляемом!), например:
<script type="application/ld+json">
{
"@context": "http://schema.org",
"@type": "Restaurant",
"name": "Fondue for Fun and Fantasy",
"description": "Fantastic and fun for all your cheesy occasions",
"openingHours": "Mo,Tu,We,Th,Fr,Sa,Su 11:30-23:00",
"telephone": "+155501003333",
"menu": "http://example.com/menu"
}
</script>
посмотрите примеры в schema.org, они обычно содержат примеры JSON, например, https://schema.org/Restaurant.
Вот еще одна хорошая статья об этом http://www.seoskeptic.com/json-ld-google-knowledge-graph-schema-org-seo/
Ответ 4
Вы можете использовать:
<meta itemprop="">
в теле страницы, чтобы сделать семантическую разметку schema.org, которая является машиносчитываемой (например, роботами для SEO), даже если вы не хотите отображать фактический текст (например, имя продукта) на страница.
см. http://schema.org/docs/gs.html#advanced_missing
Иногда веб-страница имеет информацию, которая была бы ценна для отметки но информация не может быть маркирована из-за того, как она появляется на странице. Информация может быть передана на изображении (для пример, изображение, используемое для представления рейтинга 4 из 5) или Flash объект (например, продолжительность видеоклипа), или это может быть подразумевается, но явно не указывается на странице (например, валюта цены).
Ответ 5
Когда я впервые работал с микроданными schema.org, я добавил метатеги в главном теге моей веб-страницы, но когда я запустил эту страницу против Google Rich Snippets Testing Tool, данные не были извлечены. Затем я переместил метатеги в тело страницы, и данные были показаны как извлеченные.
Ответ 6
Я делаю так:
<meta id="md_course" itemprop="course" name="course" content="..."/>
<meta id="md_lang" itemprop="language" content="eng"/>
<title id="md_title" itemprop="title" >Motivation and Course Overview</title>
</head>
<body itemscope itemtype=".../Presentation" itemref="md_course md_lang md_title md_field">