Фраза «цену на сайт поставить нельзя» почти всегда означает одно из трёх разных утверждений: числа не существует до расчёта, число есть, но публиковать его запрещено, или число есть и публиковать можно, но страшно. Это три разные задачи, и решаются они по-разному. Разбираем, когда цены на странице действительно не может быть, чем её заменяют — вилкой, ценой за единицу, диапазоном реализованных проектов, калькулятором, — что именно ломается в поиске, пока на странице стоит «цена по запросу», и как размечать предложение без фиксированной цены: через PriceSpecification с диапазоном, UnitPriceSpecification с единицей измерения и AggregateOffer с lowPrice. Отдельно — что делать с товарным фидом, где цена относится к обязательным полям.

«Цену нельзя поставить» — три разных утверждения

Когда собственник говорит «нам цену на сайт поставить нельзя», за этой фразой прячутся три разных ограничения. Отличать их важно: два из трёх обходятся технически, третье — нет.

Числа не существует до расчёта. Стоимость собирается из объёма, сроков, логистики, доступа на объект и того, что найдётся при замере. До выезда цены действительно нет — есть функция от параметров. Это честное ограничение проектных работ, монтажа, изделий по чертежу.

Число есть, но публиковать его запрещено. Дилерское соглашение с производителем, договорённость с сетью, разная цена для разных уровней партнёров, тактика в тендерных продажах. Здесь ограничение внешнее и вполне реальное, но оно почти никогда не запрещает публиковать границу — запрещает публиковать конкретную цену конкретной поставки.

Число есть, публиковать можно, но страшно. Увидят конкуренты, отпугнём клиента, «привяжемся» к цифре и потом не сможем поднять. Это не ограничение, а решение. У решения есть цена, и её можно посчитать — в разделе про расчёт покажем как.

Практический вывод простой. В первых двух случаях на страницу выносится не число, а функция: вилка, цена за единицу, шаг по объёму. В третьем случае никакая разметка не поможет, потому что проблема не в разметке.

💡

Что в этой статье, а что рядом. Здесь — только про цену: когда её нет, чем её заменяют и как это выражается в разметке и фидах. Как собирать семантику по номенклатуре, ГОСТам и артикулам, разобрано в статье про SEO для B2B, а что происходит с заявкой дальше — по каким каналам она приходит и сколько стоит — в материале про лидогенерацию в B2B. Здесь эти темы не пересказываются.

Когда числа действительно нет: четыре случая

Ситуаций, где числа на странице объективно не может быть, немного, и они узнаваемы.

Проектная стоимость. Смета собирается под объект: площадь, высоты, состояние основания, доступ техники, сезон, требования по срокам. Две внешне одинаковые задачи расходятся по стоимости в разы. Но даже здесь у вас есть архив выполненных смет, а значит, есть распределение — а из распределения делается вилка.

Изделие по чертежу или техзаданию. Номенклатура не перечисляется: каждая позиция — своя. Зато перечисляется база: материал, масса, класс точности, покрытие. Цена почти всегда раскладывается на «за килограмм металла плюс обработка плюс оснастка», и первая часть публикуема.

Цена привязана к сырью или курсу. Металл, полимеры, импортные комплектующие, логистика. Цена меняется быстрее, чем кто-либо успевает править сайт. Решение — не молчание, а честная привязка: указать дату, на которую действует ориентир, и от чего он пересчитывается.

Дилерская или контрактная политика. Производитель запрещает публикацию отпускных цен, или цена зависит от уровня партнёра и объёма выборки. Здесь публикуется розничный ориентир либо цена базовой конфигурации, а партнёрская — за авторизацией в личном кабинете.

Общее у всех четырёх случаев одно: число всё-таки существует, просто оно не одно. Существует не цена, а зависимость. Публиковать надо её.

Три отговорки, которые выдают себя за причину

Три возражения звучат так же уверенно, как настоящие ограничения, но проверяются за один вечер.

«Конкуренты увидят нашу цену». Проверка: возьмите телефон и запросите коммерческое предложение у трёх конкурентов от имени обычного клиента. Скорее всего, вы его получите. Если ваш прайс достаётся конкуренту за один звонок, публикация меняет не факт доступности цены, а только скорость, с которой её получает покупатель. При этом конкурент цену и так узнает, а покупатель — нет.

«У нас индивидуальный подход, цены нет». Проверка: выгрузите последние двадцать закрытых сделок и посчитайте стоимость в единице — за квадратный метр, за тонну, за точку, за смену. Если разброс укладывается в два-три раза, вилка существует и её можно назвать. Если разброс десятикратный — значит, вы продаёте не один продукт, а несколько разных, и им нужны разные страницы.

«Нас завалят нецелевыми обращениями». Обычно наблюдается обратное: цена работает как фильтр. Без неё менеджер тратит первый разговор на то, чтобы выяснить бюджет собеседника, и часть этих разговоров заканчивается ничем. С ориентиром на странице тот же отсев происходит до звонка и бесплатно.

Быстрый тест на существование цены: если ваш менеджер в телефонном разговоре называет ориентир за первые тридцать секунд — цена существует, и её место на странице. Если он честно не может — значит, вы в одном из четырёх случаев выше, и нужен формат замены.

Ограничение или отговорка: как отличить

Развилка с вопросом, появляется ли число только после расчёта. Если да — на странице публикуют не число, а зависимость: вилку, цену за единицу или шаг по объёму. Если нет — цену можно поставить, а остальное чаще всего привычка, а не ограничение.Число появляется только после расчёта?ДАПубликуйте зависимостьвилка, цена за единицу, шаг по объёмуНЕТЦену можно поставитьчаще всего мешает привычка, а не запрет
Развилка из разбора четырёх честных случаев и трёх возражений, которые проверяются за вечер.

Что ломается в поиске, когда цены нет

Отсутствие цены — не нейтральное состояние страницы. Оно отключает несколько механизмов сразу.

Расширенный сниппет не формируется. Яндекс в справке по разметке товаров относит к обязательным свойствам Offer или AggregateOffer три поля: availability, price или lowPrice, priceCurrency. Google в требованиях к товарному сниппету указывает у типа Offer обязательным «price or priceSpecification.price». Пока цены нет ни в одном из этих полей, товарный сниппет не собирается ни там, ни там — независимо от того, насколько хороша остальная разметка.

Товарные форматы выдачи закрыты. Почти всё, что строится на фидах, упирается в поле цены: где-то оно обязательное, где-то — условие показа в товарных форматах. Позиция без цены либо не проходит в фид, либо проходит, но не попадает в те форматы, где цена показывается. Подробности — в разделе про фиды ниже.

Сравнение идёт мимо вас. Покупатель открывает несколько вкладок. На тех, где есть ориентир, он оценивает порядок и решает, стоит ли писать. На вашей он не может сделать ни то, ни другое, и решение принимается по остальным вкладкам.

Наличие цены — часть коммерческой оценки страницы. Это отдельная большая тема со своим набором элементов — контакты, доставка, документы, реквизиты; она разобрана в материале про коммерческие факторы ранжирования, и здесь мы её не повторяем.

Важная оговорка: перечисленное — это механика, а не обещание процентов. Насколько именно просядет ваша страница, зависит от ниши и конкурентов в конкретной выдаче, и единственный честный способ это узнать — измерить на своих данных. Как — в следующем разделе.

Как посчитать, во что обходится молчание

«Цена по запросу» — это решение с ценником, и ценник считается. Ниже каркас расчёта; числа в него подставляете вы, чужая статистика здесь бесполезна.

Потери на выдаче

Возьмите в Яндекс Вебмастере и Search Console группу запросов, по которым страница уже показывается, и выпишите показы и клики за квартал. Это ваш текущий CTR. Дальше нужен не прогноз, а эксперимент: добавьте ориентир по цене на часть карточек одного типа, оставьте сопоставимую контрольную группу, дайте обеим отработать одинаковый период и сравните CTR. Разница между группами — и есть ваш ΔCTR, а не то, что где-то написано.

Дальше арифметика: ΔCTR × показы = дополнительные визиты; визиты × конверсия в обращение × конверсия обращения в сделку × средний чек × маржа = деньги в год. Все четыре множителя вы берёте из своей CRM.

Потери на самой странице

Второй источник потерь виден без экспериментов. Посмотрите в CRM или в переписке, в какой доле первых обращений первым же вопросом идёт «сколько стоит». Эта доля — прямая мера того, что страница не ответила. Отдельно посчитайте, какая часть таких диалогов заканчивается ничем после названной суммы: это обращения, которых можно было не обрабатывать, и стоимость их обработки считается в часах менеджера.

Что кладём на другую чашу

Против этих потерь ставится реальный риск публикации: сколько сделок вы потеряете, если конкурент увидит ориентир и подстроится. Оцените его так же аккуратно — по числу сделок, где вы выигрывали именно ценой, а не сроком, гарантией или сервисом. Часто выясняется, что таких сделок мало, и тогда спор закрывается сам.

Чем заменить цену: шесть форматов

Замен у цены больше, чем кажется. Ниже шесть форматов, которые не требуют называть точное число.

Вилка «от — до». Берётся не из головы, а из архива закрытых сделок: нижний и верхний дециль по стоимости в выбранной единице. Рядом обязательно — что попадает в нижнюю границу, а что в верхнюю.

Цена за единицу. Рубли за квадратный метр, за тонну, за точку, за смену, за рабочее место, за киловатт. Самый сильный формат для промышленных и производственных компаний: клиент умножает на свой объём сам и приходит уже с пониманием порядка.

Цена базовой конфигурации плюс прайс на опции. Работает там, где есть ядро продукта и надстройки. Публикуется база, дальше — список опций с их стоимостью.

Диапазон реализованных проектов. Таблица «объект — объём — срок — бюджетный диапазон» по уже сделанному. Формально это не прайс, а описание опыта, но покупатель считывает из неё ровно то, что ему нужно.

Калькулятор. Даёт диапазон по трём-пяти введённым параметрам. Отдельный разговор — ниже.

Цена за авторизацией. Публичный ориентир «от» на странице, точная партнёрская цена — в личном кабинете после подтверждения статуса. Формат для дилерских ограничений: обязательство перед производителем соблюдено, покупатель порядок цифр всё равно видит.

ФорматКогда подходитЧто нужно подготовить
Вилка «от — до»Разброс по сделкам укладывается в два-три разаВыгрузка закрытых сделок, расчёт нижнего и верхнего дециля
Цена за единицуУ клиента есть своё число: метры, тонны, точки, сменыВыбор знаменателя и проверка, что цена в нём устойчива
База плюс опцииЕсть ядро продукта и понятные надстройкиЗафиксированная базовая комплектация и прайс опций
Диапазон проектовПроектная стоимость, каждый объект свойСогласие клиентов на публикацию объёмов и диапазонов
КалькуляторСтоимость считается по трём-пяти параметрамФормула расчёта и решение, что показывать до формы
Цена за авторизациейДилерская или контрактная политика запрещает публикациюЛичный кабинет, проверка статуса и публичный ориентир «от»

«Цена по запросу» и ориентир на странице

Две колонки. Слева «цена по запросу»: сниппет не собирается, фид не проходит по полю цены, сравнение идёт по вкладкам конкурентов. Справа ориентир на странице: у Яндекса задокументирован показ «от N руб» через lowPrice, требование фидов выполнимо, часть нецелевых отсеивается до звонка.«Цена по запросу»Товарный сниппет не собирается ни у Яндекса, ниу GoogleПозиция не проходит требования фидов по полюценыСравнение идёт по вкладкам конкурентов, безвашейРазговор начинается с вопроса «сколько стоит»Ориентир на страницеУ Яндекса задокументирован показ «от N руб»через lowPriceТребование совпадения цены в фиде и настранице выполнимоЧасть нецелевых обращений отсеивается дозвонкаРазговор начинается с объёма и сроков
Сопоставление по разделам о потерях в поиске и о шести форматах замены цены.

Цена за единицу: как выбрать знаменатель

Цена за единицу — самый недооценённый формат, и ломается он обычно на выборе знаменателя.

Правило одно: единица должна быть той, в которой клиент уже держит в голове свой объём. Строитель мыслит квадратными метрами и кубами, снабженец — тоннами и вагонами, логист — рейсами и паллетоместами, охранное предприятие — постами и сменами, интегратор — рабочими местами и лицензиями. Если вы даёте цену в единице, которую клиенту надо сначала посчитать, формат не работает: он не умножит.

Проверка знаменателя

Знаменатель годится, если выполняются три условия. Первое: клиент знает своё число без подготовки — не лезет в документы, чтобы ответить. Второе: ваша цена в этой единице устойчива, то есть по архиву сделок укладывается в называемую вилку. Третье: умножение даёт правильный порядок величины, и вы честно пишете, что это ориентир, а не смета.

Если цена в единице сильно зависит от объёма — это не повод отказываться от формата, а повод публиковать ступени: до такого-то объёма одна цена, выше — другая. В разметке этому соответствует свойство eligibleQuantity, которое schema.org определяет как интервал и единицу измерения объёмов заказа, для которых действует предложение или спецификация цены.

Отдельная выгода формата: он переводит первый разговор с «сколько стоит» на «какой у вас объём». Это другой разговор, и он гораздо ближе к сделке.

Калькулятор: когда он собирает заявки, а когда мусор

Калькулятор — правильный ответ на «цена зависит от параметров» и одновременно самый частый способ потратить бюджет впустую.

Он работает, когда параметров три-пять, каждый клиент знает их без подготовки, а результат — диапазон с оговоркой, а не точная сумма. И главное: результат показывается до формы. Человек ввёл параметры, увидел вилку, понял порядок — и только после этого ему предлагают прислать детальный расчёт на почту.

Он собирает мусор, когда полей двенадцать, часть из них требует заглянуть в проектную документацию, а результат спрятан за обязательным телефоном. Такая форма даёт заявки, но это заявки людей, которые ещё не поняли, нужны ли вы им, — их дальше отсеет менеджер, и стоимость этого отсева ляжет на вас.

Практическая настройка: покажите вилку сразу, а форму привяжите к дополнительной ценности — расчёт в PDF, спецификация, подбор аналога. Тогда телефон оставляют те, кому это действительно нужно, и заявка приходит с уже заполненными параметрами.

Технически калькулятор — это не виджет, а часть логики карточки: он должен брать те же коэффициенты, что и коммерческий отдел, иначе цифры на сайте и в КП разойдутся. Об этом стоит думать на этапе проектирования сайта, а не прикручивать потом.

Оферта и закон: чего боятся и что написано

Самый частый юридический аргумент против цены звучит так: «поставим цену — это будет публичная оферта, и мы обязаны продать по ней любому». Стоит посмотреть, что написано в тексте закона.

Пункт 1 статьи 494 Гражданского кодекса: «Предложение товара в его рекламе, каталогах и описаниях товаров, обращенных к неопределенному кругу лиц, признается публичной офертой (пункт 2 статьи 437), если оно содержит все существенные условия договора розничной купли-продажи».

Пункт 2 той же статьи: «Выставление в месте продажи (на прилавках, в витринах и т.п.) товаров, демонстрация их образцов или предоставление сведений о продаваемых товарах (описаний, каталогов, фотоснимков товаров и т.п.) в месте их продажи или в сети «Интернет» признается публичной офертой независимо от того, указаны ли цена и другие существенные условия договора розничной купли-продажи, за исключением случая, когда продавец явно определил, что соответствующие товары не предназначены для продажи».

То есть в розничной купле-продаже удаление цены само по себе от статуса публичной оферты не спасает — норма прямо говорит «независимо от того, указаны ли цена и другие существенные условия», и выход из неё один: явно определить, что товары не предназначены для продажи.

Вторая норма, о которой стоит знать при работе с физлицами, — пункт 1 статьи 10 Закона «О защите прав потребителей»: «Изготовитель (исполнитель, продавец) обязан своевременно предоставлять потребителю необходимую и достоверную информацию о товарах (работах, услугах), обеспечивающую возможность их правильного выбора». В перечне такой информации в пункте 2 прямо названа «цена в рублях и условия приобретения товаров (работ, услуг)».

💡

Границы этих норм. Обе процитированные статьи говорят о розничной купле-продаже и об отношениях с потребителем. Поставка между юридическими лицами регулируется другими нормами, и обязанности публиковать цену там нет. Именно поэтому у промышленного сайта свобода больше, чем у интернет-магазина, — но и аргумент «мы не ставим цену, чтобы не быть офертой» в рознице не работает. Конкретные формулировки на странице лучше согласовать с юристом: здесь мы приводим тексты норм, а не юридическую консультацию.

Разметка цены: что принимает Яндекс

Теперь техническая часть — что именно принимают поисковые системы, когда фиксированной цены нет.

Яндекс в справке «Информация о товарах» пишет, что для товарных сниппетов страницы размечаются по схемам Product, Offer, OfferCatalog или AggregateOffer, причём тип Product «требует свойство offers типа Offer (для одного предложения) или AggregateOffer (для списка предложений)». К обязательным отнесены у Product — name, description, brand, image; у Offer или AggregateOffer — availability, «price (Text или Number) или lowPrice (Text или Number) — цена товара» и priceCurrency.

Дальше самое интересное для нашей темы. Там же сказано дословно: «При использовании lowPrice цена в сниппете отображается как «от N руб». Рекомендуем указывать минимальную цену, если у товара нет фиксированной цены и она зависит от объема, размера или других параметров».

Это прямое разрешение работать через «от». Если цена зависит от объёма или размера — Яндекс сам предлагает передавать минимальную и показывать её в сниппете как «от N руб».

Ещё три ограничения из той же справки, о которые спотыкаются на практике. Первое: «Для формирования сниппета используют минимум две схемы: Product и Offer или Product и AggregateOffer». Второе: «Цена не отображается, если в свойстве availability схемы Offer указано, что товара нет в наличии» — то есть выставленный «нет в наличии» гасит цену. Третье: «Если страница содержит разные товары, структурированные сниппеты не формируются» — сборная страница категории под товарный сниппет не подойдёт, для списков есть отдельная схема OfferCatalog, причём «на странице может быть только один список товаров по схеме OfferCatalog без вложенных списков».

И организационное: старый канал передачи цен в Вебмастере искать не нужно. В справке прямо написано: «Программа «Товары и цены» закрыта и не поддерживается», а вместо неё предлагается «использовать разметку Schema.org или передавать данные Яндексу через YML-фид».

Разметка цены: что требует Google

У Google требования жёстче и разложены по двум разным результатам выдачи.

Товарный сниппет. У типа Product обязательным значится name, а дальше — «Product snippets require either review or aggregateRating or offers»: достаточно одного из трёх. Если вы выбираете offers, то у Offer в обязательных стоит «price or priceSpecification.price — The offer price of a product». Никакого «цена по запросу» в этом наборе нет: без цены в одном из двух мест товарный сниппет через Offer не собирается.

AggregateOffer. Здесь у Google обязательны два поля: lowPrice («The lowest price of all offers available») и priceCurrency. Рекомендованы highPrice («The highest price of all offers available») и offerCount («The number of offers for the product»). То есть диапазон в разметке возможен и документирован — но с оговоркой, которую надо прочитать целиком.

Карточка продавца. Для merchant listing документация Google говорит: «Product snippets accept an Offer or AggregateOffer but merchant listings require an Offer as the merchant has to be the seller of the product in order to be eligible for merchant listing experiences». Проще говоря, диапазон через AggregateOffer годится для товарного сниппета, но не для форматов, где вы выступаете продавцом.

⚠️

Чем AggregateOffer не является. В документации Google сказано прямо: «An AggregateOffer is a kind of Offer representing an aggregation of other offers. For example, it can be used for a product that is being sold by multiple merchants. Don’t use AggregateOffer to describe a set of product variants». Это ровно тот соблазн, в который попадают чаще всего: взять lowPrice и highPrice, чтобы показать разброс между модификациями одного изделия. Google такое использование запрещает. Для разброса по параметрам одного товара нужен другой инструмент — спецификация цены, о ней ниже.

Диапазон и цена за единицу в разметке

Когда фиксированного числа нет, в словаре schema.org есть два подходящих типа, и путать их не стоит.

PriceSpecification — спецификация цены. У неё есть свойства minPrice, которое schema.org описывает как «The lowest price if the price is a range», и maxPrice — «The highest price if the price is a range». Это буквально диапазон цены одного предложения, а не агрегация чужих предложений. Есть также valueAddedTaxIncluded — включён ли НДС, что для B2B-страницы вопрос не праздный, и validFrom / validThrough — срок действия, полезный, когда цена привязана к сырью или курсу.

UnitPriceSpecification — подтип той же спецификации, для цены за единицу. У него есть unitCode («The unit of measurement given using the UN/CEFACT Common Code»), unitText для случаев, когда стандартного кода нет, и referenceQuantity — базовое количество, к которому относится цена. Google прямо описывает такое применение: «QuantitativeValue can be used for pricing that is based on a unit measure, such as buying flooring per square meter, or liquids per half gallon», и в требованиях к referenceQuantity указывает unitCode обязательным — «Either the UN/CEFACT codes or their human-readable equivalents as listed in Google Merchant Center Help Unit pricing measure are supported».

Коды берутся из списка UN/CEFACT Recommendation 20: квадратный метр — MTK, метр — MTR, килограмм — KGM, тонна — TNE, час — HUR, сутки — DAY. Если единица нестандартная — точка охраны, смена, рабочее место, — для неё кода нет, и тогда используется unitText со словесным названием.

Честная оговорка: minPrice и maxPrice — валидные свойства schema.org, но в перечне того, что Google использует для товарных результатов, стоят price и priceSpecification.price, а не minPrice. То есть диапазон в разметке — это прежде всего машиночитаемость: корректные данные для тех, кто читает страницу программно. Гарантия сниппета с вилкой у Google из этого не следует; у Яндекса для показа «от N руб» задокументирован именно lowPrice. Общие принципы внедрения структурированных данных — в статье про микроразметку Schema.org.

шаг 1Product. Обязательные у Яндекса поля: name, description, brand, image
шаг 2Внутрь — offers. Offer для одного предложения, AggregateOffer — для списка предложений; availability и priceCurrency обязательны
шаг 3Цену — в priceSpecification. minPrice и maxPrice, если это диапазон; price, если число всё-таки одно
шаг 4Единицу — в referenceQuantity. unitCode по UN/CEFACT (MTK, TNE, HUR) либо unitText, если кода нет

И одно правило приоритета, о котором легко забыть. Google предупреждает: «If you use both the offers.price and offers.priceSpecification properties to encode an active price, Google will use the price provided through the offers.price property and ignore the offers.priceSpecification property». Значит, если вы кладёте цену в спецификацию, не дублируйте её в offers.price — спецификация будет проигнорирована.

Четыре шага сборки разметки без фиксированной цены

Четыре шага вложенности. Product с полями name, description, brand, image. Внутрь — offers: Offer или AggregateOffer с availability и priceCurrency. Цена уходит в priceSpecification, для диапазона это minPrice и maxPrice. Единица — в referenceQuantity через unitCode или unitText.1Productname, description,brand, image2Внутрь — offersOffer илиAggregateOffer,availability,priceCurrency3Цену — вpriceSpecificationminPrice и maxPrice,если это диапазон4Единицу — вreferenceQuantityunitCode поUN/CEFACT либоunitText
Порядок вложенности из раздела о PriceSpecification и UnitPriceSpecification.

Товарный фид, где цена — обязательное поле

С фидами ситуация другая: там цена — это поле, и поле проверяемое.

Google Merchant Center. В спецификации товарных данных атрибут price помечен как Required, а требование формулируется так: цену и валюту нужно передавать точно и они должны совпадать с ценой на посадочной странице, в структурированных данных и на этапе оформления заказа. Ноль допускается только в узких исключениях. Позиция без цены такую проверку не пройдёт.

YML-фид Яндекс Директа. Здесь требование мягче, и это важно знать. Элемент price описан как «Цена, по которой данный товар можно приобрести… Цена не должна равняться нулю и должна соответствовать стоимости товара на сайте», и дальше — «Рекомендуемый элемент для Единой перфоманс-кампании». В колонке обязательности у него стоит не «да», а «для показов в товарной галерее». Обязательными для офера упрощённого типа названы name, categoryId и url; currencyId становится обязательным при наличии price.

Практический вывод: YML-фид можно собрать и без цены — объявления сгенерируются. Но товарная галерея, то есть именно тот формат, где цена показывается пользователю, для такого фида закрыта.

⚠️

Чего нельзя делать с полем цены. Соблазн поставить в фид ноль, единицу или заглушку — прямой путь к отклонению. Яндекс требует, чтобы цена не равнялась нулю и соответствовала стоимости товара на сайте; Google требует совпадения цены в фиде, на странице, в разметке и в корзине. Единственная рабочая схема, когда фиксированной цены нет, — передавать в фид минимальную цену базовой конфигурации и на странице показывать ровно её же как «от». Тогда требование совпадения выполнено и претензий нет.

КаналЧто требуется от ценыЧто делать без фиксированной цены
Разметка для Яндексаavailability, price или lowPrice, priceCurrencyПередавать lowPrice — в сниппете отобразится как «от N руб»
Товарный сниппет GoogleУ Offer обязательно price или priceSpecification.priceКласть цену в priceSpecification, не дублируя в offers.price
Merchant listing GoogleТребуется именно Offer, AggregateOffer не принимаетсяПубликовать цену базовой конфигурации либо не претендовать на формат
YML-фид Директаprice — рекомендуемый; обязателен для показов в товарной галерееФид соберётся и без цены, но галерея будет недоступна
Фид Merchant Centerprice — обязательный атрибут, должен совпадать со страницейОтдавать минимальную цену конфигурации и ту же цифру на странице

Порядок внедрения и что мерить

Порядок, в котором это разворачивается, важнее скорости: разметка поверх ненайденной вилки бесполезна.

Шаг первый — арифметика по своим сделкам. Выгрузите закрытые сделки за последний год, приведите каждую к единице (метр, тонна, точка, смена) и посмотрите на распределение. Здесь выясняется, есть ли вилка вообще и по каким группам номенклатуры она разная.

Шаг второй — выбор формата на группу. Одному разделу каталога подойдёт цена за единицу, другому — база плюс опции, третьему — только диапазон реализованных проектов. Один формат на весь сайт бывает редко.

Шаг третий — тексты. Вместо «цена по запросу» на странице должно стоять три вещи: ориентир, перечень факторов, которые двигают цену вверх и вниз, и дата, на которую ориентир актуален. Последнее закрывает страх «привязаться к цифре» лучше любой оговорки.

Шаг четвёртый — разметка и фид. В том порядке, который описан выше: Product, offers, priceSpecification, referenceQuantity; затем сверка, что цифра в фиде равна цифре на странице.

Шаг пятый — замер. Контрольная группа карточек без изменений, тестовая — с ценой, сравнение CTR и конверсии в обращение через квартал. Плюс доля первых сообщений с вопросом «сколько стоит» — она должна упасть.

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

Что помогает и что мешает, когда цены нет

Два списка. Помогает: вилка по архиву сделок, цена в единице, которой клиент мыслит, одна цифра в фиде и на странице, результат расчёта до формы. Мешает: «цена по запросу» вместо ориентира, ноль в поле price фида, AggregateOffer для вариантов товара, скрытый результат.ПомогаетВилка, посчитанная по архиву закрытых сделокЦена в единице, которой клиент уже мыслитВ фиде та же цифра, что и на страницеРезультат калькулятора виден до формыМешает«Цена по запросу» вместо любого ориентираНоль или заглушка в поле price фидаAggregateOffer для вариантов одного товараКалькулятор, прячущий результат за телефоном
Свод по разделам о форматах замены, калькуляторе, разметке и требованиях фидов.

Не знаете, что поставить вместо «цены по запросу»?

Посчитаем вилку по вашим закрытым сделкам, подберём единицу, в которой клиент уже думает о своём объёме, перепишем карточки и настроим разметку с диапазоном и фид так, чтобы цифры на странице, в сниппете и в фиде совпадали.

Получить бесплатный аудит