JSON-LD Product: цена и валюта, понятные ИИ
Обновлено 2026-08-03
Зачем ИИ-агенту structured data
Покупатель спрашивает у ChatGPT или Perplexity: «сколько стоит эта модель и есть ли она в наличии». Чтобы ответить, модель должна назвать конкретную цену, валюту и статус наличия. На обычной HTML-странице цена может лежать где угодно и в любом виде — «1 299 lei», «1299», «от 999». Агент не обязан угадывать, и если данные читаются плохо — он просто пропустит ваш товар.
JSON-LD Product — это машинный блок, где магазин прямо заявляет: цена такая-то, валюта такая-то, наличие такое-то. Агент читает его и уверенно называет цифру, а ваш товар попадает в ответ вместо соседнего.
Это категория product — 30% AI-readiness скора, самый тяжёлый вес из пяти. По рейтингу 63 магазинов Молдовы и Румынии медиана — 38 из 100, и слабые данные товара — одна из главных причин низких баллов.
ИИ-боты уже читают карточки товаров массово: по индексу AI-трафика за две недели по панели из трёх магазинов набралось около 1 005 146 обращений ботов, а самый читаемый товар собрал 73 715 запросов. Вопрос не в том, дойдут ли агенты до страницы товара, а в том, смогут ли они назвать вашу цену, когда дойдут.
Как выглядит минимальная разметка
Блок кладут в <head> или <body> каждой страницы товара:
<script type="application/ld+json">
{
"@context": "https://schema.org",
"@type": "Product",
"name": "Кроссовки Example Runner",
"image": "https://primer.md/img/runner.jpg",
"sku": "RUN-42",
"offers": {
"@type": "Offer",
"price": "1299.00",
"priceCurrency": "MDL",
"availability": "https://schema.org/InStock"
}
}
</script>
Всё решают три поля внутри offers. Разберём их.
Три поля, которые называют цену
| Поле | Что писать | Пример |
|---|---|---|
price | число без символа валюты и без пробелов, точка-разделитель | "1299.00" |
priceCurrency | код валюты ISO 4217 отдельным полем | "MDL", "RON", "EUR" |
availability | URL schema.org, не текст | "https://schema.org/InStock" |
price — это только число. priceCurrency — валюта отдельно: MDL для Молдовы, RON для Румынии. Без валюты «1299» бессмысленно — 1299 чего? availability — статус ссылкой на словарь, InStock или OutOfStock, и по нему агент решает, стоит ли вообще советовать товар.
Частые ошибки
- Нет валюты.
priceесть,priceCurrencyнет. Модель видит число без единицы измерения — либо пропускает цену, либо угадывает валюту и рискует показать покупателю не ту сумму. - Наличие строкой.
"availability": "в наличии"вместо URLhttps://schema.org/InStock. Свободный текст модель не разбирает — нужен код словаря. - Цена не в разметке. Цена нарисована картинкой или дорисовывается JS после загрузки. Краулер, не исполняющий JavaScript, видит пустое место. Цена обязана быть в JSON-LD текстом.
- Цена в разметке ≠ цена на странице. Rich Results Test и модели сверяют одно с другим. Расхождение — это недоверие, а в худшем случае Google пометит разметку как некорректную.
- Одна цена на все варианты. У размеров и цветов цена разная, а в разметке одна статичная. Используйте варианты (
hasVariant) или диапазон, иначе агент назовёт цену не того варианта.
Как проверить
- Откройте страницу товара, посмотрите исходный код (
Ctrl+U) и найдитеapplication/ld+json— блок должен присутствовать как текст. - Вставьте URL в Google Rich Results Test — он покажет, распознан ли
Productи какие поля прочитаны. - Запустите бесплатный аудит Botmetria по домену. Он проверяет JSON-LD Product по всему каталогу — есть ли
price,priceCurrency,availabilityи корректны ли они — и показывает балл категории product (30% скора). Полоса скора:>70зелёная,41–70жёлтая,≤40красная.
Если у вас WooCommerce, плагин Botmetria отдаёт корректный JSON-LD Product с ценой, валютой и наличием сам, подтягивая данные из карточки товара, — тему руками править не нужно.
Дальше по теме — гайд про llms.txt для магазина: ещё один способ помочь ИИ понять ваш каталог.
Частые вопросы
Нужен ли JSON-LD, если цена и так видна на странице?
Человек видит цену глазами, а ИИ-агент и краулер — нет, особенно если она нарисована картинкой или дорисована JS. JSON-LD даёт цену, валюту и наличие текстом, в одном месте и в машинном виде, поэтому агент называет их уверенно, а не угадывает.
Какой код валюты ставить для Молдовы и Румынии?
Молдова — MDL, Румыния — RON, если торгуете в евро — EUR. Это коды ISO 4217, и priceCurrency должно быть именно кодом, а не символом «лей» или «€».
Влияет ли JSON-LD Product на скор Botmetria?
Да, напрямую. Это категория product — 30% AI-readiness скора, самый большой вес. Корректные price, priceCurrency и availability по каталогу поднимают этот балл; их отсутствие — одна из главных причин, почему медиана по 63 магазинам всего 38 из 100.
WooCommerce сам добавляет разметку?
Стандартный WooCommerce отдаёт её не всегда полно, а плагин Botmetria автоматически формирует корректный JSON-LD Product с ценой, валютой и наличием из карточки товара — тему руками править не нужно.
Связанные гайды
- ChatGPT говорит «нет в наличии», а товар есть
- ChatGPT показывает старые цены: почему и как исправить
Проверьте магазин бесплатно
Аудит за 60 секунд покажет, насколько магазин готов к ИИ-агентам — и что чинить первым.