Сайт использует сookies для хранения данных. Продолжая использовать сайт, вы даёте согласие на работу с этими файлами.

ОК
🔍
SEO
Опубликовано:
19.10.2026
•
Обновлено:
19.10.2026

Микроразметка статьи: как правильно связать Article, Person и BreadcrumbList в JSON-LD на реальном примере

Владислав Вишневецкий

Поисковые роботы анализируют не просто изолированный текст, а семантические связи между объектами: кто написал материал, к какому разделу сайта он относится и когда обновлялся. Формат 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. Поддержка актуальности при обновлении контента

Структурированные данные требуют регулярного обслуживания при жизненном цикле статьи:

  1. Когда обновлять dateModified: поле изменяется только при существенной переработке статьи — добавлении новых разделов, обновлении фактов или замене примеров кода. Исправление мелких опечаток или пунктуации не требует смещения даты обновления.
  2. Смена автора или рецензента: если материал был полностью переписан другим автором, в author подставляются данные нового специалиста. При участии редактора или научного консультанта можно использовать дополнительные свойства (например, editor или reviewedBy).
  3. Изменение структуры 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 кода видимому содержимому документа и своевременное обновление дат при актуализации информации.

Источники

Это авторская статья, основанная на личном опыте и субъективном взгляде автора. Заметили ошибку или битую ссылку? Сообщите нам: info@codesrc.ru - мы оперативно исправим. Спасибо, что помогаете делать блог лучше.
Следите за нами в соцсетях:

Читайте также