Товарный фид - это файл со всеми товарами магазина, который читают рекламные системы. Собрать его несложно, а вот пройти модерацию с первого раза получается редко: цена в файле разъезжается с ценой на сайте, ссылки ведут в никуда, картинки не открываются.
Владелец магазина обычно узнаёт про фид в тот момент, когда решает запустить товарную рекламу. Выясняется, что просто дать рекламной системе адрес сайта нельзя: ей нужен структурированный файл, где у каждой позиции есть цена, наличие, ссылка и картинки.
Дальше начинается неделя переписки с поддержкой площадки. Ниже разберём, из чего состоит файл, как он рождается в движке сайта и за что его чаще всего заворачивают.
Куда уходит фид и что он даёт
Товарные кампании в Яндекс Директе. Система читает файл и сама собирает объявления по каждой позиции, подставляя название, цену и картинку. Вручную такое количество объявлений никто не заводит: на каталоге в 3 000 позиций это месяц работы. Как устроен запуск первой кампании, разбирали в статье Настройка Яндекс Директ с нуля.
Динамический ретаргетинг. Человек посмотрел смеситель и ушёл, а через день видит именно этот смеситель в баннере. Без фида такой сценарий не собрать в принципе: системе неоткуда взять картинку и цену конкретного товара. Другие способы возврата посетителя описаны в материале про сценарии ретаргетинга.
Яндекс Маркет и прайс-площадки. Здесь фид не помощник, а единственный способ попасть на витрину. Требования строже, чем в рекламе: проверяют соответствие категорий, наличие и корректность характеристик.
Партнёры и агрегаторы. Отраслевые каталоги, сравнилки цен, витрины поставщиков. Обычно просят тот же YML или CSV.
Один файл на все системы почти никогда не подходит. Нормальная практика для магазина - две-три выгрузки по разным адресам, с разным набором товаров и полей.
YML или CSV: что выбрать
YML это разновидность XML, придуманная Яндексом. В нём есть вложенность: дерево категорий, несколько картинок у товара, произвольные характеристики через теги параметров. Все площадки рунета его понимают.
CSV это обычная таблица со столбцами. Её удобно открыть в Excel и глазами проверить, но категории и характеристики приходится размазывать по колонкам, и файл быстро становится нечитаемым.
Практический вывод: основной формат делаем YML, а CSV собираем только по прямой просьбе конкретной площадки. Делать сразу оба "на всякий случай" не надо: два файла надо синхронно поддерживать, и второй обязательно отстанет.
Как устроен YML-фид
Минимальный рабочий файл выглядит так:
<yml_catalog date="2026-08-31 09:00">
<shop>
<name>Магазин сантехники</name>
<url>https://example.ru/</url>
<categories>
<category id="12">Смесители для кухни</category>
</categories>
<offers>
<offer id="4821" available="true">
<url>https://example.ru/catalog/smesitel-4821/</url>
<price>7490</price>
<currencyId>RUR</currencyId>
<categoryId>12</categoryId>
<picture>https://example.ru/upload/4821-1.jpg</picture>
<name>Смеситель для кухни однорычажный, хром</name>
</offer>
</offers>
</shop>
</yml_catalog>
Всё остальное - надстройки над этой конструкцией: производитель, артикул, старая цена, вес и габариты, характеристики через теги параметров, вторая и третья картинки.
Обязательные поля и требования к содержимому
Идентификатор товара. Должен быть уникальным и, что важнее, постоянным. Если при каждой переиндексации каталога у товаров меняется id, вся накопленная статистика по позиции обнуляется, а площадка считает её новым товаром и отправляет на модерацию заново.
Наличие и цена. Брать надо ровно из тех же полей, которые показывает карточка на сайте. Классическая ошибка - в фид попадает цена без учёта наценки или, наоборот, с уже применённой скидкой по промокоду, которую посетитель без промокода не увидит.
Ссылка на карточку. Полный адрес с https, тем же доменом, что у сайта. Свои UTM-метки в этот адрес добавлять не нужно: рекламная система подставляет собственные параметры, а ручные метки ломают склейку статистики. Про разметку трафика есть отдельный разбор про UTM-метки.
Картинки. Прямые ссылки, отдающие код 200 без авторизации и без редиректов. Минимальная сторона от 300 пикселей, на практике лучше от 600: мелкие изображения проходят модерацию, но в выдаче выглядят мутными. Частая невидимая проблема - папка с картинками закрыта в robots.txt или отдаётся только браузерам с определённым заголовком, и робот площадки получает отказ.
Название. Как в карточке товара, без капса, без слов "хит", "акция", "распродажа" и без цены внутри названия. Формула "тип товара, бренд, модель, ключевая характеристика" работает и в фиде, и в поиске. Про построение названий и категорий подробнее в материале SEO для интернет-магазина.
Описание. Без HTML-тегов или в защищённом блоке, без телефонов, без ссылок и без обещаний вроде "самая низкая цена в городе". Всё это площадки вычищают, а при повторных нарушениях отклоняют весь фид.
Откуда берётся фид в CMS и почему сутки это долго
В Битриксе выгрузка в YML есть в коробке, начиная с редакции для малого бизнеса, и настраивается за час. В WooCommerce нужен плагин: бесплатные версии умеют базовый набор полей, платные обходятся примерно в 2 000-6 000 рублей в год и добавляют правила фильтрации. Самописная выгрузка у подрядчика стоит порядка 15 000-40 000 рублей и оправдана, когда нужны нестандартные правила: исключить товары дешевле определённой суммы, склеить размеры в одну позицию, подставить другую категорию для рекламы.
Дальше вопрос частоты. Ночная генерация раз в сутки означает, что переоценка, сделанная утром, попадёт в файл только следующей ночью. Для магазина с плавающей закупкой это прямые потери: клик по объявлению оплачен, человек пришёл, увидел другую цену и ушёл, а площадка накопила расхождения и в какой-то момент остановила показы.
Рабочий компромисс - генерация по расписанию раз в 15-60 минут в статический файл. Именно в файл, а не на лету: каталог на 20 000 позиций собирается минутами, и генерация в момент запроса кладёт сервер. Площадка всё равно перечитывает фид не мгновенно, но чем свежее файл в момент чтения, тем меньше расхождений.
За что отклоняют чаще всего
| Что видит модерация | Что произошло на самом деле | Что делать |
|---|---|---|
| Цена не совпадает с сайтом | Фид собран до переоценки или в него попала скидка по промокоду | Один источник цены для сайта и фида, персональные скидки в выгрузку не отдавать |
| Товара нет в наличии | Флаг доступности выставлен вручную и не связан с остатком | Брать наличие из того же поля, что и карточка |
| Ссылка ведёт на 404 | Товар снят с публикации или сменился адрес карточки | Выгружать только опубликованные позиции, проверять код ответа |
| Картинка недоступна | Закрыта в robots.txt, отдаётся по http, лежит за редиректом | Прямые https-ссылки, изображение от 600 пикселей по меньшей стороне |
| Запрещённая категория | Алкоголь, табак, рецептурные препараты, оружие, БАДы с обещаниями | Исключить правилом при генерации, спорить бесполезно |
| Неверная категория каталога | Все товары свалены в один раздел или указан несуществующий идентификатор | Привести дерево категорий, проверить связи разделов и товаров |
| Реклама в тексте | Проценты скидки в названии, телефон в описании | Чистить поля фильтром на этапе генерации |
Отдельно стоит сказать про ошибки, которые модерация пропускает, а деньги забирают. Товар с нулевым остатком, помеченный как доступный, спокойно рекламируется неделю и приносит клики в пустоту. Позиция, у которой в фиде указана старая цена ниже текущей, собирает переходы и отказы. Такие вещи ловятся только выборочной сверкой руками.
Что проверить перед загрузкой
- Открыть адрес фида в браузере в режиме инкогнито: файл должен отдаваться по https, кодом 200, без пароля и без редиректов.
- Прогнать файл через валидатор площадки и прочитать не только ошибки, но и предупреждения.
- Взять 10 случайных позиций из файла и вручную сверить с сайтом цену, наличие и адрес карточки.
- Прокликать 5 ссылок на картинки из файла в том же режиме инкогнито.
- Проверить кодировку UTF-8: битые символы в названиях видно сразу.
- Сравнить число позиций в файле с числом товаров в наличии на витрине. Расхождение в разы означает, что фильтр отработал не так.
- Убедиться, что в файле нет служебных и тестовых позиций: они попадают в выгрузку чаще, чем кажется.
- Замерить время генерации и вес файла. Всё, что собирается дольше минуты, надо переводить в задание по расписанию.
Кто следит за фидом дальше
Фид - не разовая настройка, а живой файл, который ломается от любых изменений на сайте. Регламент, который мы предлагаем магазинам на поддержке:
- Раз в неделю смотреть в кабинете площадки число отклонённых позиций. Рост этого числа - первый сигнал.
- Раз в месяц выборочно сверять 20 товаров с сайтом.
- После любого изменения структуры адресов, редизайна каталога, обновления движка или переезда на другой хостинг проверять фид в тот же день. Смена схемы адресов - самая частая причина, по которой файл молча превращается в список ссылок на 404.
Сопровождение фида обычно входит в пакеты техподдержки: у нас и у большинства студий это часть регламента обслуживания магазина, отдельной строкой в смете оно появляется только при переработке правил выгрузки. Что вообще входит в разработку и поддержку магазина, описано на странице услуги интернет-магазины.
Итог для владельца магазина
Товарный фид собирается штатными средствами движка и в простом случае настраивается за час. Проблемы начинаются не в формате, а в данных: расхождение цены и наличия с сайтом, недоступные картинки и мёртвые ссылки дают больше отклонений, чем все синтаксические ошибки вместе взятые. Частота обновления важнее полноты полей: лучше короткий фид, который обновляется каждый час, чем подробный, собранный прошлой ночью. И кто-то должен смотреть на статус выгрузки хотя бы раз в неделю, иначе после ближайшего обновления сайта реклама будет вести в пустоту.
Как каталог, выгрузки и обмен с учётной системой выглядят на живых проектах, показано в кейсах. Там есть магазины разного размера, с задачами и результатами по каждому.

