E-commerce: Продвижение и запуск интернет магазина
Полезные статьи и инструкции по продвижению, запуску и развитию интернет-магазинов в сфере E-commerce

Структурированные данные Schema.org для товаров — полный гайд с примерами



Структурированные данные Schema.org для товаров: полный гайд


Структурированные данные Schema.org для товаров — полный гайд с примерами

Подробное руководство по структурированной разметке Schema.org для интернет-магазинов: JSON-LD, обязательные поля, примеры, валидация, частые ошибки и рекомендации. Всё, что нужно для расширенных сниппетов товаров в поисковой выдаче.

1. Что такое Schema.org и зачем это нужно

Schema.org — это словарь (вендор-нейтральная схема) для структурированных данных, поддерживаемая крупными поисковыми системами (Google, Yandex, Bing, Yahoo). Разметка помогает поисковикам правильно понять содержание карточки товара и может привести к расширенным сниппетам (цена, наличие, рейтинг, отзывы, фотографии), а также корректному отображению в соцсетях через Open Graph и Twitter Cards.

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

Официальные ссылки:

2. Какой формат разметки использовать

Google рекомендует JSON-LD (JavaScript Object Notation for Linked Data). Этот формат не вмешивается в DOM, его легко вставлять сервером и динамически генерировать из данных БД. JSON-LD представляет собой блок <script> с типом application/ld+json, который размещается в <head> или <body> страницы.

Существующие форматы разметки:

  • JSON-LD (рекомендуется) — отдельный блок скрипта, не влияет на вёрстку
  • Microdata — атрибуты в HTML-тегах (itemscope, itemtype, itemprop)
  • RDFa — расширенные атрибуты для связывания данных

Для интернет-магазина выбирайте JSON-LD — это самый гибкий и поддерживаемый формат.

3. Обязательные поля для корректной карточки товара

Минимальный набор полей, необходимый для корректной обработки Google и отображения расширенного сниппета:

  • name — название товара
  • image — хотя бы одно изображение (URL)
  • description — краткое описание (1-2 предложения)
  • offers.price — цена (числом, без символа валюты)
  • offers.priceCurrency — валюта (ISO 4217, например UAH, USD, EUR)
  • offers.availability — доступность (полный URL из schema.org, например https://schema.org/InStock)
  • offers.url — URL страницы товара (канонический)

4. Полный список рекомендуемых полей

  • sku — артикул (внутренний код товара)
  • mpn — manufacturer part number (код производителя)
  • gtin8 / gtin12 / gtin13 / gtin14 — штрихкод (GTIN-8, GTIN-12, GTIN-13, GTIN-14)
  • brand — бренд (объект Brand с полем name)
  • category — категория товара
  • color, material, size, weight — физические характеристики
  • aggregateRating — сводный рейтинг (AggregateRating)
  • review — отзывы (массив Review)
  • itemCondition — состояние товара (NewCondition, UsedCondition и т.д.)
  • additionalProperty — произвольные свойства (PropertyValue)
  • shippingDetails / OfferShippingDetails — условия и стоимость доставки
  • seller — организация-продавец (Organization)
  • offers.priceValidUntil — дата окончания действия цены

5. Простой рабочий пример JSON-LD (минимум)

Базовый пример разметки товара с обязательными полями:

Code: JSON-LD
<script type="application/ld+json">
{
  "@context": "https://schema.org",
  "@type": "Product",
  "name": "Wireless Headphones X100",
  "image": "https://site.com/images/headphones-x100.jpg",
  "description": "Беспроводные наушники с шумоподавлением.",
  "offers": {
    "@type": "Offer",
    "url": "https://site.com/product/headphones-x100",
    "priceCurrency": "UAH",
    "price": "2499",
    "availability": "https://schema.org/InStock"
  }
}
</script>

Важно: price отправляйте как число или строку цифр (без знака валюты). availability используйте полный URL из schema.org (например, https://schema.org/InStock).

6. Полная разметка товара (GTIN, brand, SKU, рейтинг, отзывы)

Ниже — расширенная разметка с множеством полей: GTIN, бренд, SKU, множественные изображения, aggregateRating, review, additionalProperty, shippingDetails, seller. Это наиболее полный пример, который можно адаптировать под любой интернет-магазин.

Code: JSON-LD
<script type="application/ld+json">
{
  "@context": "https://schema.org/",
  "@type": "Product",
  "name": "Xiaomi Mi Band 7",
  "image": [
    "https://site.com/upload/mi-band-7-1.webp",
    "https://site.com/upload/mi-band-7-2.webp"
  ],
  "description": "Фитнес-браслет с AMOLED-экраном и пульсометром.",
  "sku": "MI-BAND-7-BLACK",
  "mpn": "MB7-2025",
  "gtin13": "6954176850021",
  "brand": {
    "@type": "Brand",
    "name": "Xiaomi"
  },
  "additionalProperty": [
    {
      "@type": "PropertyValue",
      "name": "Цвет",
      "value": "Чёрный"
    },
    {
      "@type": "PropertyValue",
      "name": "Материал",
      "value": "Силикон, металл"
    }
  ],
  "offers": {
    "@type": "Offer",
    "url": "https://site.com/product/mi-band-7/",
    "priceCurrency": "UAH",
    "price": "1499",
    "priceValidUntil": "2026-12-31",
    "availability": "https://schema.org/InStock",
    "itemCondition": "https://schema.org/NewCondition",
    "seller": {
      "@type": "Organization",
      "name": "BooStore.pro"
    },
    "shippingDetails": {
      "@type": "OfferShippingDetails",
      "shippingRate": {
        "@type": "MonetaryAmount",
        "value": "50"
      }
    }
  },
  "aggregateRating": {
    "@type": "AggregateRating",
    "ratingValue": "4.8",
    "reviewCount": "238"
  },
  "review": [
    {
      "@type": "Review",
      "author": "Олена",
      "datePublished": "2025-02-10",
      "reviewBody": "Чудовий браслет, працює стабільно!",
      "reviewRating": {
        "@type": "Rating",
        "ratingValue": "5"
      }
    }
  ]
}
</script>

В этом примере показаны: базовая информация о товаре, характеристики через additionalProperty, детальная информация о предложении (цена, валюта, наличие, состояние, продавец, доставка), рейтинг и отзывы.

Тип Product — основной тип Schema.org для описания товара. Содержит название, описание, изображения, атрибуты (бренд, GTIN, SKU) и вложенные типы Offer, AggregateRating, Review.

Тип Offer — описание коммерческого предложения: цена, валюта, наличие, состояние, условия доставки, продавец.

Тип AggregateRating — сводный рейтинг товара на основе всех отзывов.

Тип Review — отдельный отзыв покупателя с автором, датой, текстом и оценкой.

Тип BreadcrumbList — навигационная цепочка (хлебные крошки), показывающая путь от главной страницы к текущему товару.

7. Вариативные товары (размер/цвет) — подходы

Есть два распространённых подхода для разметки товаров с вариантами (цвет, размер, материал):

  1. Один Product + массив offers — если все варианты на одной странице. Каждый Offer содержит свои цену, наличие и атрибуты варианта.
  2. Несколько Product — если у каждого варианта есть отдельная страница/URL.

Пример: Product с двумя Offer (разные цвета, одна страница):

Code: JSON-LD
<script type="application/ld+json">
{
  "@context": "https://schema.org",
  "@type": "Product",
  "name": "Футболка Classic",
  "image": ["https://site.com/img/tshirt-red.jpg"],
  "description": "Классическая футболка из хлопка",
  "sku": "TSHIRT-001",
  "brand": {"@type": "Brand", "name": "BrandCo"},
  "offers": [
    {
      "@type": "Offer",
      "sku": "TSHIRT-001-RED",
      "price": "599",
      "priceCurrency": "UAH",
      "availability": "https://schema.org/InStock",
      "itemCondition": "https://schema.org/NewCondition"
    },
    {
      "@type": "Offer",
      "sku": "TSHIRT-001-BLUE",
      "price": "599",
      "priceCurrency": "UAH",
      "availability": "https://schema.org/OutOfStock",
      "itemCondition": "https://schema.org/NewCondition"
    }
  ]
}
</script>

При использовании массива offers каждый элемент должен содержать свой @type ("Offer"), цену, валюту и статус наличия.

8. BreadcrumbList (хлебные крошки) — навигация

Хлебные крошки помогают поисковикам показать структуру сайта в сниппете и улучшают пользовательскую навигацию. Рекомендуется размещать BreadcrumbList на каждой странице товара вместе с Product.

Code: JSON-LD
<script type="application/ld+json">
{
  "@context": "https://schema.org",
  "@type": "BreadcrumbList",
  "itemListElement": [
    {
      "@type": "ListItem",
      "position": 1,
      "name": "Главная",
      "item": "https://site.com/"
    },
    {
      "@type": "ListItem",
      "position": 2,
      "name": "Категория: Браслеты",
      "item": "https://site.com/category/bracelets"
    },
    {
      "@type": "ListItem",
      "position": 3,
      "name": "Xiaomi Mi Band 7",
      "item": "https://site.com/product/mi-band-7/"
    }
  ]
}
</script>

Каждый элемент массива itemListElement — это объект типа ListItem с полями position (порядковый номер), name (название) и item (URL).

9. Рейтинг товаров (aggregateRating)

Рейтинг позволяет отображать среднюю оценку товара и количество отзывов в расширенном сниппете. Это повышает доверие пользователей и увеличивает CTR из поисковой выдачи.

Code: JSON-LD
<script type="application/ld+json">
{
  "@context": "https://schema.org",
  "@type": "Product",
  "name": "Wireless Headphones X100",
  "aggregateRating": {
    "@type": "AggregateRating",
    "ratingValue": "4.7",
    "reviewCount": "154"
  }
}
</script>

Рекомендация: ratingValue — число с десятичной точкой (например 4.7), reviewCount — целое число. Не указывайте фальшивые рейтинги — Google может наложить санкции.

Дополнительно можно указать bestRating (максимальная оценка, по умолчанию 5) и worstRating (минимальная оценка, по умолчанию 1).

10. Отзывы покупателей (review)

Отзывы позволяют подробно описывать мнение пользователей о товаре, включая автора, дату публикации, текст и оценку. Каждый отзыв — отдельный объект Review в массиве.

Code: JSON-LD
<script type="application/ld+json">
{
  "@context": "https://schema.org",
  "@type": "Product",
  "name": "Wireless Headphones X100",
  "review": [
    {
      "@type": "Review",
      "author": "Олена",
      "datePublished": "2025-05-10",
      "reviewBody": "Очень удобные наушники, отличный звук!",
      "reviewRating": {
        "@type": "Rating",
        "ratingValue": "5"
      }
    },
    {
      "@type": "Review",
      "author": "Ігор",
      "datePublished": "2025-05-12",
      "reviewBody": "Хорошие, но немного громоздкие.",
      "reviewRating": {
        "@type": "Rating",
        "ratingValue": "4"
      }
    }
  ]
}
</script>

Каждый отзыв включает автора (author), дату публикации (datePublished), текст (reviewBody) и рейтинг (reviewRating). Можно добавлять любое количество отзывов, но только реальные.

11. Инструменты проверки и валидации

  • Google Rich Results Test — быстро показывает ошибки и предупреждения для rich snippets. Позволяет проверить URL или вставить код вручную.
  • Schema.org Validator — детальная валидация схемы от консорциума Schema.org.
  • Google Search Console — в разделе «Улучшения» → «Товары» можно отслеживать ошибки после публикации.
  • Yandex Webmaster — аналогичный инструмент для проверки структурированных данных.

12. Best practices и рекомендации

  • Генерируйте JSON-LD на сервере из БД — цена, наличие, sku, изображения должны быть синхронизированы с контентом страницы.
  • Не используйте тестовые или фейковые данные в production.
  • Если показываете несколько цен (акции, скидки), используйте priceValidUntil и указывайте актуальную цену в offers.price.
  • Указывайте priceCurrency в формате ISO 4217 (UAH, USD, EUR, RUB).
  • Не создавайте конфликтную разметку — цена в JSON-LD должна совпадать с видимой ценой на странице.
  • Для международных магазинов указывайте локали, адрес продавца и shippingDetails.
  • Используйте BreadcrumbList и Product вместе — это улучшает навигацию в выдаче.
  • Добавляйте минимум одно изображение с корректным URL (доступным для индексации).
  • Регулярно проверяйте разметку через Google Rich Results Test и Search Console.
  • Подробнее об улучшении SEO сайта читайте в статье: Как улучшить SEO сайта — руководство.
  • Для настройки аналитики и отслеживания eCommerce используйте материал: Настройка GA4 и eCommerce аналитики.

13. Частые ошибки и как их исправить

  • Ошибка: price содержит символ валюты (2499 грн) — исправление: хранить и выводить только цифры, валюту указывать в priceCurrency.
  • Ошибка: отсутствие image или битая ссылка — исправление: добавить минимум 1 корректный доступный URL изображения.
  • Ошибка: несовпадающие URL — исправление: используйте URL именно текущей страницы товара в offers.url.
  • Ошибка: массив review или aggregateRating содержит фальшивые данные — исправление: показывайте только реальные отзывы и рейтинги.
  • Ошибка: неправильный формат availability — исправление: используйте полный URL вида https://schema.org/InStock.
  • Ошибка: дублирование разметки (несколько блоков JSON-LD с конфликтующими данными) — исправление: объедините всё в один блок.
  • Ошибка: отсутствие breadcrumb на страницах товаров — исправление: добавьте BreadcrumbList для улучшения навигации в выдаче.

14. Шаблон для динамической вставки (PHP/Twig/Smarty)

Ниже — шаблон, где переменные заменяются сервером. Подставляйте свои значения вместо %VAR%.

Code: JSON-LD (шаблон)
<script type="application/ld+json">
{
  "@context": "https://schema.org",
  "@type": "Product",
  "name": "%PRODUCT_NAME%",
  "image": [%IMAGE_LIST%],
  "description": "%SHORT_DESCRIPTION%",
  "sku": "%SKU%",
  "brand": {"@type": "Brand", "name": "%BRAND%"},
  "offers": {
    "@type": "Offer",
    "url": "%PRODUCT_URL%",
    "priceCurrency": "%CURRENCY%",
    "price": "%PRICE%",
    "priceValidUntil": "%PRICE_VALID_UNTIL%",
    "availability": "%AVAILABILITY%"
  }
}
</script>
Важно для пользователей BooStore.pro: Платформа BooStore.pro уже содержит корректную базовую микроразметку (Product, Offer, Price, Availability, BreadcrumbList, ImageObject). Обычно достаточно расширять её дополнительными полями (gtin, mpn, brand) при необходимости. На платформе автоматически включены разметка рейтинга (aggregateRating) и отзывы (review), что позволяет показывать среднюю оценку и реальные отзывы пользователей в расширенных сниппетах.

❓ Часто задаваемые вопросы (FAQ)

Что такое Schema.org и какую пользу это даёт интернет-магазину?

Schema.org — это словарь структурированных данных, поддерживаемый Google, Yandex, Bing и Yahoo. Разметка помогает поисковикам понимать содержание страниц и отображать расширенные сниппеты (цена, наличие, рейтинг, отзывы). Это повышает CTR из поиска и улучшает видимость товаров.

Какой формат разметки лучше всего использовать?

Google рекомендует JSON-LD. Он не влияет на вёрстку, легко генерируется сервером, поддерживает все типы Schema.org и не конфликтует с HTML-разметкой. Microdata и RDFa считаются устаревшими подходами для новых проектов.

Обязательно ли добавлять все поля из гайда?

Нет. Для корректного расширенного сниппета достаточно обязательного минимума: name, image, description, offers.price, offers.priceCurrency, offers.availability, offers.url. Все остальные поля — рекомендательные и расширяют возможности отображения.

Можно ли использовать Schema.org для товаров с вариантами (цвет, размер)?

Да. Если варианты на одной странице — используйте массив offers. Если на разных — создайте отдельный Product для каждого варианта. В обоих случаях Google корректно обрабатывает разметку.

Как проверить, правильно ли работает разметка на моём сайте?

Используйте Google Rich Results Test (search.google.com/test/rich-results) — вставьте URL или код разметки. После публикации отслеживайте ошибки в Google Search Console в разделе «Улучшения» → «Товары».

Нужно ли добавлять разметку вручную, если сайт на BooStore.pro?

Нет. BooStore.pro уже содержит всю базовую микроразметку (Product, Offer, Price, Availability, BreadcrumbList, ImageObject, AggregateRating, Review). Дополнительные поля (GTIN, MPN, brand) можно добавить при необходимости через настройки платформы.



Создал интернет-магазин. Что делать дальше? 10 шагов для роста продаж
Украинский Shopify: где создать интернет-магазин в Украине — сравнение платформ 2026
Руководство по созданию llms.txt для сайта. SEO для ИИ.