Проверка YML-фидов: 5 инструментов, ограничения и слепые зоны
Как находить и исправлять ошибки в фидах самостоятельно? Performance-менеджер агентства Adgasm Наталья Папулина разбирает популярные типы ошибок и рассказывает, как использовать для проверки специальные валидаторы и даже ChatGPT.
При загрузке фидов в аккаунт Директа часто можно столкнуться с ошибками. При этом их описание бывает слишком общим и не дает понимания, что конкретно не так и как это исправить. Например, описание вроде: «Фатальная ошибка парсера».

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

Согласно справке, валидатор Директа проверяет следующие условия:
-
присутствие всех обязательных элементов;
-
корректность всех названий элементов;
-
присутствие каждого элемента не более одного раза.
При невыполнении любого из них файл будет отклонен. Но правило об уникальности элементов применяется не ко всем тегам: <picture> и <param> по спецификации могут повторяться в одном офере.
Но бывает и такое, что YML-фид успешно прошел проверку, а проблемы в нем остались — просто это ошибки другого уровня, которые валидатор Директа либо не проверяет, либо считает допустимыми.
И тут логично возникает вопрос: «Можно ли самостоятельно найти все ошибки в фиде и исправить их, не закопавшись в огромном количестве товаров?». Именно об этом мы и поговорим:
4 вида ошибок в YML-фиде
Условно все ошибки можно разделить на четыре категории:
-
Синтаксические — это ошибки, при которых файл нарушает правила XML и не может быть корректно прочитан парсером. Проще говоря, это ситуации, когда XML «написан неправильно», независимо от того, какие данные в нем содержатся.
-
Структурные — такие ошибки связаны с тегами и структурой фида, даже если XML валиден. То есть фид «технически читается», но понимается неправильно, потому что нарушает логику YML, которую ожидают сервисы Яндекса.
-
Ошибки значений тегов и атрибутов — самые коварные, потому что фид выглядит корректным, но товары не участвуют в показах или обрабатываются неправильно. Получается, что визуально тег/атрибут есть, но значение у него неправильное.
-
Ошибки контента или качества данных — они связаны с необязательными или условно обязательными данными в YML-фиде, которые не всегда приводят к отклонению товаров, но влияют на качество объявлений, показы и эффективность рекламы.
Разберем на примерах, какие категории ошибок приводят к отклонению фида, а какие не будут обнаружены при проверке внутренним валидатором Яндекса, но окажут влияние на качество рекламы.
|
Категория ошибки |
Примеры |
Последствия |
|
Синтаксические ошибки XML |
Незакрытые теги или лишние символы |
Фид не открывается, парсеры не читают товары. Итог — отклонение фида |
|
Неправильная кодировка |
||
|
Спецсимволы & без экранирования |
||
|
Структурные ошибки YML |
Отсутствие обязательных тегов |
Часть товаров не показывается, снижается охват. В ряде случаев — отклонение фида |
|
Неправильное вложение тегов |
||
|
Лишние/неподдерживаемые теги |
||
|
Повторяющиеся ID или дубли товаров |
||
|
Ошибки значений тегов и атрибутов |
Некорректное значение available (yes вместо true) |
Часть товаров не показывается, присутствуют не все элементы объявления, нет показов в Товарной галерее |
|
Пустой ID или с пробелами/спецсимволами |
||
|
Некорректный формат цены или валюты |
||
|
Ошибки контента или качества данных |
Отсутствие описания, изображений, old price |
Присутствуют не все элементы объявления, снижается CTR, могут быть предупреждения в валидаторе |
Делаем вывод, что самые фатальные ошибки — синтаксические. Если они есть, сервис не сможет прочитать фид целиком. В такой ситуации файл не разбирается парсером, а значит невозможно перейти к проверке структуры YML, значений тегов или атрибутов — эти этапы проверки просто не запускаются.
Хорошая новость: синтаксические ошибки легко находить с помощью XML-валидаторов, редакторов с подсветкой ошибок или даже простого открытия в браузере (для небольших файлов). Ниже — разберем их подробнее.
5 вариантов проверки фидов
Ниже разберем, как проверить YML-фиды на ошибки с помощью:
-
ИИ.
XML-валидаторы
Существует большое количество XML-валидаторов в свободном доступе, например, FreeFormatter, CodeBeautify, LangStop XML Validator. Они удобны для разовой проверки и быстрой диагностики ситуаций, когда фид не открывается или не проходит валидацию из-за фатальных XML-ошибок. Такие онлайн-инструменты:
-
указывают на причину синтаксической ошибки — например, отсутствие закрывающего тега <shop> или некорректные спецсимволы;
-
уточняют, где возникла ошибка в файле (в отличие от внутреннего валидатора Директа).

Валидаторы и плагины в редакторах кода
Это встроенные или подключаемые расширения, которые позволяют:
-
проверять синтаксис XML/YML прямо в редакторе;
-
подсвечивать ошибки по строкам и колонкам;
-
форматировать XML для лучшей читаемости.
В отличие от онлайн-валидаторов такие инструменты удобнее для работы с большими фидами и частых правок: они не имеют жестких ограничений на размер файла и не требуют загрузки данных во внешние сервисы. Примеры:
-
VS Code — плагины XML Tools и Red Hat XML;
-
Notepad++ — плагин XML Tools;
-
IntelliJ IDEA / WebStorm — встроенные возможности для XML;
-
Sublime Text — плагины XML Tools или XML Validator.
Я использую Notepad++ с плагином XML Tools. Вот его основные функции:
-
Check XML syntax now — проверяет валидность XML-файла, позволяя быстро выявить синтаксические ошибки.
-
Pretty Print (XML Only with Line Breaks) — форматирует XML, расставляет отступы. В результате становится гораздо удобнее просматривать и анализировать файл в виде структуры:
<yml_catalog> → <shop> → <offers> → <offer> -
Validate now — проверяет документ по XSD/DTD, если есть схема для внутреннего XML (к сожалению, для YML официальной схемы нет).
-
XPath query — находит узлы по выражению XPath, например, можно выбрать все <offer> без <price>.
-
XML Tree Viewer — показывает дерево XML, чтобы визуально оценить структуру фида и вложенность тегов.
Редакторы с валидаторами — это основной инструмент разработчика фидов. Они не заменяют проверки Яндексом, но помогают быстро и эффективно находить синтаксические и частично структурные ошибки до загрузки — экономят время и ресурсы.
Проверка XML через браузер
Проверка через браузер — самый быстрый способ выявления фатальных ошибок без дополнительных инструментов. Когда вы открываете YML-фид (XML-файл) в браузере, он не проходит полноценную валидацию, но вы можете увидеть, есть ли синтаксические ошибки и частично структурные проблемы, особенно на маленьких фидах. Подробнее о том, как это работает, и сравнение с полноценными валидаторами — в таблице.
Чтобы увидеть таблицу целиком, зажмите ее и потяните курсором в нужную сторону.
|
Тип ошибки |
Что видно в браузере |
Что выявляет валидатор (XML/Директ) |
Примеры |
|
Синтаксические |
❌ Файл не открылся, сообщение «XML Parsing Error» |
✅ Полная диагностика (в XML-валидаторах с указанием строки/тега) |
Незакрытые теги, неправильная вложенность, спецсимволы без экранирования |
|
Тип ошибки |
Что видно в браузере |
Что выявляет валидатор (XML/Директ) |
Примеры |
|
Структурные |
⚠ Иногда видно странное расположение тегов |
✅ Валидатор Директа показывает отсутствие обязательных тегов и неправильную структуру |
<offer> вне <offers>, дублирование корневого тега |
|
Тип ошибки |
Что видно в браузере |
Что выявляет валидатор (XML/Директ) |
Примеры |
|
Ошибки значений тегов/атрибутов |
❌ Не видно |
✅ Валидатор Директа показывает некорректные значения (только для обязательных тегов) |
<currencyId>RURR</currencyId>, available=yes |
|
Тип ошибки |
Что видно в браузере |
Что выявляет валидатор (XML/Директ) |
Примеры |
|
Ошибки контента или качества данных |
⚠ Можно заметить пустые теги или недостающие изображения |
❌ Валидатор не всегда показывает предупреждения |
<picture> </picture> |
|
Тип ошибки |
Что видно в браузере |
Что выявляет валидатор (XML/Директ) |
Примеры |
|
Кодировка |
❌ Нечитаемые символы |
✅ Валидатор укажет на несоответствие кодировки |
Кириллица отображается некорректно, UTF-8 vs Windows-1251 |
|
Тип ошибки |
Что видно в браузере |
Что выявляет валидатор (XML/Директ) |
Примеры |
|
Спецсимволы |
⚠ Могут ломать отображение, выделяется ошибка |
✅ Валидатор подсвечивает некорректные символы |
& вместо & < в описании без экранирования |
XML-валидатор Яндекс Вебмастера
YML-фид — это XML-файл, который соответствует требованиям и стандартам Яндекса. Из этого следует, что формально валидный XML может быть непригоден для продвижения в Поиске и РСЯ. Например, typePrefix является обязательным элементом для фида произвольного типа в Директе, но необязателен для других сервисов, использующих YML-формат (например, Маркета). Поэтому XML-валидаторы не подсвечивают его отсутствие как ошибку, а значит, только этой проверки будет недостаточно.
У самого Яндекса есть инструмент, представляющий что-то среднее между общедоступными XML-валидаторами и внутренним валидатором Директа — это XML-валидатор Яндекс Вебмастера. Он проверяет:
-
синтаксис XML;
-
корректность кодировки;
-
общую целостность документа;
-
часть ошибок в структуре YML;
-
некорректные значения некоторых тегов;
-
неизвестные теги.
По сравнению с внутренним валидатором Директа XML-валидатор Яндекс Вебмастера:
-
выдает более понятные сообщения об ошибках с указанием строк, в которых они содержатся;
-
не находит специфические ошибки именно Директа (а не YML).

По сравнению с XML-валидаторами XML-валидатор Яндекс Вебмастера:
-
учитывает стандарты Яндекса (YML) — находит больше ошибок;
-
ограничен по размеру: не более 10 МБ — не подходит для больших фидов.

Использование ИИ при валидации фидов
Решением может стать использование ИИ, но просто закинуть фид в ChatGPT и попросить его найти ошибки — явно плохая идея, которая не даст нужного результата. ИИ работает эффективно только при четко заданных правилах проверки и понятном формате результата.
К сожалению, ИИ-помощник Директа пока не умеет валидировать фиды.

Поэтому обратимся за помощью к другим нейросетям, например, ChatGPT. Рассмотрим ситуации, в которых он может быть полезен:
-
Внутренний валидатор Директа выдал ошибки, которые не нашли XML-валидаторы и валидатор Вебмастера. В итоге у нас нет полного списка оферов, а только примеры.
-
Внутренний валидатор Директа не нашел ошибок, но есть недочеты, которые влияют на качество объявлений. Например, у части оферов могут быть пустые теги description или picture. Также отсутствие элемента name для фида комбинированного типа не будет ошибкой, но нам он может быть необходим для ручной генерации заголовков вместе с typePrefix, vendor, model, и пр.
Можно попробовать закрыть задачу полностью с помощью ChatGPT. Но важно дать ИИ максимально четкие однозначные инструкции: что по каким правилам проверять и как должен выглядеть результат. Ниже — пример такого запроса, его можно адаптировать под разные требования для конкретного проекта.
Промпт для проверки YML-фида комбинированного типа
Ты эксперт по YML-фидам Яндекс Директа.
Твоя задача — проверить предоставленный YML-фид (XML) на наличие ошибок по следующим правилам:
-
Синтаксис XML — файл должен быть корректным и парситься.
-
Один корневой элемент — <yml_catalog> (допустимо с атрибутом date в формате YYYY‑MM‑DD hh:mm).
-
Элемент <categories> внутри <shop> должен быть расположен до <offers>.
-
Некорректная вложенность тегов — ошибка (например, <offer> вне <offers>).
-
Обязательные атрибуты для каждого <offer>:
-
по правилам Директа: type;
-
в нашем случае: available.
-
-
Обязательные теги для каждого <offer>:
-
по правилам Директа: id, categoryId, url, name, typePrefix, vendor, model;
-
в нашем случае: price, currencyId, available, description, picture.
-
-
Повторяющиеся <offer> или дубли ID — ошибка.
-
Элемент <offer> может содержать только один <categoryId>.
-
Пустые теги — ошибка.
-
Значения тегов:
-
currencyId — только RUR или RUB;
-
available — только true/false;
-
price — число, разделитель точка, цена > 0;
-
oldprice — должно быть больше price;
-
url — без пробелов, обязательно наличие протокола http/https, длина ≤ 2048 символов.
-
-
Наличие неподдерживаемых тегов — ошибка, допустимые: name, typePrefix, vendor, model, categoryId, url, picture, description, sales_notes, param, price, oldprice, currencyId, video, vendorCode, market_category, store, pickup, delivery, manufacturer_warranty, country_of_origin, age, adult, downloadable, collectionId, custom_label_0..4, custom_score, collection id.
Вывод должен быть в виде таблицы с колонками:
-
номер строки и ID офера;
-
описание ошибки;
-
как исправить (правильный вариант).
Используй максимально точные номера строк по исходному файлу.
Полученный в таком виде результат поможет подготовить подробное ТЗ для разработчика на исправление всех ошибок.

Вывод
Помните, что ИИ не заменяет проверку в Директе — всегда нужно перепроверять фид после исправлений. Комбинация классических валидаторов, инструментов Яндекса и ручных (или полуавтоматических) проверок остается на сегодняшний день самым надежным подходом.
Проверка всегда должна быть многоуровневой: от синтаксиса и структуры до значений тегов и контента. Использование ИИ в этой связке позволяет закрыть последний пробел — быстро анализировать большие фиды, находить ошибки, которые не подсвечиваются стандартными валидаторами, и формировать детальные списки правок для разработчиков и контент-менеджеров.
Больше о работе с фидами — в спецпроекте «Настольная книга по работе с фидами»:
Ваша реклама на ppc.world
от 10 000 ₽ в неделю
Читайте также
Главные новости контекстной рекламы и аналитики за февраль 2026 года
Пройдет ли ваш бизнес налоговую проверку в 2026 году? Ответьте на 6 вопросов инспектора
Последние комментарии