Содержание12
- Что такое YML-фид и где он нужен
- Из чего состоит YML-файл
- Два типа описания товара: name или vendor.model
- Идентификаторы товаров: уникальные и постоянные
- Как выгрузить фид из каталога
- Как отдать фид Яндексу
- Совпадение фида и сайта: где отклоняют чаще всего
- Отдельные фиды для Яндекс Товаров и Маркета
- Частые ошибки в YML-фиде
- Порядок запуска фида
- Частые вопросы
- Источники
YML-фид — XML-файл, в котором магазин описывает себя и свои товары в формате Яндекса: категории, цены, наличие, ссылки и картинки. Файл лежит на сайте по постоянному адресу, а Яндекс сам забирает его и проверяет. Чтобы фид приняли, нужны уникальные постоянные id, данные, совпадающие с сайтом, и правильные заголовки сервера.
Что такое YML-фид и где он нужен
Товарный фид — это файл формата YML с информацией о магазине и товарах. YML, или Yandex Market Language, — собственный стандарт Яндекса, основанный на XML. Он нужен, чтобы Яндекс получил весь каталог одним файлом и не собирал данные со страниц сайта по одной.
Из одного каталога фиды получают разные сервисы. Яндекс Товары показывают предложения магазина в поиске, а Директ принимает товарные фиды для рекламных кампаний. У каждого сервиса свои требования к содержимому, но основа формата одна. Поэтому первая задача — собрать корректный файл, а вторая — проверить его по правилам нужного сервиса.
Для магазина фид — продолжение каталога на сайте. Если названия, цены и наличие в каталоге в порядке, фид получится почти автоматически. Если в каталоге хаос, фид его только покажет. Как устроены категории и разделы магазина, разобрано в статье про структуру интернет-магазина.
YML-фид — это каталог магазина в виде файла. Качество фида не выше качества данных в каталоге.
Из чего состоит YML-файл
YML-файл — это XML-документ с одним корневым элементом. В формате YML корневой элемент называется yml_catalog. Внутри него лежит блок shop с данными о магазине, списком валют, деревом категорий и списком товарных предложений.
- yml_catalog — корень документа; атрибут
dateхранит время формирования файла. - shop — общие сведения: название магазина, адрес сайта, платформа.
- currencies и categories — валюты и дерево категорий; их указывают перед списком предложений.
- offers — контейнер, внутри которого каждый товар описан отдельным элементом
offer. - offer — одно предложение: адрес страницы, цена, валюта, категория, картинки, название и описание.
Минимальный набросок файла выглядит так:
<yml_catalog date="2026-10-02T10:00:00+03:00">
<shop>
<name>Магазин</name>
<url>https://shop.example.ru</url>
<currencies><currency id="RUR" rate="1"/></currencies>
<categories><category id="1">Чайники</category></categories>
<offers>
<offer id="1001">
<url>https://shop.example.ru/catalog/chaynik-1001/</url>
<price>2990</price>
<currencyId>RUR</currencyId>
<categoryId>1</categoryId>
<name>Чайник электрический Бренд Модель</name>
</offer>
</offers>
</shop>
</yml_catalog>
Пример учебный: адрес и товары условные. Полный список элементов и обязательность каждого берите из справки сервиса, в который отправляете фид: у Товаров, Директа и Маркета наборы различаются.
Два типа описания товара: name или vendor.model
Предложение можно описать двумя способами, и они различаются только способом передачи названия. В упрощённом типе название товара лежит в одном элементе name. В произвольном типе название собирается из трёх элементов: typePrefix, vendor и model, а в offer добавляется атрибут type="vendor.model".
В произвольном типе элементы vendor и model обязательны: нет производителя или модели — фид с этим товаром не примут. Если у вас нет этих характеристик, используйте упрощённый тип. Справка Яндекс Товаров считает оба типа равными по возможностям и советует выбрать тот, что удобнее поддерживать.
Выбор зависит от того, как хранятся данные. Если в базе тип, производитель и модель лежат в отдельных полях, проще произвольный тип. Если у товара одно общее название, как у большинства мелких позиций, хватит упрощённого.
Название по любому из способов должно описывать товар, а не акцию. В название нельзя включать условия продажи: слова «скидка» или «бесплатная доставка». Для скидок есть отдельный элемент oldprice, для условий — sales_notes.
Мнение. Если сомневаетесь, какой тип описания выбрать, начните с упрощённого: он требует меньше полей, а равные возможности обоих типов справка подтверждает.
Факт. Справка Яндекс Товаров запрещает указывать в названии товара условия продажи, например «скидка» и «бесплатная доставка».
Идентификаторы товаров: уникальные и постоянные
Идентификатор id — главное поле предложения: по нему Яндекс узнаёт товар от выгрузки к выгрузке. Правил три, и ошибки в них самые дорогие.
Практический вывод: брать в качестве id номер товара из учётной системы или артикул, а не номер строки в выгрузке. Номер строки меняется при каждой сортировке, и фид превращается в набор новых товаров. Для товаров с вариантами цвета и размера каждый вариант получает собственный id.
Если в магазине подключена электронная коммерция в рекламных сервисах, id товаров на сайте и в фиде тоже должны совпадать: это нужно для корректных рекомендаций и ретаргетинга. Решение, какой идентификатор использовать, лучше принять один раз и записать в техническое задание на каталог.
Как выгрузить фид из каталога
Выгрузить фид можно тремя путями: модулем платформы, скриптом разработчика или вручную из таблицы. Выбор зависит от размера каталога и от того, как часто он меняется.
Справка Яндекс Товаров отмечает, что для популярных CMS доступны модули подключения. Их нужно использовать только для формирования фида и ссылки на него. Яндекс не отвечает за качество модулей, которые сделали сторонние разработчики, поэтому результат всё равно нужно проверять. В списке модулей справки есть и платформа 1С-Битрикс. Как каталог, заказы и учёт связываются в одной системе, описано на странице про 1С-Битрикс: интернет-магазин и CRM.
Скрипт разработчика нужен там, где логика нестандартная: свои цены по регионам, разные склады, сборные товары. Выгрузка вручную из таблицы подходит для небольшого каталога, который меняется редко. Для живого магазина с остатками ручной фид устаревает через несколько часов, а значит, ему нужно автоматическое обновление.
Честная граница: если в каталоге пара десятков позиций и они почти не меняются, сложная автоматизация не окупится. Достаточно файла, который обновляют руками при каждом изменении цены или наличия, и проверки раз в неделю.
Как отдать фид Яндексу
Яндексу нужна ссылка на файл, а не сам файл. Фид лежит на сайте магазина по постоянному адресу, а ссылку на него добавляют в личном кабинете сервиса. Добавить ссылку можно только на фид с сайта, к которому у вас подтверждены права.
Яндекс Товары принимают YML-файл с расширением xml, yml или php. Сервер должен отдавать файл с корректным заголовком Content-type: допустимы application/xml, application/octet-stream или text/xml. Заголовок проверяют до загрузки: страница, которая отдаёт файл как text/html, фид сломает.
Если доступ к фиду закрыт паролем, логин и пароль указывают при добавлении. Закрытый паролем адрес проверяйте особенно внимательно: робот должен получить файл, а не страницу входа.
Яндекс проверяет фид и обновляет его статус. Отправить фид на проверку повторно можно до шести раз, поэтому не отправляйте заведомо сырой файл. Сначала прогоните его через валидатор сервиса и проверьте несколько товаров вручную: открывается ли страница, совпадает ли цена.
Совпадение фида и сайта: где отклоняют чаще всего
Яндекс сверяет фид с тем, что видит покупатель на сайте. Фид могут отклонить из-за различной информации в нём и на сайте: цена, наличие и название должны совпадать с карточкой товара.
Сведения о наличии, указанные в фиде, должны совпадать с информацией на странице перехода и на страницах оформления покупки. Если в фиде товар «в наличии», а на сайте «нет», это ошибка. Фид обновляется по расписанию, а сайт живёт постоянно: между выгрузками цены и остатки расходятся.
Решение — частое автоматическое обновление и общий источник данных. Если фид и сайт берут цены из одной таблицы учёта, расхождение возникает только в паузе между обновлениями. Если они берут данные из двух мест, расхождение будет всегда.
Проверка товаров идёт выборочно. Если более 25% проверенных товаров содержат ошибки, источник данных может быть полностью отключен от показов. Поэтому одна систематическая ошибка, например неверная валюта у всей категории, опаснее десятка случайных.
Факт. Если более 25% проверенных товаров содержат ошибки, Яндекс Товары могут полностью отключить источник данных от показов.
Отдельные фиды для Яндекс Товаров и Маркета
Фиды для Яндекс Товаров и Яндекс Маркета во многом схожи и часто формируются одним модулем CMS. Но некоторые элементы Маркета для Товаров необязательны или не используются, поэтому справка советует делать отдельные фиды.
Практическое правило: если вам нужны фиды для нескольких сервисов, формируйте их отдельно и храните по разным адресам. Один «универсальный» файл рано или поздно нарушит требования одного из сервисов, а исправление тут сломает другой. Правила разных сервисов стоит сверять с их текущей справкой: требования обновляются, и описание, верное год назад, может устареть.
Если у магазина несколько регионов с разными ценами и наличием, под каждый регион делают отдельный фид. Если условия одинаковы по всей стране, хватит одного фида с выбором нескольких регионов.
Частые ошибки в YML-фиде
Большинство ошибок повторяется от магазина к магазину и сводится к нескольким причинам.
- 01 Номер строки вместо id
Идентификаторы меняются от выгрузки к выгрузке, и товары воспринимаются как новые.
- 02 Скидка в названии
«Чайник, скидка» вместо чистого названия и
oldprice. - 03 Нет vendor или model при типе vendor.model
Предложение игнорируется.
- 04 Устаревшие остатки
На сайте товар закончился, а в фиде он «в наличии».
- 05 Неверный заголовок сервера
Файл отдаётся как страница, а не как XML.
- 06 Один фид на все сервисы
Элементы одного сервиса ломают проверку другого.
Порядок запуска фида
Фид запускают по шагам, и первый шаг — не файл, а данные. Сначала проверьте каталог: у каждого товара есть уникальный артикул, название по единой схеме, актуальная цена и ссылка на живую страницу.
Затем выберите способ выгрузки и тип описания, определите id и соберите пробный файл на небольшом наборе товаров. Проверьте его валидатором и откройте несколько ссылок вручную. После этого выложите файл по постоянному адресу, подтвердите права на сайт и добавьте ссылку в личном кабинете сервиса.
Когда фид принят, настройте автоматическое обновление и раз в неделю смотрите отчёт об ошибках. Если каталог собирается на платформе заново или переезжает, выгрузку фида лучше закладывать на этапе проектирования, при разработке интернет-магазина, а не добавлять в последний момент. Данные для фида зависят и от того, как заполнена карточка: подробнее о ней — в материале про карточку товара. Оставьте заявку — проверим каталог и подскажем, как настроить выгрузку.
Источники
- Как сформировать товарный фид — Справка Яндекс Товаров
- Рекомендации по формированию товарного фида — Справка Яндекс Товаров
- Информация о товарах (offers, offer) — Справка Яндекс Товаров
- Добавить фид в Яндекс Товары — Справка Яндекс Товаров
- Работа с ошибками — Справка Яндекс Товаров
- Особенности фида Яндекс Товаров — Справка Яндекс Товаров
- Требования к YML-фиду — Справка Яндекс Директа