Schema.org разметка

Добавить Article / BlogPosting Schema

Важно

Зачем добавлять Article или BlogPosting Schema

Разметка Schema.org для статей — это способ явно сообщить поисковым системам метаданные публикации: кто автор, когда опубликовано, когда обновлено, какое главное изображение, о чём текст. Без разметки поисковик определяет эти данные самостоятельно, и часто ошибается: берёт неправильную дату, не находит автора, подтягивает нерелевантное изображение в сниппет.

Google использует Article Schema для формирования расширенных сниппетов в выдаче и в Google News. Яндекс также учитывает разметку статей при формировании Турбо-страниц и сниппетов. Корректная разметка не гарантирует расширенный сниппет, но значительно повышает вероятность его появления и помогает поисковым системам точнее интерпретировать контент.

По моему опыту, сайты с корректной Article Schema получают более привлекательные сниппеты в выдаче: с датой, автором, изображением. Это повышает CTR на 5-15% по сравнению со стандартным сниппетом без этих элементов. Для блогов и информационных сайтов, где основной трафик идёт со статей, это ощутимый прирост.

Article, BlogPosting или NewsArticle: что выбрать

Schema.org предлагает несколько типов разметки для текстового контента. Они связаны иерархически: BlogPosting и NewsArticle — подтипы Article. Разница:

  • Article — универсальный тип для любой статьи. Подходит для экспертных материалов, обзоров, руководств, аналитики. Если не уверены, какой тип выбрать, — используйте Article.
  • BlogPosting — подтип Article для записей в блоге. Технически идентичен Article, но точнее описывает контент, который является частью блога. Если у вас раздел «Блог» с регулярными публикациями — BlogPosting корректнее.
  • NewsArticle — подтип Article для новостей. Используйте только если публикуете актуальные новости и контент подходит под критерии Google News. Для обычных статей и руководств NewsArticle не подходит: Google может проигнорировать разметку или расценить её как несоответствующую контенту.

Практический выбор для большинства сайтов: BlogPosting для записей блога, Article для всех остальных информационных страниц. NewsArticle — только для новостных изданий.

Пошаговая инструкция

Шаг 1. Определите тип разметки для каждого раздела сайта

Перед внедрением разметки составьте карту: какой тип разметки используется для каждого типа контента на сайте.

  • Записи блога → BlogPosting
  • Экспертные статьи, руководства, обзоры → Article
  • Новости (если есть новостной раздел) → NewsArticle
  • Страницы услуг, карточки товаров, контактная страница → разметка статей не нужна, используйте другие типы (Service, Product, ContactPage)

Не размечайте Article или BlogPosting страницы, которые не являются статьями. Разметка должна соответствовать реальному содержимому страницы.

Шаг 2. Подготовьте обязательные данные

Для корректной разметки Article/BlogPosting нужны конкретные данные по каждой публикации:

  • headline — заголовок статьи. Максимум 110 символов по рекомендациям Google. Обычно совпадает с H1 страницы.
  • image — главное изображение статьи. URL изображения шириной не менее 1200 пикселей. Google рекомендует формат 16:9, 4:3 или 1:1.
  • datePublished — дата первой публикации в формате ISO 8601 (например, 2026-04-10T10:00:00+03:00).
  • dateModified — дата последнего обновления. Если статья обновлялась — укажите актуальную дату. Если нет — можно не указывать или продублировать datePublished.
  • author — автор публикации. Тип Person или Organization. Обязательно указывайте name и url (ссылка на страницу автора).

Шаг 3. Создайте JSON-LD разметку

JSON-LD — рекомендуемый формат. Разметка размещается в теге <script type="application/ld+json"> внутри <head> или <body> страницы.

Пример разметки BlogPosting:

<script type="application/ld+json">
{
  "@context": "https://schema.org",
  "@type": "BlogPosting",
  "headline": "Как настроить XML-карту сайта для WordPress",
  "image": "https://example.com/images/sitemap-guide.jpg",
  "datePublished": "2026-03-15T10:00:00+03:00",
  "dateModified": "2026-04-08T14:30:00+03:00",
  "author": {
    "@type": "Person",
    "name": "Имя Автора",
    "url": "https://example.com/about/"
  },
  "publisher": {
    "@type": "Person",
    "name": "Имя Автора",
    "url": "https://example.com/",
    "logo": {
      "@type": "ImageObject",
      "url": "https://example.com/logo.png"
    }
  },
  "description": "Пошаговое руководство по настройке XML-карты сайта на WordPress: плагины, ручная генерация, проверка в Вебмастере.",
  "mainEntityOfPage": {
    "@type": "WebPage",
    "@id": "https://example.com/blog/xml-sitemap-wordpress/"
  }
}
</script>

Для Article — замените "@type": "BlogPosting" на "@type": "Article". Все остальные поля идентичны.

Шаг 4. Настройте автоматическую генерацию в WordPress

Вручную добавлять JSON-LD на каждую статью неэффективно. Есть три подхода для автоматизации:

Через SEO-плагин. Yoast SEO автоматически генерирует Article Schema для всех записей. Проверьте настройки: SEO → Общие → Вкладка «Ваша организация/человек» — укажите автора и тип сайта. Rank Math также генерирует разметку автоматически. Проблема: плагины не всегда заполняют все поля корректно, особенно image и dateModified.

Через functions.php. Добавьте кастомную функцию, которая генерирует JSON-LD для каждой записи на основе данных поста:

function custom_article_schema() {
  if ( ! is_single() ) return;

  global $post;
  $image = get_the_post_thumbnail_url( $post->ID, 'full' );
  $schema = array(
    '@context'        => 'https://schema.org',
    '@type'           => 'BlogPosting',
    'headline'        => get_the_title(),
    'image'           => $image ? $image : '',
    'datePublished'   => get_the_date( 'c' ),
    'dateModified'    => get_the_modified_date( 'c' ),
    'author'          => array(
      '@type' => 'Person',
      'name'  => get_the_author(),
      'url'   => get_author_posts_url( get_the_author_meta('ID') )
    ),
    'description'     => get_the_excerpt(),
    'mainEntityOfPage'=> array(
      '@type' => 'WebPage',
      '@id'   => get_permalink()
    )
  );

  echo '<script type="application/ld+json">'
       . wp_json_encode( $schema, JSON_UNESCAPED_UNICODE | JSON_UNESCAPED_SLASHES )
       . '</script>';
}
add_action( 'wp_head', 'custom_article_schema' );

Через плагин WPCode. Если не хотите редактировать functions.php — используйте плагин для вставки кода и разместите аналогичный скрипт.

Важно: не используйте одновременно автоматическую генерацию из SEO-плагина и свой кастомный код. Это создаст дублирование разметки на странице.

Шаг 5. Добавьте рекомендуемые поля

Помимо обязательных полей, есть рекомендуемые, которые улучшают качество разметки:

  • articleSection — категория или рубрика статьи. Помогает поисковой системе классифицировать контент.
  • wordCount — количество слов в статье. Необязательно, но полезно для индексации.
  • inLanguage — язык статьи. Для русскоязычного контента: "inLanguage": "ru".
  • keywords — ключевые слова статьи. Не путайте с мета-тегом keywords — здесь это дополнительный сигнал для разметки.
  • about — о чём статья. Можно указать тип Thing с name: "about": {"@type": "Thing", "name": "Поисковая оптимизация"}.

Шаг 6. Валидируйте разметку

После внедрения проверьте каждый тип страницы через инструменты валидации:

  • Google Rich Results Test (search.google.com/test/rich-results) — вставьте URL статьи и проверьте, распознаёт ли Google вашу разметку. Инструмент покажет обнаруженные типы разметки, ошибки и предупреждения.
  • Schema Markup Validator (validator.schema.org) — более строгая проверка по спецификации Schema.org. Выявляет ошибки, которые Google-инструмент может пропустить.
  • Яндекс Вебмастер, валидатор микроразметки — раздел «Инструменты» → «Валидатор микроразметки». Проверьте, как Яндекс интерпретирует вашу разметку. Яндекс может обрабатывать некоторые поля иначе, чем Google.

Проверьте минимум 3-5 разных статей, а не одну: ошибки могут быть связаны с конкретными записями (например, у одних есть изображение, у других — нет).

Шаг 7. Проверьте отчёт в Google Search Console

После того как Google проиндексирует страницы с разметкой, откройте Google Search Console → «Улучшения» → «Статьи» (или «Записи блога»). Здесь Google покажет:

  • Количество страниц с валидной разметкой Article/BlogPosting
  • Страницы с ошибками разметки
  • Страницы с предупреждениями (разметка корректна, но неполная)

Исправляйте ошибки в первую очередь — они могут привести к полному игнорированию разметки. Предупреждения — во вторую: они не блокируют расширенные сниппеты, но ограничивают их возможности.

Типичные ошибки

  • Отсутствие image в разметке. Google считает image обязательным полем для Article. Без изображения расширенный сниппет не появится. Убедитесь, что у каждой статьи есть featured image и оно подтягивается в разметку.
  • Неправильный формат даты. datePublished и dateModified должны быть в формате ISO 8601: 2026-04-10T10:00:00+03:00. Формат «10 апреля 2026» или «04/10/2026» не распознаётся.
  • dateModified старше datePublished. Если дата обновления раньше даты публикации — это явная ошибка, которую валидатор может не поймать, но поисковая система воспримет как некорректные данные.
  • Автор указан как строка, а не как объект. Неправильно: "author": "Имя Фамилия". Правильно: "author": {"@type": "Person", "name": "Имя Фамилия"}. Google требует объект с типом Person или Organization.
  • Использование NewsArticle для обычных статей. NewsArticle предназначен для новостей. Если статья — это руководство, обзор или аналитика, используйте Article или BlogPosting. Неправильный тип может привести к игнорированию разметки.
  • Дублирование разметки. SEO-плагин генерирует Article Schema автоматически, а разработчик добавил свою через functions.php. Две разметки Article на одной странице — конфликт. Проверьте исходный код страницы (Ctrl+U) и убедитесь, что разметка одна.
  • headline не совпадает с H1. Google рекомендует, чтобы headline в разметке совпадал с заголовком H1 на странице. Расхождение — не критическая ошибка, но сигнал несоответствия.
  • Разметка на страницах, которые не являются статьями. Article Schema на странице «Контакты» или на карточке товара — это несоответствие типа разметки контенту. Размечайте только реальные статьи и записи блога.

Что проверить в итоге

  • Для каждого типа контента определён правильный тип разметки: Article, BlogPosting или NewsArticle
  • JSON-LD разметка добавлена на все страницы статей и записей блога
  • Заполнены обязательные поля: headline, image, datePublished, dateModified, author
  • Автор указан как объект Person с полями name и url, а не как текстовая строка
  • Дата в формате ISO 8601, dateModified не старше datePublished
  • У каждой статьи есть featured image, которое подтягивается в поле image разметки
  • Разметка прошла валидацию в Google Rich Results Test без ошибок
  • Разметка проверена в Schema Markup Validator и Яндекс Вебмастере
  • Нет дублирования разметки (от плагина и вручную одновременно)
  • В Google Search Console нет ошибок в отчёте по статьям

Нужна помощь с внедрением?

Проведу аудит вашего сайта и внедрю рекомендации. Результат — чистая техническая база и план роста.

Обсудить проект

Кто ведёт проект

Александр Тригуб — частный SEO-специалист. В поисковом маркетинге с 2010 года, предприниматель с 2001-го. В SEO пришёл из собственного бизнеса — знаю, как устроены продажи не из учебников, а из собственной выручки и расходов.

  • Специализация: медицина, B2B, e-commerce и локальные услуги — ниши, где каждый лид стоит дорого.
  • Подтверждённый опыт: 500+ видео-аудитов в разных тематиках, 1092 заказа (рейтинг 4.9 / 5). Отзывы · Видео-аудиты.
  • Профили с отзывами: 728 отзывов на Kwork (4.9★) · Profi.ru (5.0★) · ORCID 0009-0009-0106-6136.
  • Формат: работаю напрямую, один специалист на проект — без менеджеров и субподрядных цепочек.
  • Отчётность: KPI по лидам и деньгам. Ежемесячный план/факт, а не PDF на 50 страниц.
15+лет в маркетинге
500+видео-аудитов
1092заказов
4.9★728 отзывов