Product schema и Merchant listings: структурированные данные товаров

В выдаче по товарным запросам выигрывает не тот, у кого ниже цена, а тот, чей сниппет нагляднее: жёлтые звёзды рейтинга, цена, отметка «В наличии», количество отзывов. Всё это — результат структурированных данных Product. Корректная разметка товара превращает сухую строку в визуальную карточку, поднимает CTR и открывает доступ к бесплатным товарным карточкам Google (Merchant listings) и вкладке «Покупки». В этой статье разберём по косточкам разметку Product, Offer и AggregateRating, как вывести цену, наличие и рейтинг в выдачу, что такое Merchant listings и бесплатные размещения, как валидировать разметку и не наступить на типичные ошибки, и как всё это применять в интернет-магазинах и на маркетплейсах.

Что такое Product schema и зачем она магазину

Product — это тип структурированных данных Schema.org, который описывает товар машиночитаемым языком: название, изображение, бренд, описание, артикул (SKU), идентификаторы (GTIN/MPN), предложение (цену и наличие) и агрегированный рейтинг. Поисковик читает эти данные и формирует на их основе расширенный сниппет — карточку товара. Общие принципы структурированных данных и то, как они помогают выделиться в выдаче, мы разбирали в материале про микроразметку Schema.org; здесь сфокусируемся на товарной специфике.

Рекомендуемый формат разметки — JSON-LD: отдельный блок в коде страницы, не привязанный к вёрстке и потому устойчивый к изменениям дизайна. Микроразметка через атрибуты (microdata, RDFa) тоже допустима, но JSON-LD предпочтителен и Google, и Яндексом. Размечать товар можно как в обычном HTML, так и в JavaScript-рендеринге, но в последнем случае убедитесь, что данные доступны поисковому роботу — нюансы мы разбирали в статье про JavaScript-SEO и продвижение SPA на React.

Зачем это магазину в цифрах. Появление звёзд рейтинга и цены в сниппете в среднем поднимает CTR карточки товара на 15–35% относительно безликого результата. Для коммерческих страниц это прямой прирост трафика и продаж при тех же позициях. Кроме визуального эффекта, корректная разметка — это пропуск в бесплатные товарные размещения Google, о которых поговорим ниже.

Структура разметки: Product, Offer, AggregateRating

Разметка товара строится из вложенных сущностей. Корневой объект — Product, внутри него — Offer (предложение с ценой и наличием) и AggregateRating или Review (рейтинги и отзывы). Минимальный обязательный костяк выглядит так: name (название), image (изображение), offers (предложение). Остальное — рекомендуемые поля, которые повышают качество карточки.

Разберём ключевые свойства каждой сущности:

  • Product.name — точное название товара, как на странице.
  • Product.image — одно или несколько изображений высокого качества, желательно в нескольких пропорциях.
  • Product.brand — производитель/бренд (объект Brand с полем name).
  • Product.sku / gtin / mpn — идентификаторы. GTIN (штрихкод) особенно важен для Merchant listings.
  • Product.description — краткое описание товара.
  • Offer.price и Offer.priceCurrency — цена и валюта (RUB). Без них цена в сниппете не появится.
  • Offer.availability — наличие: InStock, OutOfStock, PreOrder и т.д.
  • Offer.priceValidUntil — дата, до которой действует цена (рекомендуется указывать).
  • Offer.url — канонический URL страницы товара.
  • AggregateRating.ratingValue — средняя оценка, например 4.7.
  • AggregateRating.reviewCount / ratingCount — число отзывов/оценок.

Свойство availability должно отражать реальное состояние склада и обновляться вместе с ним. Если на странице написано «нет в наличии», а в разметке стоит InStock, это рассинхрон, за который Google наказывает вплоть до снятия расширенного сниппета. Для товаров с вариациями (размер, цвет) используют ProductGroup и hasVariant либо несколько Offer внутри offers — выбор зависит от того, как устроены URL вариантов.

Разметка Product — это не украшение, а контракт с поисковиком: всё, что вы заявили в JSON-LD, должно буквально совпадать с тем, что видит пользователь на странице. Любое расхождение цены, наличия или рейтинга — повод для санкций и потери сниппета.

Цена, наличие и рейтинг в выдаче

Три самых заметных элемента товарного сниппета — цена, статус наличия и звёзды рейтинга. Каждый из них выводится из конкретного свойства разметки и подчиняется своим правилам отображения. Чтобы они появились, недостаточно просто прописать поля — нужно, чтобы данные были консистентны, актуальны и подтверждались содержимым страницы.

Элемент сниппетаИсточник в разметкеУсловие отображения
Ценаoffers.price + priceCurrencyЦена на странице совпадает с разметкой, валюта корректна
Диапазон ценAggregateOffer (lowPrice/highPrice)Для товара с несколькими предложениями
Наличиеoffers.availabilityСтатус совпадает с реальным состоянием склада
Рейтинг (звёзды)aggregateRating.ratingValue + reviewCountОтзывы реальны и видны на странице
Скидка / старая ценаPriceSpecificationУказаны исходная и текущая цена
ДоставкаshippingDetailsЗаданы условия и стоимость доставки

Звёзды рейтинга — самый притягательный элемент, но и самый строгий по требованиям. Google показывает их только если отзывы относятся именно к этому товару, реально присутствуют на странице и не сгенерированы искусственно. Накрутка отзывов ради звёзд — путь к ручным санкциям. Как органично собирать и использовать пользовательские отзывы, мы подробно разбирали в материале про UGC-отзывы как SEO-контент: реальные отзывы дают и звёзды в выдаче, и уникальный текст на карточке.

Цена и наличие требуют технической дисциплины. Если у вас десятки тысяч SKU, разметку нельзя поддерживать вручную — она должна генерироваться шаблоном и обновляться из той же базы, что и витрина. Тогда при изменении остатка или цены данные в JSON-LD меняются автоматически, и рассинхрона не возникает.

Merchant listings и бесплатные товарные карточки Google

Merchant listings — это формат расширенного сниппета для товаров, продающихся онлайн. Он подразумевает более полный набор данных: помимо цены и наличия, Google ждёт идентификаторы товара (GTIN/MPN), сведения о доставке (shippingDetails) и политике возврата (hasMerchantReturnPolicy). За это товар получает право показываться не только в обычной выдаче, но и во вкладке «Покупки», и в бесплатных товарных размещениях.

Бесплатные товарные карточки (free product listings) — важная возможность: Google позволяет магазинам показывать товары в Shopping-выдаче без оплаты, если данные о товарах переданы через Merchant Center (фид) или считаны со страниц через разметку. Это отдельный бесплатный канал трафика поверх классического органического. Чтобы попасть в него, нужны: корректная Product-разметка с идентификаторами, актуальные цена и наличие, данные о доставке и возврате.

Есть два пути предоставить товары Google: через товарный фид в Merchant Center и через структурированные данные на страницах. Они не взаимоисключающие — лучшая практика для крупных магазинов использовать оба: фид как основной источник, разметку как подтверждение и резерв. Системно выстроить весь процесс — от карточек до фида — помогает работа над магазином в целом, которую мы описываем в гайде про SEO интернет-магазина.

Ключевые требования для Merchant listings:

  1. Указать уникальные идентификаторы товара (GTIN — приоритетно, иначе MPN + brand).
  2. Передать цену и валюту, синхронизированные с витриной.
  3. Заполнить availability реальным статусом склада.
  4. Добавить shippingDetails — стоимость и сроки доставки по регионам.
  5. Описать hasMerchantReturnPolicy — условия возврата.
  6. Обеспечить качественные изображения товара.

Валидация и типичные ошибки

Перед публикацией и после любых изменений разметку нужно проверять. Основные инструменты: Rich Results Test от Google (показывает, какие расширенные результаты доступны для страницы), отчёт «Товары» в Google Search Console (массовый мониторинг ошибок по всему сайту) и валидатор Schema.org. Как читать отчёты и где искать проблемы с расширенными результатами в панели Google, мы подробно разбирали в полном гайде по Google Search Console.

Самые частые ошибки, из-за которых сниппет не появляется или приходит предупреждение:

  • Рассинхрон цены/наличия. В разметке одно, на странице другое — главная причина потери сниппета и санкций.
  • Отсутствие priceCurrency. Без валюты цена не отобразится.
  • Накрученные или чужие отзывы. Рейтинг, не подтверждённый видимыми отзывами товара, ведёт к снятию звёзд.
  • Рейтинг без reviewCount/ratingCount. AggregateRating без числа отзывов невалиден.
  • Разметка скрыта в JS и не рендерится. Робот не видит данные — сниппета нет.
  • Нет идентификаторов (GTIN/MPN). Блокирует попадание в Merchant listings.
  • Разметка на странице категории вместо товара. Product размечают на карточке конкретного товара, не на листинге.
  • Битые или низкокачественные изображения в image. Снижают шанс на расширенный показ.

Отдельная зона риска — дубли. Если один и тот же товар доступен по нескольким URL (с параметрами, вариантами, фильтрами), разметка размножается и поисковик путается, какую карточку индексировать. Решается это канонизацией и работой с фасетной навигацией — темы, которые мы раскрывали в материалах про дубли и фильтры. Качество самих карточек — изображения, описания, характеристики — напрямую влияет и на разметку, и на ранжирование; этому посвящён отдельный разбор про оптимизацию карточек товаров для SEO.

Применение в интернет-магазинах

В типовом интернет-магазине разметку Product нельзя ставить вручную на каждую страницу — это должна делать CMS через шаблон карточки товара. Шаблон берёт данные из той же базы, что и витрина: название, цену, остаток, рейтинг, изображения. Так разметка всегда актуальна и согласована с тем, что видит покупатель. Это требует корректной интеграции на уровне движка, и в этом нередко нужна доработка сайта силами разработчиков.

Практические рекомендации для магазина:

  1. Разметку Product ставить только на карточках товаров, а не на категориях.
  2. На категориях использовать ItemList со ссылками на товары.
  3. Связать поле availability с системой учёта остатков, чтобы статус менялся автоматически.
  4. Подтягивать AggregateRating из реальных отзывов модуля магазина.
  5. Добавить хлебные крошки (BreadcrumbList) для отображения пути в сниппете.
  6. Регулярно проверять отчёт «Товары» в Search Console и устранять ошибки.

Для категорийных страниц логично применять ItemList — перечень товаров с их URL: это не даёт звёзд и цены в сниппете категории, но помогает поисковику понять структуру каталога. А хлебные крошки выводят навигационный путь прямо в выдаче, повышая доверие к карточке. О роли крошек мы писали в материале про хлебные крошки и навигацию для SEO.

Применение на маркетплейсах

На маркетплейсах вроде Wildberries и Ozon продавец не управляет HTML-кодом страницы и не может вставить собственный JSON-LD — разметкой карточек занимается сама платформа. Поэтому задача продавца смещается: влиять не на код, а на содержимое карточки, которое площадка превращает в данные и сигналы. Системно продвижение на этих площадках мы разбираем в гайде про SEO для маркетплейсов Wildberries и Ozon.

Что в зоне влияния продавца на маркетплейсе:

  • Полнота характеристик. Чем точнее заполнены атрибуты товара, тем качественнее площадка сформирует данные о нём.
  • GTIN/штрихкод. Корректный идентификатор повышает шанс попасть в товарные размещения площадки и Google.
  • Качество фото и контента. Изображения и описания напрямую влияют на конверсию и видимость.
  • Отзывы и рейтинг. Реальные отзылвы формируют звёзды как внутри площадки, так и во внешней выдаче.
  • Актуальность цены и наличия. Платформа транслирует эти данные в свои фиды.

Если же вы продаёте и через маркетплейс, и через собственный магазин, разметка Product на вашем сайте становится конкурентным преимуществом: вы получаете расширенные сниппеты и бесплатные товарные карточки Google по своим страницам, не завися от площадки. Это веский аргумент развивать собственный канал параллельно.

Корректная разметка Product, Offer и AggregateRating — это недорогой, но мощный рычаг роста CTR и доступа к бесплатным товарным карточкам Google. Главное — техническая дисциплина и синхронизация данных с витриной. Если вы хотите внедрить товарную разметку без ошибок и открыть для каталога Merchant listings, начните с диагностики — закажите комплексный SEO-аудит сайта, чтобы найти все проблемы со структурированными данными, или сразу подключите продвижение сайтов, и мы выстроим разметку каталога так, чтобы ваши карточки выделялись в выдаче звёздами, ценой и отметкой о наличии.

Услуги LSI Продвижение

Наша команда предлагает полный спектр услуг по SEO-продвижению и технической доработке сайтов. Мы работаем только белыми методами, ориентируемся на реальный бизнес-результат — трафик, заявки и продажи, а не только позиции в отчёте, — и выстраиваем продвижение системно, под конкретные задачи и нишу вашего проекта. Начать можно с бесплатной диагностики, чтобы понять текущее состояние сайта и точки роста, а затем перейти к комплексной работе. Выберите подходящую услугу из списка ниже:

Закажите SEO продвижение сайта

Выведем ваш сайт в ТОП Яндекса и Google. Бесплатная консультация — разберём сайт, найдём точки роста и предложим стратегию продвижения.

Оставить заявку Бесплатный SEO аудит
Аудит сайта

Comments

  • Константин

    Тезис про то, что выигрывает не самая низкая цена, а самый наглядный сниппет, — прямо в точку. У конкурента цена выше, но звёзды и В наличии перетягивают клики на него.

  • Оксана Зверева

    Спасибо за разбор структуры Product, Offer и AggregateRating. Всегда путала, где указывать цену, а где рейтинг. Теперь стало понятнее, что за что отвечает.

  • Денис Пахомов

    А как правильно выводить наличие, если у товара несколько вариантов — часть в наличии, часть под заказ? В одном Offer это указать или нужно несколько предложений?

    • Анатолий Кузнецов

      Денис, при нескольких вариантах товара корректнее использовать несколько Offer внутри Product (или AggregateOffer с диапазоном цен) и для каждого указывать своё availability. Пытаться уместить разное наличие в один Offer — как раз частая ошибка, из-за которой данные противоречат друг другу и сниппет не собирается.

  • Марго

    Merchant listings и бесплатные товарные карточки Google — для меня открытие. Думала, попасть в Покупки можно только через платные кампании. Оказывается, есть бесплатный путь.

  • Терентий

    Провёл валидацию, а инструмент ругается на отсутствие поля priceValidUntil. Это критично для показа цены в выдаче или можно игнорировать предупреждение?

  • Ярослава

    Держу магазин на маркетплейсе и на своём сайте. Раздел про применение на маркетплейсах очень в тему — там же разметку за меня ставит площадка, я на неё не влияю, верно?

  • Валерий

    Типичные ошибки — самый полезный блок. У меня цена в разметке отличалась от цены на странице, и Google просто перестал показывать сниппет. Теперь понял почему.

    • Анатолий Кузнецов

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

  • Инга Соловьёва

    А AggregateRating можно ставить, если отзывов всего два-три? Или есть минимальный порог, ниже которого звёзды всё равно не покажут?

    • Анатолий Кузнецов

      Инга, формального жёсткого порога нет, но с двумя-тремя отзывами звёзды показывают неохотно и нестабильно. Важнее, чтобы рейтинг был основан на реальных отзывах, видимых на странице. Как отзывов накопится больше, вероятность стабильного показа звёзд заметно вырастет.

  • Пётр

    Спасибо, доходчиво. Вопрос новичка: обязательно ли выводить рейтинг, чтобы попасть в Merchant listings, или достаточно цены и наличия?

  • Радмила

    Наглядная карточка вместо сухой строки — это реально работает на CTR. После внедрения Product schema клики по товарам заметно выросли, хотя позиции почти не менялись.

  • Гleb Осипов

    А в Яндексе Product schema даёт такой же эффект со звёздами и ценой, или там своя механика товарных сниппетов? Основной трафик у меня яндексовый.

  • Эмма

    Немного сомневаюсь: не приведёт ли разметка цены к тому, что при частом изменении цен сниппет будет вечно устаревшим? Как поддерживать актуальность?

  • Савелий

    Отличный материал. Всё откладывал внедрение структурированных данных, думал, это сложно и для крупных магазинов. Оказалось, для одного товара разметка вполне посильна.

  • Влада Терехова

    Подскажите, если товара нет в наличии, лучше указывать OutOfStock честно или вообще убирать offer? Не потеряю ли я сниппет совсем?

    • Анатолий Кузнецов

      Влада, если товара нет в наличии, честно указывайте OutOfStock, а не убирайте offer. Убирать предложение целиком хуже: поисковик может решить, что это уже не товарная страница. С честным OutOfStock сниппет обычно сохраняется, просто без отметки о наличии.

  • Артемий

    Валидация прошла без ошибок, а богатый сниппет всё равно не появляется уже три недели. Это нормальная задержка или где-то ошибка, которую валидатор не видит?

    • Анатолий Кузнецов

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

  • Жанна Носова

    Спасибо за статью. Наконец поняла, зачем в Offer нужны и цена, и валюта, и наличие вместе — раньше указывала только цену и удивлялась, почему сниппет неполный.

  • Оставить комментарий

    Ваш адрес email не будет опубликован. Обязательные поля помечены *

    Этот сайт использует Akismet для борьбы со спамом. Узнайте, как обрабатываются ваши данные комментариев.