В карточке товара цена уже 12 900 ₽, а в JSON-LD осталось 11 900 ₽. JSON-LD — структурированные данные о товаре, записанные в HTML для поисковых систем. Для покупателя видимая цена правильная, но разметка сообщает поисковой системе другое. Обычно это связано с отдельным генератором разметки, старым кешем или тем, что в JSON-LD попали данные другого варианта товара.
Начните с конкретного товара: сохраните URL, артикул, выбранный вариант, цену и наличие для посетителя без входа. Затем найдите соответствующий ему объект Product (товар) и Offer (предложение о продаже) в разметке. Сравнивать первую найденную цифру со всей страницей нельзя: рядом может быть рекомендованный товар или другая комплектация.
Сведите данные одного товара в таблицу
Допустим, после импорта каталога обнаружилось следующее:
| Артикул | Данные каталога | Видимая карточка | JSON-LD |
|---|---|---|---|
| A-101 | 12 900 ₽ | 12 900 ₽ | 11 900 ₽ |
| A-102 | Нет в наличии | Нет в наличии | InStock |
| A-103 | Акция: 6 000 ₽ | 6 000 ₽ | 7 000 ₽ |
Так видно, что проблема не только в цене. Для A-102 поисковой системе отправляется неверное наличие. Добавьте к таблице время проверки: цены могли измениться между открытием карточки и чтением старого файла.
Уточните, какую цену сайт показывает всем, а какую — только авторизованному покупателю, оптовику или участнику программы. Не переносите персональную цену в публичную разметку без проверки правил страницы и выбранного типа предложения.
Прочитайте все блоки JSON-LD
JSON-LD обычно находится в script с типом application/ld+json. Его может выводить и шаблон, и SEO-плагин. В консоли браузера можно прочитать каждый блок отдельно:
[...document.querySelectorAll('script[type="application/ld+json"]')]
.map((node, index) => {
try {
return { index, data: JSON.parse(node.textContent) };
} catch (error) {
return { index, error: error.message };
}
});Ошибка одного блока не остановит чтение остальных. Найдите нужный Product, в том числе внутри @graph, и сопоставьте его sku, URL и offers. Если данные создаёт JavaScript, проверьте и исходный HTML, и результат после загрузки страницы.
Исправьте место, из которого берётся значение
Попросите разработчика выяснить, почему карточка и разметка читают разные данные. Например, карточка берёт актуальную акционную цену, а JSON-LD — обычную цену из отдельного поля. Правильное исправление должно учитывать начало и окончание акции, а не только сегодняшний товар.
Если виноват кеш, проверьте его обновление после обычного импорта. Однократная ручная очистка помогает увидеть новый результат, но не исправляет повторение проблемы на следующий день. Для наличия нужна та же проверка после изменения остатка.
Фрагмент предложения для A-101 может выглядеть так:
{
"@type": "Offer",
"url": "https://shop.example/product/a-101/",
"price": "12900.00",
"priceCurrency": "RUB",
"availability": "https://schema.org/InStock"
}Это только Offer, а не готовая полная разметка товара. Нужные поля зависят от типа результата; ориентируйтесь на документацию Google для Product. Цифры здесь — пример, их нельзя копировать в реальную карточку без замены.
Проверьте изменения на разных товарах
Выберите обычный товар, акционный, отсутствующий и товар с вариантами. Для каждого сравните публичную карточку и относящееся к ней предложение. Отдельно поменяйте вариант: цена и наличие могут измениться, поэтому проверка одной первоначальной загрузки недостаточна.
Затем повторите импорт или штатное изменение в CMS и убедитесь, что расхождение не вернулось. Проверьте, не оставил ли второй плагин старый Product рядом с исправленным.
Чем завершить проверку
Откройте Rich Results Test Google, вставьте публичный URL товара и запустите проверку. В найденных данных товара посмотрите ошибки и предложения Offer. Тест проверяет разметку, но не знает вашу реальную цену: вернитесь к таблице и подтвердите значения. Для разработчика итогом будут исправленный источник данных и несколько проверенных карточек.
Типовые проблемы описаны в разборе ошибок Schema.org, устройство разметки — в руководстве по структурированным данным. После обновления шаблона запустите технический аудит, чтобы проверить страницы вместе с другими изменениями.