JSON-LD

JSON-LD — это способ разметки, при котором данные передаются с помощью объектов связанных данных (Linked Data, LD).Данные в формате JSON-LD описываются набором разделенных запятыми пар ключ-значение. Формат предусматривает зарезервированные ключи, с помощью которых можно определять контекст описания или связывать объекты различным образом. Например, @context определяет словарь объектов (в данном случае — Schema.org), а @type — тип описываемой сущности.Для корректной передачи информации следует настроить следующие сущности:

Как разметить материал:

Тип материала

Для передачи типа необходимо воспользоваться полями schema.org/Article, schema.org/NewsArticle, schema.org/BlogPosting или schema.org/WebPage.

  • Article — общая разметка, подходящая всем текстовым материалам;

  • NewsArticle — отдельная разметка для новостей или дополнительных материалов;

  • BlogPosting — разметка для статьи из блога;

  • WebPage — общая разметка, подходящая к любому материалу.

Пример:

<script type="application/ld+json"> { "@context":"https://schema.org", "@type":"Article", ... } </script>

Идентификатор материала

Для передачи идентификатора материала необходимо настроить передачу поля identifier. При этом значение propertyID должно быть mediaId или 'Article id'. Идентификатор должен содержать более 3х символов.

Пример:

"identifier": { "@type": "PropertyValue", "propertyID": "mediaId", // ожидается именно такое название "value": "entity_303003" // изменяемое значение }

Заголовок материала

Для передачи заголовка материала необходимо настроить передачу полей headline или alternativeHeadline.

Пример:

"name":"«Желательно получить Македонию». Даже Карпин хочет эту команду в соперники по стыкам"

Пример:

"headline":"«Желательно получить Македонию». Даже Карпин хочет эту команду в соперники по стыкам""headline":"«Желательно получить Македонию». Даже Карпин хочет эту команду в соперники по стыкам"

Url материала / контейнер

Для передачи url материала и контейнера можно использовать поле url или mainEntityOfPage​В поле url после знака # можно передать id контейнера, где размещается текст материала. В этом случае размер материала будет вычисляться более корректно. Это влияет на параметры доскола и дочтения.

Пример:

"url":"https://www.championat.com/football/article-4522451-s-kem-sygraet-sbornaya-rossii-v-stykovyh-matchah-chm-2022-severnaya-makedoniya-vozmozhnyj-sopernik-komandy-karpina.html#article_id"

Пример:

"mainEntityOfPage":{ "@type":"WebPage", "@id":"https://www.championat.com/football/article-4522451-s-kem-sygraet-sbornaya-rossii-v-stykovyh-matchah-chm-2022-severnaya-makedoniya-vozmozhnyj-sopernik-komandy-karpina.html#article_id" }

Дата публикации

Для передачи даты публикации необходимо использовать поле datePublished. Разметка передается в формате ISO 8601.

Пример:

"datePublished":"2021-11-24T14:00:06+03:00"

Дата модификации

Поля datePublished (обязательное) и дата изменения dateModified (опциональное). Разметка поддерживает формат ISO 8601.

Пример:

"dateModified":"2021-11-24T14:00:07+03:00"

Рубрика

Для передачи данных по рубрикам можно использовать breadcrumbList или articleSection. Рубрики отражают иерархическую структуру сайта. Рубрика может быть узкой и находиться внутри широкой темы. Определите несколько сущностей типа ListItem внутри класса, задайте им свойства itemListElement, которые описывают текущую и более широкие рубрики. Рубрикой данного материала будет считаться значение сущности с наибольшим position.

Пример:

"articleSection":"Футбол"

Пример:

<script type="application/ld+json"> { "@context": "https://schema.org", "@type": "BreadcrumbList", "itemListElement": [ { "@type": "ListItem", "position": 1, "item": { "@id": "https://site.ru/fashion", "name": "Мода" } }, { "@type": "ListItem", "position": 2, "item": { "@id": "https://site.ru/fashion/boho", "name": "Стиль бохо" } }, { "@type": "ListItem", "position": 3, "item": { "@id": "https://site.ru/fashion/boho/woven-bags", "name": "Плетеные сумки" } } ]} </script>

Автор

Для передачи автора можно воспользоваться полями author или person. Если их несколько, укажите каждого в отдельном теге.

Пример:

"author":{ "@type":"Person", "name":"Павел Прохоров", "url":"https://www.championat.com/authors/3889/1.html" }

Аннотация материала (вводный абзац)

Для передачи аннотации материала используется поле abstract.

Пример:

"description": "Летнее межсезонье в Российской Премьер-Лиге получилось мимолётным, многие команды уже вышли из отпуска и начали подготовку к новому розыгрышу. Футболисты попытались воспользоваться этой паузой максимально продуктивно."

Текст

Для передачи текста материала используется поле articleBody. Текст статьи, должен содержать более 500 знаком и быть в единственном экземпляре на странице.

Пример:

<p itemprop="articleBody">Летнее межсезонье в Российской Премьер-Лиге получилось мимолётным, многие команды уже вышли из отпуска и начали подготовку к новому розыгрышу. Футболисты попытались воспользоваться этой паузой максимально продуктивно.</p>

Изображение

Для передачи изображений можно использовать поле ImageObject Важно не само описание изображений, а количество элементов в массиве image.

Пример:

"image":[{ "@type":"ImageObject", "representativeOfPage":"true", "url":"https://img.championat.com/c/1350x759/news/big/x/o/makedoniya-vozmozhnyj-sopernik-rossii-obzor_16376953941446019056.jpg", "width":1350, "height":759 }]

Last updated