Что нужно знать
Для одной цены поместите price и priceCurrency внутрь Offer в Product.offers. AggregateOffer используйте только при реальном диапазоне или нескольких предложениях одного товара. В price не добавляйте символ валюты.
Цена товара в Schema.org обычно строится как Product → offers → Offer. Offer.price содержит числовую цену, Offer.priceCurrency — код ISO 4217. AggregateOffer использует lowPrice/highPrice и при необходимости offerCount.
Ключевые свойства
Ниже — практический минимум и свойства, которые чаще всего влияют на корректность сущности. Заполняйте только те значения, которые реально подтверждаются страницей.
| Свойство | Важность | Как использовать |
|---|---|---|
price | Offer | Числовая цена без символа валюты. |
priceCurrency | Настоятельно рекомендуется | Трехбуквенный ISO 4217 код. |
lowPrice / highPrice | AggregateOffer | Реальный минимум и максимум. |
offerCount | AggregateOffer | Количество предложений. |
priceValidUntil | Опционально | Только реальная дата окончания цены. |
availability | Рекомендуется | Текущее наличие ItemAvailability. |
Цена относится к Offer
В товарной модели Schema.org цена обычно находится в Offer или AggregateOffer, потому что описывает коммерческое предложение.
Формат price
Используйте число вроде 1299.00. Символ валюты не нужен; валюта указывается в priceCurrency.
Offer или AggregateOffer
Offer подходит для одной актуальной цены. AggregateOffer — только для реального диапазона или нескольких предложений того же товара.
Скидки
Не создавайте фиктивную старую цену или скидку только ради JSON-LD. Разметка должна отражать активную видимую цену.
Несколько валют
Структурированное предложение должно описывать валюту, реально показанную на конкретном URL.
Актуальность
priceValidUntil используйте только при реальной дате окончания. Для динамических каталогов важнее свежие price и availability.
Проверка
Сверьте товар, URL, цену, валюту и наличие между Product, Offer и видимой страницей.
JSON-LD примеры
Одна цена через Offer
Для одного актуального предложения.
{
"@context": "https://schema.org",
"@type": "Product",
"name": "Wireless Headphones X2",
"offers": {
"@type": "Offer",
"url": "https://example.com/headphones-x2/",
"price": "149.99",
"priceCurrency": "USD",
"availability": "https://schema.org/InStock"
}
}Диапазон через AggregateOffer
Только для реального диапазона одного товара.
{
"@context": "https://schema.org",
"@type": "Product",
"name": "Conference Room Display",
"offers": {
"@type": "AggregateOffer",
"lowPrice": "999.00",
"highPrice": "1299.00",
"priceCurrency": "USD",
"offerCount": 3
}
}Google, Bing и Яндекс
Google поддерживает Offer и AggregateOffer; priceCurrency рекомендуется для product snippets и требуется для merchant listings.
Bing поддерживает Schema.org JSON-LD и может использовать Product/Offer для понимания коммерческой сущности.
Яндекс распознаёт price у Offer и lowPrice у AggregateOffer вместе с priceCurrency.
Важно: корректная микроразметка не гарантирует расширенный результат. Поисковая система сама решает, использовать ли данные и как их отображать.
Типичные ошибки
- warningВ price записан символ валюты.
- warningНет priceCurrency.
- warningAggregateOffer объединяет разные товары.
- warningПросрочен priceValidUntil.
- warningЦена JSON-LD отличается от видимой.
Частые вопросы
Есть отдельный тип Price?
Для товарной разметки price обычно является свойством Offer или PriceSpecification.
Нужен символ валюты?
Нет. Валюта передаётся отдельно в priceCurrency.
Когда использовать AggregateOffer?
Когда один товар действительно представлен несколькими предложениями или диапазоном цен.