Поисковые роботы анализируют не просто изолированный текст, а семантические связи между объектами: кто написал материал, к какому разделу сайта он относится и когда обновлялся. Формат JSON-LD позволяет объединить публикацию, автора и навигационную цепочку в единый граф данных. Это помогает поисковым системам корректно интерпретировать структуру страницы и контекст публикаций.
1. Логика связывания сущностей через @graph и @id
Вместо добавления на страницу нескольких разрозненных блоков <script type="application/ld+json"> стандарт Schema.org позволяет использовать массив @graph. Он объединяет все сущности страницы в один структурированный узел.
Связывание работает по следующим принципам:
- Идентификатор
@id: задает уникальный URI для каждой сущности (например, URL статьи с анкором#articleили URL профиля автора с анкором#person). - Вложенность или ссылки: сущность
Personможет быть вложена напрямую в свойствоauthorсущностиArticleлибо вынесена отдельно в@graphи связана через@id. - Удобство поддержки: объединение
ArticleиBreadcrumbListв одном скрипте снижает дублирование служебных заголовков и упрощает генерацию шаблона на стороне CMS.
2. Пошаговый разбор ключевых сущностей
Сущность Article (материал и даты)
Тип Article (или его специализированные варианты NewsArticle, BlogPosting) описывает саму публикацию.
Основные поля:
headline— заголовок материала (должен соответствовать видимому заголовку страницы);url— канонический адрес публикации;datePublished— дата и время первой публикации;dateModified— дата и время последнего существенного изменения.
Даты передаются строго в стандарте ISO 8601 с указанием часового пояса (например, 2026-10-19T09:00:00+03:00). Указание смещения времени исключает разночтения при сканировании роботами из разных регионов.
Сущность Person (авторство)
Поисковые системы уделяют пристальное внимание проверке авторов контента. Поле author не должно быть простой текстовой строкой — его следует оформлять как объект типа Person (для человека) или Organization (для компании/редакции).
Обязательные атрибуты автора:
name— имя и фамилия эксперта или автора;url— ссылка на страницу автора на сайте или верифицированный профиль, подтверждающий его экспертизу.
Сущность BreadcrumbList (навигация)
Хлебные крошки размечаются для передачи иерархии вложенности документа.
Особенности структуры:
- Список элементов передается в массиве
itemListElement. - Каждый пункт оформляется как
ListItem. - Свойство
positionзадает строгий порядок (начиная с1для главной страницы). - Свойство
itemсодержит полный URL раздела, аname— видимый анкор ссылки. Для корректной обработки навигационной цепочки требуется не менее двух элементовListItem.
3. Практический пример: готовый JSON-LD шаблон
Ниже представлен валидный пример разметки, объединяющей публикацию, автора и навигационную цепочку:
<script type="application/ld+json">
{
"@context": "https://schema.org",
"@graph": [
{
"@type": "Article",
"@id": "https://example.com/articles/json-ld#article",
"url": "https://example.com/articles/json-ld",
"headline": "Микроразметка сайта: Article, Person и BreadcrumbList на практическом примере",
"datePublished": "2026-10-19T09:00:00+03:00",
"dateModified": "2026-10-19T12:30:00+03:00",
"author": {
"@type": "Person",
"@id": "https://example.com/authors/anna#person",
"name": "Анна Иванова",
"url": "https://example.com/authors/anna"
}
},
{
"@type": "BreadcrumbList",
"@id": "https://example.com/articles/json-ld#breadcrumb",
"itemListElement": [
{
"@type": "ListItem",
"position": 1,
"name": "Главная",
"item": "https://example.com/"
},
{
"@type": "ListItem",
"position": 2,
"name": "Статьи",
"item": "https://example.com/articles"
},
{
"@type": "ListItem",
"position": 3,
"name": "Микроразметка сайта",
"item": "https://example.com/articles/json-ld"
}
]
}
]
}
</script>
4. Синхронизация микроразметки с видимым содержимым страницы
Критическое требование поисковых систем — полное совпадение данных в JSON-LD со сведениями, доступными пользователю в HTML-верстке.
| Поле в JSON-LD | Соответствующий элемент в HTML |
|---|---|
headline |
Основной видимый заголовок <h1> |
author.name |
Текстовая подпись автора в блоке статьи |
author.url |
Ссылка на страницу автора в интерфейсе |
datePublished / dateModified |
Блок даты публикации и обновления материала |
BreadcrumbList |
Визуальная навигационная цепочка в шапке контента |
Если в разметку передаются данные, скрытые от пользователя стилями (display: none) или не существующие на странице вовсе, алгоритмы могут расценить это как попытку манипуляции и проигнорировать структурированные данные.
5. Поддержка актуальности при обновлении контента
Структурированные данные требуют регулярного обслуживания при жизненном цикле статьи:
- Когда обновлять
dateModified: поле изменяется только при существенной переработке статьи — добавлении новых разделов, обновлении фактов или замене примеров кода. Исправление мелких опечаток или пунктуации не требует смещения даты обновления. - Смена автора или рецензента: если материал был полностью переписан другим автором, в
authorподставляются данные нового специалиста. При участии редактора или научного консультанта можно использовать дополнительные свойства (например,editorилиreviewedBy). - Изменение структуры URL: при переносе статьи в другой раздел необходимо синхронизировать цепочку
BreadcrumbListи обновить полеurlвArticle.
6. Проверка и валидация разметки
Перед выкаткой разметки на рабочий сайт код необходимо протестировать:
- Schema Markup Validator (validator.schema.org): проверяет соответствие кода спецификации Schema.org, корректность типов, синтаксис JSON и вложенность узлов графа.
- Проверка расширенных результатов Google (Rich Results Test): показывает, распознает ли поисковый робот типы данных и подходят ли они под технические критерии поиска.
Ошибки (Errors) и Предупреждения (Warnings)
- Ошибки: отсутствие обязательных полей (например,
itemListElementв цепочке крошек или имени автора). Разметка с ошибками не обрабатывается поисковыми системами. - Предупреждения: отсутствие рекомендуемых, но необязательных полей. Они не ломают обработку, но указывают на возможность сделать данные полнее.
Часто задаваемые вопросы (FAQ)
Гарантирует ли корректная микроразметка появление расширенных сниппетов в выдаче?
Нет. Корректная разметка Schema.org — это базовое техническое условие для распознавания семантики страницы, но поисковая система не дает гарантий отображения расширенных элементов (хлебных крошек или карточек статей). Финальное решение о формировании сниппета принимает алгоритм ранжирования на основе контекста запроса, авторитетности сайта и релевантности страницы.
Что делать, если у статьи несколько авторов?
В свойство author передается массив объектов Person. Каждый автор оформляется отдельным элементом списка со своим именем и ссылкой на профиль:
"author": [
{
"@type": "Person",
"name": "Анна Иванова",
"url": "https://example.com/authors/anna"
},
{
"@type": "Person",
"name": "Иван Петров",
"url": "https://example.com/authors/ivan"
}
]
Можно ли указать организацию в качестве автора?
Да. Если материал подготовлен редакцией без указания конкретного эксперта, в поле author задается тип Organization с именем компании и ссылкой на главную страницу или раздел «О нас».
Куда лучше помещать скрипт JSON-LD: в <head> или в <body>?
Спецификация допускает размещение тега <script type="application/ld+json"> как внутри контейнера <head>, так и в <body>. Общепринятым стандартом считается добавление скрипта в <head>, что упрощает аудит кода и ускоряет его считывание краулерами.
В чем разница между Article, NewsArticle и BlogPosting?
Article — базовый универсальный тип. NewsArticle используется для новостных сводок и периодических изданий, а BlogPosting — для личных или корпоративных блогов. Все они поддерживают работу со свойствами Person, датами и хлебными крошками.
Обязательно ли указывать время в датах публикации?
Допускается указывать только дату в формате YYYY-MM-DD. Однако передача точного времени и часового пояса (YYYY-MM-DDTHH:mm:ss+TZ) предпочтительна, особенно для динамичных и часто обновляемых материалов.
Заключение
Связывание сущностей Article, Person и BreadcrumbList через массив @graph в формате JSON-LD создает целостную семантическую картину страницы. Такой подход исключает дублирование кода, упрощает поддержку шаблонов в CMS и обеспечивает поисковым системам однозначную интерпретацию контента, авторства и структуры сайта. Главное правило стабильной работы разметки — строгое соответствие JSON-LD кода видимому содержимому документа и своевременное обновление дат при актуализации информации.



.svg.webp)





