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

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

6 56

6 ответов:

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

  • есть и и
  • нет , нет ,

тогда это действительно так 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="date author rating".

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

Я использую мета-теги в теле моего блога, чтобы указать свойства" datePublished "и" dateUpdated". Гуглы Богатый Инструмент Тестирования Фрагментов говорит мне, что это правильно и w3c проверяет код.

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

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

<meta itemprop="">

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

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

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

Я делаю это так:

<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"> 

при первой работе с schema.org ' s микроданные, я добавил мета-теги в теге head моей веб-страницы, но когда я запустил эту страницу против богатый инструмент тестирования фрагментов Google, данные не были извлечены. Затем я переместил мета-теги в тело страницы, и данные были показаны как извлеченные.