Яндекс Товары не принимает YML-фид: причины и проверка ошибок

6 минут чтения 1 просмотр
Схема передачи товарных данных от интернет-магазина через 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. Как искать ошибку, если пропало несколько товаров

Сравнение принятого и непринятого товара: offer, цена, наличие и URL карточки
Сравнение двух предложений быстрее показывает отличающееся поле, чем просмотр всего каталога.

Возьмите один рабочий ID и один ID из файла ошибок Яндекса. Затем сравнивайте их в одном порядке:

  1. найдите оба offer в той версии YML, которую скачал Яндекс;
  2. сверьте тип предложения и обязательные поля;
  3. сравните price, categoryId и признак наличия;
  4. откройте оба URL без авторизации и проверьте конечные страницы;
  5. сопоставьте название, цену, наличие и изображение с карточками магазина;
  6. исправьте генератор или исходные данные, а не готовый XML вручную.

Если товара нет уже в самом YML, он потерялся до Яндекса. Тогда полезнее пройти путь пропавшего товара от каталога до отчёта импорта и проверить фильтры экспорта.

Быстрый чек-лист

  1. Посмотрите долю принятых товаров и последнюю проверку в кабинете.
  2. Убедитесь, что URL источника отвечает 200 OK.
  3. Проверьте, что в ответе YML/XML, а не HTML или пустой документ.
  4. Определите, отклонён весь источник или отдельные offer.
  5. Скачайте ошибки Яндекса и выберите один проблемный ID.
  6. Сравните его с рабочим товаром: поля, цену, наличие и категорию.
  7. Откройте URL карточки и сверьте данные с фидом.
  8. После исправления дождитесь новой проверки и убедитесь, что она выполнена уже для обновлённого файла.

Официальные источники

 Вернуться в блог

Оформление подписки недоступно

В данный момент оформить подписку нельзя. Попробуйте позже.