Микроразметка Битрикс: ProductGroup, JSON-LD и проверка без дублей

Микроразметка Битрикс: ProductGroup, JSON-LD и проверка без дублей

После SEO-аудита в Rich Results Test висит "0 items detected" — типичная ошибка после установки второго модуля Schema.org без аудита. На карточке с размерами Яндекс не показывает цену, а во View Source проблема дублей: два BreadcrumbList из шаблона и Marketplace. На 1С-Битрикс: Управление сайтом микроразметка - JSON-LD в header.php и шаблонах компонентов. Ниже проведете аудит, настроите ProductGroup для SKU, закроете требования Яндекса по brand и availability и проверите разметку без дублей Microdata.

Микроразметка Schema.org на сайте 1С-Битрикс: Управление сайтом - это структурированные данные, преимущественно JSON-LD, которые выводятся из шаблонов компонентов CMS и сообщают поисковикам тип сущности страницы: Organization, Product, ProductGroup, FAQPage, BreadcrumbList и другие. Сегодня откройте View Source на главной и карточке товара, выпишите все application/ld+json и itemscope, уберите дубли и добавьте ProductGroup с hasVariant там, где есть торговые предложения.

Речь про CMS 1С-Битрикс на вашем хостинге, а не про Bitrix24 без доступа к header.php. После базового SEO на Битрикс микроразметка дает роботу структуру: "это товар", "это организация", "это FAQ".

Что такое микроразметка Schema.org на Битрикс

Schema.org - словарь типов для роботов. JSON-LD - запись в script без правки HTML. Microdata - те же типы через itemscope в верстке. Google рекомендует JSON-LD; один тип в двух форматах = дубль.

Нужна для магазина, блога, FAQ, корпоративного сайта. Можно отложить на одностраничнике - хватит Organization на главной. Для SKU одного Product мало: нужен ProductGroup с hasVariant.

Компонент Тип Schema.org Файл
header.php Organization, WebSite header.php / Asset::addString
bitrix:breadcrumb BreadcrumbList template.php
catalog.element (SKU) ProductGroup + hasVariant template.php / epilog
news.detail BlogPosting template.php
FAQ-страница FAQPage массив вопросов

Проведите аудит текущей разметки перед правками

Аудит микроразметки: Schema Validator UI и чеклист перед правками на Битрикс
  1. View Source на главной, товаре с SKU, статье - найдите application/ld+json, itemscope, og:.
  2. Один тип Schema.org не должен быть и в JSON-LD, и в Microdata.
  3. Лишняя запятая в JSON = "0 items" в валидаторе.
  4. Два SEO-модуля - оставьте один источник на тип.
  5. Сбросьте кеш компонента и снова проверьте View Source.

Делайте: таблица "URL - типы - источник". Не делайте: второй модуль без аудита.

Выберите JSON-LD вместо Microdata на Битрикс

Сравнение JSON-LD и Microdata для сайта на 1С-Битрикс

Google Search Central рекомендует JSON-LD: проще править в template.php. Microdata на Битрикс почти всегда конфликтует с модулями Marketplace.

Критерий JSON-LD Microdata
Динамика из $arResult Удобно в catalog.element Дублирует поля в HTML
ProductGroup для SKU Официальная модель Google Громоздко на десятках Offer
Риск дубля с модулем Низкий после аудита Высокий

Настройте ProductGroup с hasVariant для торговых предложений

Несколько SKU (размер, цвет) требуют ProductGroup с hasVariant и AggregateOffer (lowPrice, highPrice). Данные из $arResult['OFFERS'] в catalog.element - тот же массив, что кнопка "В корзину". Верстку карточки смотрите в гайде по карточке товара.

use Bitrix\Main\Web\Json;
$variants = [];
foreach ($arResult['OFFERS'] as $offer) {
    $variants[] = [
        '@type' => 'Product',
        'sku' => $offer['ID'],
        'offers' => [
            '@type' => 'Offer',
            'price' => $offer['MIN_PRICE']['VALUE'],
            'priceCurrency' => 'RUB',
            'availability' => $offer['CAN_BUY']
                ? 'https://schema.org/InStock' : 'https://schema.org/OutOfStock',
        ],
    ];
}
$schema = [
    '@type' => 'ProductGroup',
    'name' => $arResult['NAME'],
    'hasVariant' => $variants,
    'offers' => [
        '@type' => 'AggregateOffer',
        'lowPrice' => $arResult['MIN_PRICE'],
        'highPrice' => $arResult['MAX_PRICE'],
        'priceCurrency' => 'RUB',
    ],
];
echo '<script type="application/ld+json">'
    . Json::encode($schema, JSON_UNESCAPED_UNICODE) . '</script>';

Делайте: кодируйте через Bitrix\Main\Web\Json::encode. Не делайте: склейку JSON вручную без экранирования.

Заполните обязательные поля для товарных сниппетов Яндекса

В 2026 Яндекс усилил контроль: раздел Товары - Микроразметка в Вебмастере. По справке Яндекс Товаров обязательны name, brand, image, price/lowPrice, priceCurrency (RUB), availability по остаткам.

  1. Сопоставьте ошибку в Вебмастере со свойством инфоблока.
  2. brand - из свойства BRAND или производителя.
  3. image - абсолютный URL с https://.
  4. Прогоните URL в валидаторе Яндекса.

Делайте: синхронизируйте availability с остатками. Не делайте: InStock при нулевом остатке.

Сравните модули Marketplace и ручной JSON-LD

Решение Закрывает Когда брать
sotbit.schemaorg Organization, Product, BreadcrumbList Быстрый старт без правки шаблонов
mrlexndr.microdata JSON-LD + OG, AggregateOffer Каталог с SKU, API Schema::product
INRAISE Organization Organization без кода Визитка, только контакты
Ручной JSON-LD ProductGroup, кастомные поля Полный контроль каталога
Итоговый вердикт: модуль берите, если в шаблоне чисто и нет ProductGroup. Для каталога с размерами и цветами ручной JSON-LD в catalog.element надежнее: вы контролируете hasVariant и не зависите от обновлений модуля.

Делайте: ProductGroup с кастомными variesBy - ручной код. Не делайте: два модуля Schema.org сразу.

Выберите паттерн вывода JSON-LD на D7

Паттерн Где Зачем
SetViewTarget('schema_json_ld') catalog.element template.php Блок в layout через ShowViewContent
Json::encode Любой PHP с массивом Безопасные кавычки и кириллица
Asset::getInstance()->addString() header.php Organization один раз на сайт

Legacy-аналог: $APPLICATION->AddHeadString() или SetPageProperty. На практике workflow выглядит так: аудит View Source → сбор массива в template.php → Json::encode → вывод через SetViewTarget или Asset → проверка в Rich Results Test и microtest Яндекса.

Настройте Organization, WebSite и отделите Open Graph

Workflow: Organization, WebSite, BreadcrumbList и отдельный слой Open Graph на Битрикс

Organization и WebSite - один раз в header.php через Asset::addString: name, url, logo. WebSite дополните SearchAction, если на сайте есть поиск. BreadcrumbList - в bitrix:breadcrumb из $arResult: минимум два ListItem с position, name и item. URL в JSON-LD совпадают с видимыми ссылками, иначе Google отклонит разметку.

FAQPage: с 07.05.2026 Google снял FAQ rich results, но тип валиден для Яндекс Нейро и AI-краулеров. Текст в JSON-LD = видимый FAQ на странице. Не обещайте аккордеон в Google как KPI 2026.

Open Graph (og:title, og:image) - отдельный слой для Telegram и VK. Schema.org в JSON-LD для поиска. OG через dev2fun.opengraph или SetPageProperty; og:image от 1200 px.

Делайте: один массив FAQ для HTML и JSON-LD. Не делайте: считайте og:description заменой Product.

Проверьте разметку в Rich Results Test и Яндекс.Вебмастере

  1. Rich Results Test - главная, товар с SKU, FAQ.
  2. validator.schema.org - сырой JSON.
  3. Валидатор Яндекса - Product и AggregateOffer.
  4. View Source после сброса кеша; раздел Товары - Микроразметка без ошибок brand/image.

Итог для владельца: на ключевых URL валидный JSON-LD без дублей, ProductGroup на SKU, brand и availability закрыты для Яндекса, OG работает в мессенджерах. Динамику сниппетов отслеживайте через Яндекс.Метрику. Нет времени на шаблоны - обсудите аудит; примеры - в портфолио.

Автор: Максим Мольков, разработчик 1С-Битрикс.
Источники: Google (ProductGroup), Яндекс Товары, dev.1c-bitrix.ru.

Частые вопросы

Как добавить микроразметку на Битрикс?

JSON-LD в header.php для Organization, в template.php компонентов - для BreadcrumbList, ProductGroup, BlogPosting и FAQPage. Данные из $arResult, кодировка через Bitrix\Main\Web\Json::encode. Сначала аудит View Source и удаление дублей Microdata.

Какая микроразметка нужна для товаров в Яндексе?

Product или ProductGroup с Offer/AggregateOffer: name, brand, image, price, priceCurrency (RUB), availability. Для SKU - ProductGroup с hasVariant, не один Product с одной ценой.

Нужна ли FAQPage в 2026 году?

Google снял FAQ rich results с 07.05.2026. FAQPage полезен для Яндекс Нейро и AI-краулеров при совпадении текста с видимым блоком. Не ставьте FAQ-сниппет Google как главный KPI.

Модуль Marketplace или ручной JSON-LD?

Модуль (sotbit.schemaorg, mrlexndr.microdata) - быстрый старт без своей разметки. Ручной код - ProductGroup и кастомные поля. Два модуля Schema.org часто дают дубль BreadcrumbList.

Как проверить микроразметку schema org?

Rich Results Test, validator.schema.org, webmaster.yandex.ru/tools/microtest/. При "0 items" скопируйте JSON из View Source в validator.schema.org и сбросьте кеш компонента.

Как вывести JSON-LD через SetViewTarget?

В template.php: SetViewTarget('schema_json_ld'), массив ProductGroup, script с Json::encode, EndViewTarget(). В layout: ShowViewContent('schema_json_ld'). Для глобальных типов - Asset::getInstance()->addString() в header.php.

Почему Rich Results Test показывает 0 items?

Сломан JSON, кеш не сброшен или script внутри условия if. Используйте Json::encode вместо ручной склейки строк, проверьте View Source после очистки кеша.

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

Интеграции с 1С и API
1074 6 мин.

Как настроить регистрацию и личный кабинет покупателя на 1С-Битрикс?

Пошаговая настройка регистрации на сайте битрикс: Главный модуль, main.register, system.auth.form и sale.personal.section с историей заказов и 152-ФЗ.
Интеграции с 1С и API
941 6 мин.

Как настроить скидки и промокоды на 1С-Битрикс: правила корзины и купоны

Пошаговый гайд по скидкам в CMS-магазине: скидка на товар, правило корзины от суммы, купоны с лимитом, приоритеты без конфликтов и тестовый заказ. Не Bitrix24.
Интеграции с 1С и API
757 15 мин.

Что такое компонент в Битриксе и как он работает

Каждый разработчик, впервые столкнувшийся с Битриксом, проходит через своеобразный обряд посвящения. Вначале кажется, что это просто CMS, где можно поправить HTML в визуальном редакторе или дописать пару строк CSS. Но однажды наступает момент, когда нужно изменить логику вывода новостей, отфильтровать товары по хитрому свойству или добавить на страницу нечто совершенно новое. И тут он впервые слышит это слово — «компонент». Для многих этот момент становится стеной. Система, казавшаяся понятной, вдруг превращается в черный ящик, полный непонятных файлов и странных переменных. Но стоит лишь раз заглянуть под капот, как эта стена рассыпается, превращаясь в набор удивительно логичных и мощных строительных блоков. Понимание компонентов — это тот самый щелчок, после которого разработка на Битрикс из мучения превращается в творчество.

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

Интеграции с 1С и API
717 2 мин.

Установка Composer в 1С-Битрикс

Установка Composer в проекте на 1С-Битрикс требует учета особенностей платформы, чтобы обеспечить корректную работу и интеграцию с системой.