← Гайды

ChatGPT показывает старые цены: почему и как исправить

Почему ChatGPT называет старую цену

ChatGPT, Perplexity, Gemini и Copilot не открывают ваш магазин заново при каждом ответе. Они опираются на снимок, который их краулеры — GPTBot, OAI-SearchBot, PerplexityBot — собрали раньше и сохранили. Пока свежая цена не попала в этот снимок, ассистент уверенно называет вчерашнюю цифру.

Это не косметика. Данные товара — цена, валюта, наличие — самая весомая категория AI-готовности: 30% скора. По нашему рейтингу 63 магазинов Молдовы и Румынии медианный скор всего 38/100, и «разъехавшаяся» между источниками цена — одна из типовых причин потерь.

Три места, где прячется устаревшая цена

JSON-LD, который не совпадает с витриной

ИИ-агент берёт цену не из визуального ценника, а из разметки schema.org/Product:

{
  "@type": "Product",
  "offers": {
    "@type": "Offer",
    "price": "449.00",
    "priceCurrency": "MDL",
    "availability": "https://schema.org/InStock"
  }
}

Классическая беда: в HTML вы показываете 449 после скидки, а в offers.price осталось старое 499. Модель верит разметке — и озвучивает 499. Расхождение между HTML и JSON-LD — проблема номер один.

Товарный фид, который обновляется по расписанию

Если цену читают из выгрузки (фида), а он пересобирается раз в сутки, между переоценкой и обновлением фида есть окно, в котором наружу торчит старая цена. Чем длиннее это окно, тем дольше ассистент повторяет неактуальную цифру.

Кэш — ваш и чужой

CDN, страничный кэш плагина, кэш на стороне самого бота. Даже правильный JSON-LD не спасёт, если посетителю и краулеру отдаётся вчерашняя закэшированная HTML-страница с длинным max-age.

Как обеспечить свежесть цены

  1. Один источник правды. Цена в offers.price должна формироваться из той же переменной, что и ценник на витрине, а не прописываться в шаблоне разметки руками. Woo-плагин Botmetria отдаёт JSON-LD из актуальной цены товара автоматически, поэтому HTML и разметка не расходятся. Подробнее — в гайде про JSON-LD Product.
  2. Синхронизируйте валюту и наличие. priceCurrencyMDL или RON, availabilityInStock/OutOfStock строго по факту склада. Цена без валюты или с устаревшим наличием ломает ответ ассистента так же, как неверная сумма.
  3. Сократите окно фида. Обновляйте выгрузку сразу после переоценки, а не «ночным» кроном. Идеально — событийно, по факту смены цены.
  4. Уберите устаревший кэш. При изменении цены инвалидируйте страничный кэш и CDN для этого URL. Убедитесь, что боту не отдаётся старый снапшот.
  5. Держите свежим markdown-твин. Чистая text/markdown-версия карточки — это 20% скора и всё чаще основной способ, которым агент читает товар. Твин должен собираться из той же цены, а не быть отдельной статикой, которую забыли обновить. См. Markdown для агентов.

Как проверить

Частые ошибки

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

Почему ChatGPT показывает цену, которой уже нет на сайте?

Ассистент отвечает по снимку, который его краулер собрал раньше. Пока новая цена не попала в JSON-LD и фид, а старый кэш не сброшен, модель называет прежнюю цифру.

Почему в HTML одна цена, а ChatGPT называет другую?

ИИ читает `offers.price` из разметки schema.org/Product, а не визуальный ценник. Если после скидки обновили только HTML, а не JSON-LD, агент возьмёт старое значение из разметки.

Как быстро ChatGPT подхватит новую цену?

Это зависит от того, когда краулер вернётся и пересоберёт снимок. Ускоряют процесс единый источник цены в JSON-LD, событийное обновление фида и сброс кэша сразу после переоценки.

Связанные гайды

Проверьте магазин бесплатно

Аудит за 60 секунд покажет, насколько магазин готов к ИИ-агентам — и что чинить первым.

Запустить бесплатный аудит