Исправление ошибки priceValidUntil в Rank Math: как привести микроразметку Offer к стандарту schema.org и ISO 8601

Почему микроразметка так важна для SEO

Для современных интернет-магазинов микроразметка Product и Offer уже не “приятный бонус”, а обязательный элемент SEO-оптимизации. Богатые сниппеты с ценой, наличием и рейтингами напрямую влияют на кликабельность и конверсии из органического поиска. Поисковые системы считывают структурированные данные и используют их, чтобы показать вашему товару более заметный сниппет в выдаче. Чем аккуратнее отработана разметка, тем меньше предупреждений и тем выше шанс получить корректный rich result.

Проблема: ошибка в поле priceValidUntil в Rank Math

При проверке микроразметки Product/Offer, которую генерирует Rank Math (в связке, например, с Easy Digital Downloads), часто всплывает предупреждение:

«Дата или время в поле «priceValidUntil» указаны не в формате ISO 8601 (необязательно)».

Это значит, что поле priceValidUntil, отвечающее за срок действия цены, формируется в формате, который не соответствует строгим требованиям ISO 8601. Визуально дата может выглядеть “нормально”, но валидатор Google Structured Data или Rich Results Testing Tool всё равно помечает её жёлтым предупреждением. Для перфекционистов и тех, кто стремится к идеально чистой разметке, такой статус — повод разобраться и исправить.

Исправление ошибки priceValidUntil в Rank Math: как привести микроразметку Offer к стандарту schema.org и ISO 8601 | 1

Что такое priceValidUntil и что от него хочет schema.org

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

К этому полю предъявляются два ключевых требования:

  • Дата должна быть указана в формате ISO 8601 — например, 2026-12-31 или с точным временем и таймзоной вроде 2026-12-31T23:59:59+00:00.
  • Формат должен быть машинно читаемым и однозначным, без завязки на локальные форматы вида 31.12.2026 или 31/12/26.

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

Почему Rank Math выдаёт неправильную дату

В некоторых конфигурациях Rank Math при работе с товарами EDD дата для priceValidUntil генерируется через функцию date(), которая опирается на локальный часовой пояс и настройки сервера. В результате:

  • Формат может отличаться от строгого ISO 8601
  • В итоговую строку могут “просачиваться” особенности локали или форматирования
  • Валидатор structured data воспринимает это как некорректную дату и возвращает предупреждение

Несмотря на то что Rank Math — один из самых удобных SEO-плагинов для WordPress, подобные нюансы периодически всплывают в реальных проектах, особенно когда дело касается интеграции с другими плагинами (в нашем случае — Easy Digital Downloads).

Решение: замена date() на gmdate() в class-product-edd.php

На практике исправление ошибки с priceValidUntil оказалось максимально простым и точечным. Нужны две маленькие правки в коде Rank Math, конкретно в файле, отвечающем за генерацию схемы для EDD-продуктов: class-product-edd.php.

Что было сделано:

  • В файле class-product-edd.php функция date() заменена на gmdate() в двух местах:
    • Строка 56 — генерация даты для вариаций товара
    • Строка 74 — генерация даты для одиночного Offer
  • Формат даты оставлен ISO-совместимым (Y-m-d или другой корректный шаблон, соответствующий ISO 8601)

Функция gmdate() возвращает дату/время в формате UTC, без привязки к локальному часовому поясу сервера. Это помогает избежать “шума” и получить чистую, предсказуемую строку даты, которая соответствует ожиданиям валидаторов.

Как это влияет на проверку микроразметки

После внесения этих двух правок в class-product-edd.php ситуация меняется радикально:

  • Предупреждение вида «Дата или время в поле «priceValidUntil» указаны не в формате ISO 8601 (необязательно)» исчезает
  • Валидатор структурированных данных начинает воспринимать поле priceValidUntil как корректное
  • Разметка Product/Offer проходит проверку без замечаний, и ваш сниппет получает шанс отображаться максимально полноценно

На практике это означает, что ваша SEO-разметка становится ближе к “идеалу”: меньше жёлтых предупреждений, больше доверия к данным со стороны поисковиков, более чистый технический профиль сайта.

Кому пригодится это решение

Такой фикс будет полезен:

  • Владельцам интернет-магазинов на WordPress, использующим Rank Math и Easy Digital Downloads
  • SEO-специалистам, которые доводят разметку до состояния “без единого предупреждения”
  • Разработчикам и интеграторам, поддерживающим клиентские проекты и отвечающим за техническое SEO
  • Маркетологам, которые хотят, чтобы товары корректно отображались в Google с актуальной ценой и сроком действия оффера

Если в ваших проектах валидатор регулярно ругается на поле priceValidUntil, а микроразметка генерируется именно через Rank Math, этот подход даёт быстрый и надёжный способ устранить проблему.

Итоги и выводы

Всего две строковые правки в class-product-edd.php — замена date() на gmdate() — решают навязчивое предупреждение по priceValidUntil и приводят микроразметку Offer к стандарту schema.org и ISO 8601. Это хороший пример того, как небольшое техническое улучшение повышает качество SEO-разметки и делает сайт более “понятным” для поисковых систем.

Если вашему бизнесу нужен сайт с аккуратно продуманной микроразметкой, корректной интеграцией Rank Math, быстрым временем отклика и фокусом на конверсию, команда ApexWeb поможет реализовать это на практике — от технической оптимизации до комплексного SEO-сопровождения.

Наверх