YML-фид: как устроен, где ломается и почему пропадают товары
4 мин чтения
YML-фид: как устроен, где ломается и почему пропадают товары

YML-фид: как устроен, где ломается и почему пропадают товары

YML-фид — это XML-файл с вашим каталогом, по которому Яндекс Маркет и рекламные площадки узнают, что и почём вы продаёте. Ломается он тихо: сайт работает, а половина товаров молча выпадает из выдачи. Разбираем структуру и типовые поломки.

Как устроен фид

Корневой элемент — yml_catalog с датой формирования. Внутри лежит секция магазина, а в ней по порядку идут валюты, категории и список предложений.

<yml_catalog date="2026-07-31 12:00">
  <shop>
    <currencies>...</currencies>
    <categories>...</categories>
    <offers>
      <offer id="A-1024" available="true">...</offer>
    </offers>
  </shop>
</yml_catalog>

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

Элемент Что задаёт Где ошибаются
id Уникальный идентификатор товара Меняют при каждой выгрузке — площадка считает товар новым и теряет статистику
available Есть ли товар в наличии Ставят false при нулевом остатке на одном складе, хотя товар есть
url Ссылка на карточку Ведёт на 404 после смены структуры адресов
price и currencyId Цена и валюта Нулевая цена, копейки через запятую, валюта не из списка объявленных
categoryId Категория товара Ссылается на категорию, которой нет в секции categories
picture Изображение товара Картинка мельче 450×450 или недоступна по ссылке
name или vendor + model Название товара В названии оказываются служебные пометки вроде «(копия)» или артикул склада

Пять поломок, из-за которых товары пропадают

Выгрузка не отработала. Cron-задача упала, а фид остался лежать со вчерашней датой. Площадка какое-то время использует старую версию, потом перестаёт ей доверять. Самая частая причина — переезд на другой хостинг или обновление CMS.

Файл сформировался наполовину. Скрипт упал на середине выгрузки, и XML оборвался посреди тега. Такой фид не парсится целиком — из каталога пропадает всё разом.

Битая кодировка или спецсимволы. Амперсанд или угловая скобка в названии товара без экранирования ломают XML в этой точке. Дальше по файлу площадка уже не читает.

Массовое переключение available в false. Сбой синхронизации с учётной системой — и весь каталог помечен как отсутствующий. Файл при этом валиден, дата свежая, размер прежний: формально всё в порядке.

Фид закрыт от площадки. Файл на месте, но отдаётся с ошибкой 403 или 500, попал под защиту от ботов, а иногда просто закрыт в robots.txt после планового обновления настроек.

Почему это замечают поздно

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

Как проверить фид самому

Начните с самого грубого признака — числа предложений в файле. Если оно резко изменилось со вчерашнего дня, дальше можно не искать:

curl -s https://example.ru/products.yml | grep -c "<offer "

Затем убедитесь, что XML корректен целиком, а не только в начале. Любой валидатор XML покажет, где файл обрывается или где встретился неэкранированный символ. И проверьте дату в корневом элементе: она должна совпадать с сегодняшней, иначе выгрузка не отработала.

Наконец, откройте адрес фида в режиме инкогнито и посмотрите на код ответа. Файл, который у вас открывается по ссылке из админки, для внешнего робота может отдавать 403.

Как это устроено в Пруфене

Пруфен ежедневно разбирает товарные фиды и следит за числом предложений: когда каталог резко худеет, приходит уведомление — на Email, в Telegram, в Макс или звонком. Есть отдельные проверки для авто-фидов и фидов недвижимости, а проверка доступности ловит случай, когда сам файл начал отдавать ошибку. Бесплатно доступны 5 проверок без ограничения по времени.

Частые вопросы

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

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

Товары пропали, а фид валиден — где искать? Проверяйте не структуру, а содержимое: массовый available в значении false, нулевые цены, ссылки на несуществующие категории и карточки, отдающие 404. Формально корректный файл может описывать каталог, в котором нечего показывать.

Нужно ли закрывать фид от индексации? Разумно закрыть его от поисковых роботов в robots.txt, чтобы XML-файл не попадал в выдачу. Только убедитесь, что при этом он остаётся доступен для роботов площадок — иначе вы отключите загрузку каталога вместе с индексацией.

Была ли статья полезна?

Начните мониторинг прямо сейчас

Бесплатный тариф — до 5 проверок. 150 ₽ на баланс при регистрации.

Создать аккаунт