Вы помещаете метатеги микроданных схемы в тело 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">

Это вызывает путаницу, и я хотел бы знать, как это сделать правильно.


person Timo Huovinen    schedule 23.04.2012    source источник


Ответы (6)


Если элемент meta

  • имеет атрибут itemprop и атрибут content, и
  • не имеет атрибута name, атрибута http-equiv и атрибута charset,

тогда допустимо наличие этого meta в body. (Если значение является URL-адресом, вы должны вместо этого использовать link.)

Почему? Поскольку спецификация микроданных изменяет 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".

person unor    schedule 14.03.2014
comment
Вау, эта itemref вещь потрясающая. Обязательно воспользуюсь этим! - person jedd.ahyoung; 17.06.2014
comment
@unor: можете ли вы взглянуть на: заголовок stackoverflow.com/questions/36083028/? - person juFo; 18.03.2016

Помните также, что можно полностью избежать разметки 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/

person Gruber    schedule 13.05.2015

То, что я могу прочитать на whatwg.org, правильно использовать в теле: http://www.whatwg.org/specs/web-apps/current-work/multipage/semantics.html#the-meta-element

Я использую метатеги в теле моего блога, чтобы указать свойства datePublished и dateUpdated. Инструмент тестирования расширенных фрагментов кода Google сообщает мне, что он правильный, а w3c проверяет код.

person superhero    schedule 28.04.2012
comment
Опыт Эрика отражает мой собственный. Мне пришлось переместить их в основной текст, чтобы инструмент тестирования расширенного сниппета мог их распознать. Наши результаты поиска в Google показывают, что они извлекаются правильно, поскольку мы видим эти атрибуты в результатах. - person TMC; 26.06.2012
comment
dateUpdated больше не существует на этой странице http://schema.org/docs/full.html - person Timo Huovinen; 11.06.2013

Вы можете использовать:

<meta itemprop="">

в теле страницы, чтобы сделать семантическую разметку schema.org, которая читается компьютером (роботами, например, для SEO), даже если вы не хотите отображать фактический текст (например, название продукта) на странице.

см. http://schema.org/docs/gs.html#advanced_missing

Иногда на веб-странице есть информация, которую было бы полезно разметить, но эта информация не может быть размечена из-за того, как она отображается на странице. Информация может быть передана в изображении (например, изображении, используемом для представления оценки 4 из 5) или Flash-объекте (например, длительности видеоклипа), или это может подразумеваться, но не указываться явно. на странице (например, валюта цены).

person Rowe Morehouse    schedule 25.08.2012
comment
не забудьте также использовать контент в метатеге! ‹Meta itemprop = content =› - person Mehdi Maghrouni; 18.02.2014

Я так делаю:

<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"> 
person ladar    schedule 23.04.2012
comment
согласно Schema.org, когда вы используете itemprop в метатеге, вы должны опустить name & ... и использовать только itemprop & content :) - person Mehdi Maghrouni; 18.02.2014
comment
недопустимо иметь атрибуты itemprop и a name на meta. Это либо, либо. (И это происходит непосредственно из микроданных, а не (только) из словаря Schema.org.) - person unor; 15.03.2014

При первой работе с микроданными schema.org я добавил метатеги в тег заголовка своей веб-страницы, но когда я запустил эту страницу против Инструмент тестирования Google Rich Snippets, данные не были извлечены. Затем я переместил метатеги в тело страницы, и данные были показаны как извлеченные.

person HBCondo    schedule 24.04.2012