Многие страницы могут быть описаны с использованием только атрибутов itemscope, itemtype и itemprop (описанными в главе 2) вместе с типами и свойствами, определенными на schema.org (описанными в главе 3).

Однако иногда машине трудно понять свойство элемента без дополнительных значений. Давайте разберём ситуации, когда нам нужно предоставить машинно-понятные версии информации при разметке ваших страниц.

  • Даты, время и продолжительность: используйте тег time с datetime
  • Перечисления и канонические ссылки: используйте тег link с href
  • Отсутствующая / неявная информация: используйте метатег meta с content.

Даты, время и продолжительность

Роботам зачастую бывает трудно считать дату и время. Например дата "01.04.11". Означает ли это 11 января 2004 года, 4 января 2011 г. или 1 апреля 2011 года? Чтобы даты были однозначными, используйте тег <time> вместе с атрибутом datetime. Значением атрибута datetime является дата, указанная в формате ГГГГ-ММ-ДД. В приведенном ниже HTML-коде дата однозначно указывается как 1 апреля 2011 г.

<time datetime="2011-04-01">04/01/11</time>

Вы также можете указать время в пределах дня в формате чч:мм или чч:мм:сс. Время начинается с буквы T и может указываться вместе с датой, например:

<time datetime="2011-05-08T19:30">8 мая 19:30</time>

Давайте посмотрим на это на примере. Вот HTML-код, описывающий концерт, который состоится 8 мая 2011 г. Разметка типа Event включает название мероприятия, описание и дату мероприятия.

<div itemscope itemtype="https://schema.org/Event">
  <div itemprop="name">Прощальный тур</div>
  <span itemprop="description">Перед завершением карьеры нашумевшая группа посетит 30 городов.</span>
  Дата события в вашем городе:
  <time itemprop="startDate" datetime="2021-05-08T19:30">8 мая, 19:30</time>
</div>

Аналогичным образом можно указать длительность, используя тег <time> с атрибутом datetime. Перед длительностью следует поставить букву P (расшифровывается как "period"). Вот как можно указать время приготовления по рецепту 1,5 часа:

<time itemprop="cookTime" datetime="PT1H30M">1 1/2 часа</time>

H используется для обозначения количества часов, а M используется для обозначения количества минут.

Стандарты даты, времени и продолжительности соответствуют стандартам ISO 8601.

Перечисления

Некоторые свойства могут принимать только ограниченный набор возможных значений. Программисты часто называют это «перечислениями». Например, интернет-магазин с товаром на продажу может использовать тип элемента Offer (предложение), чтобы указать подробности предложения. Свойство availability (доступность) обычно может иметь одно из нескольких возможных значений: In stock (в наличии), Out of stock (нет в наличии), Pre-order (предварительный заказ) и т.д. Подобно тому, как типы элементов указываются как URL-адреса, возможные значения для перечисления на schema.org также могут быть указаны как URL-адреса.

Вот товар для продажи, помеченный типом Offer и соответствующими свойствами:

<div itemscope itemtype="https://schema.org/Offer">
  <span itemprop="name">Джинсы</span>
  <span itemprop="price">$19.95</span>
  <span itemprop="availability">В наличии!</span>
</div>

А вот этот же элемент, но с использованием link и href для однозначного указания доступности как одного из допустимых значений:

<div itemscope itemtype="https://schema.org/Offer">
  <span itemprop="name">Джинсы</span>
  <span itemprop="price">$19.95</span>
  <link itemprop="availability" href="https://schema.org/InStock"/>В наличии!
</div>

Schema.org предоставляет перечисления для нескольких свойств - обычно там, где есть ограниченное количество типичных значений для свойства, есть соответствующее перечисление. В этом случае возможные значения для availability указываются в ItemAvailability.

Канонические ссылки

Обычно ссылки указываются с помощью элемента <a>. Ниже приведена HTML-ссылка на страницу Википедии, посвященную книге «Над пропастью во ржи»:

<div itemscope itemtype="https://schema.org/Book">
  <span itemprop="name">Над пропастью во ржи</span>—
  автор <span itemprop="author">Джером Дэвид Сэлинджер</span>.
  <a itemprop="url" href="https://ru.wikipedia.org/wiki/Над_пропастью_во_ржи">Страница на Википедии</a>.
</div>

Как видите, itemprop="url" можно использовать для указания ссылки на страницу на другом сайте (в данном случае в Википедии), где обсуждается тот же элемент. Ссылки на сторонние сайты могут помочь поисковым системам лучше понять элемент, который вы описываете на своей веб-странице.

Однако вы можете не захотеть добавлять видимую ссылку на свою страницу. В этом случае вместо этого вы можете использовать элемент ссылки, как показано ниже:

<div itemscope itemtype="https://schema.org/Book">
  <span itemprop="name">Над пропастью во ржи</span>—
  <link itemprop="url" href="https://ru.wikipedia.org/wiki/Над_пропастью_во_ржи" />
  автор <span itemprop="author">Джером Дэвид Сэлинджер</span>.
</div>

Отсутствующая / неявная информация

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

В этих случаях используйте тег meta с атрибутом content для указания информации. Рассмотрим такой пример - на изображении пользователи получают оценку 4 из 5 звезд:

<div itemscope itemtype="https://schema.org/Offer">
  <span itemprop="name">Зубная щётка</span>
  <span itemprop="price">$9.95</span>
  <img src="four-stars.jpg" />
  На основе оценок 25 пользователей
</div>

Следующий код - уже с размеченной информацией о рейтинге:

<div itemscope itemtype="https://schema.org/Offer">
  <span itemprop="name">Зубная щётка</span>
  <span itemprop="price">$9.95</span>
  <div itemprop="reviews" itemscope itemtype="https://schema.org/AggregateRating">
    <img src="four-stars.jpg" />
    <meta itemprop="ratingValue" content="4" />
    <meta itemprop="bestRating" content="5" />
    На основе оценок <span itemprop="ratingCount">25</span> пользователей
  </div>
</div>

Эту технику следует использовать осторожно. Используйте meta и content только для информации, которая иначе не может быть размечена.