Яндекс Товары не принимает YML-фид: причины и проверка ошибок
YML открывается по ссылке, товары внутри есть, но после добавления источника весь каталог или часть позиций не появляются в Яндексе. Сам факт, что браузер показал XML, здесь мало что доказывает: Яндекс должен скачать файл, распознать его структуру и принять данные каждого товара. Проверку лучше разделить на четыре уровня: доступность источника, структура файла, конкретные offer и соответствие данных карточкам магазина.
Речь именно о Яндекс Товарах — кабинете для передачи ассортимента в органический Поиск, а не о кабинете продавца на Маркете и не о рекламных фидах Директа. Форматы похожи, но проверять нужно требования того сервиса, куда добавлен источник.
1. Сначала определите масштаб проблемы
Откройте в Яндекс Товарах страницу Товары → Источники данных → Фиды. В колонке «Товары в базе» видно, какая доля офферов принята, а на странице фида можно открыть ошибки и рекомендации, скачать примеры проблемных товаров и посмотреть историю технических проверок.
Если не принято ничего, начинайте с URL, ответа сервера и каркаса документа. Когда принято 950 товаров из 1 000, повторная проверка всего XML редко даёт быстрый ответ. Возьмите один принятый и один непринятый offer и ищите различие между ними.
Диагностическое правило: ноль принятых товаров обычно указывает на проблему уровня источника или файла; частичный отказ — на данные конкретных предложений. Точный ответ всё равно берите из последней проверки Яндекса.
2. Яндекс должен скачать сам файл
Для начала источник должен отвечать 200 OK. Ответы 403, 404 и 5xx, тайм-аут или оборванное соединение не дают перейти к разбору YML. Проверьте и тело ответа: сервер способен вернуть статус 200 вместе с HTML-страницей входа, заглушкой защиты или сообщением генератора.
Открытая вкладка браузера не исключает блокировку робота: у браузера могут быть cookie, авторизация и доверенный IP. Если проблема находится на этом уровне, используйте подробную диагностику 403, 404, 500, редиректов и тайм-аутов, а не перебирайте теги товара.
Если есть сомнение именно в доступности URL, проверьте его отдельно, не запуская полный анализ фида.
3. Файл доступен, но структура не подходит
Следующий рубеж — формат документа. У YML должен быть каркас с yml_catalog, блоком shop и списком offers. Пустой список либо отсутствие offer Яндекс выводит как отдельную ошибку. Наличие XML-декларации само по себе не превращает произвольный XML в товарный фид.
Проверьте обязательные элементы магазина и выбранный тип предложения по текущей справке. Набор полей у упрощённого и произвольного offer различается. Кроме того, Яндекс прямо предупреждает: фиды Товаров и Маркета похожи, но отдельные элементы Маркета здесь не используются и могут помешать проверке.
Если документ не разбирается как XML или нарушены связи категорий и предложений, сначала пройдите общую проверку структуры YML. В этой статье важен следующий уровень — почему конкретный товар не попал в базу Яндекс Товаров.
4. Ошибка может находиться внутри конкретного offer
Небольшой фрагмент упрощённого предложения выглядит так. Валюта и категория из примера должны быть заранее объявлены в соответствующих справочниках фида.
<offer id="coffee-123" available="true">
<name>Кофеварка Brand C100, чёрная</name>
<url>https://shop.example/catalog/coffee-123</url>
<price>5990</price>
<currencyId>RUR</currencyId>
<categoryId>10</categoryId>
<picture>https://shop.example/images/coffee-123.jpg</picture>
<description>Капельная кофеварка с многоразовым фильтром.</description>
</offer>
Для упрощённого типа текущая документация относит к обязательным, среди прочего, идентификатор, название, URL карточки, цену, валюту, категорию, изображение и описание. На практике сначала ищите не длинный список редких тегов, а несколько частых расхождений:
idотсутствует, повторяется или меняется между выгрузками;- обязательное поле пусто либо передано не для того типа предложения;
categoryIdне соответствует категории из блокаcategories;- URL ведёт не к этому товару или не открывается;
available="false": такие товары в Поиске не участвуют.
Не пытайтесь угадать причину по общему статусу. Скачайте список ошибок в кабинете и сопоставьте строку с тем же offer id в фактическом файле по URL.
5. Цена и наличие должны совпадать с сайтом
Пример расхождения: в фиде передано <price>5990</price>, а на странице товара указано 6 490 ₽. Для Яндекс Товаров это ошибка данных, даже если XML составлен безупречно.
Автоматическая выгрузка не гарантирует актуальность. Генератор мог прочитать старый кеш, фоновая задача могла завершиться до обновления каталога, а сайт и экспорт — обратиться к разным остаткам. Аналогично с наличием: значение available="true" противоречит карточке, на которой товар нельзя заказать.
Исправляйте источник данных, пересобирайте фид и проверяйте опубликованную копию. Если площадка регулярно видит прошлые значения, используйте отдельный разбор о том, почему в YML остаются старые цены и остатки.
6. Карточка товара тоже участвует в проверке
Обязательный url должен вести на отдельную страницу именно того товара, который описан в offer. Каталог со множеством позиций, другая модель после редиректа или страница, доступная только после входа, задачу не решают.
Проверьте страницу без своей сессии: она открывается для роботов, товар можно распознать, цена и наличие совпадают с фидом. Яндекс отдельно указывает, что сайт, товарные страницы, фид и ссылки из него должны быть доступны пользователям с любых IP-адресов, включая роботов Яндекса.
7. Как искать ошибку, если пропало несколько товаров
Возьмите один рабочий ID и один ID из файла ошибок Яндекса. Затем сравнивайте их в одном порядке:
- найдите оба
offerв той версии YML, которую скачал Яндекс; - сверьте тип предложения и обязательные поля;
- сравните
price,categoryIdи признак наличия; - откройте оба URL без авторизации и проверьте конечные страницы;
- сопоставьте название, цену, наличие и изображение с карточками магазина;
- исправьте генератор или исходные данные, а не готовый XML вручную.
Если товара нет уже в самом YML, он потерялся до Яндекса. Тогда полезнее пройти путь пропавшего товара от каталога до отчёта импорта и проверить фильтры экспорта.
Быстрый чек-лист
- Посмотрите долю принятых товаров и последнюю проверку в кабинете.
- Убедитесь, что URL источника отвечает
200 OK. - Проверьте, что в ответе YML/XML, а не HTML или пустой документ.
- Определите, отклонён весь источник или отдельные
offer. - Скачайте ошибки Яндекса и выберите один проблемный ID.
- Сравните его с рабочим товаром: поля, цену, наличие и категорию.
- Откройте URL карточки и сверьте данные с фидом.
- После исправления дождитесь новой проверки и убедитесь, что она выполнена уже для обновлённого файла.