Многие страницы могут быть описаны с использованием только атрибутов 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 только для информации, которая иначе не может быть размечена.