Ошибки фидов RSS выделены в отдельную категорию, потому что фид читается машиной: один лишний символ делает недействительным весь файл. В справке Яндекса объясняется почему и приводится процедура устранения для каждой ошибки.
Почему ломаются фиды
Фид должен соответствовать строгим требованиям: формат данных, обязательные поля, ограничения на длину строк и URL, кодировка XML и синтаксис. Яндекс перечисляет мелочи, которые убивают файл: лишняя кавычка, неверный формат даты, слишком длинный URL.

Ошибки синтаксического анализа
- Неправильно оформленные атрибуты — значения должны быть заключены в кавычки, кавычки должны совпадать, атрибуты не должны пересекаться или быть вложены неправильно, специальные символы должны быть экранированы (
&вместо простого амперсанда), и никакой элемент не должен повторять имя атрибута. - Пропущенная кавычка — каждая открывающая кавычка требует закрывающей. Практический совет Яндекса: если файл редактировался вручную, посмотрите, что было изменено в последнюю очередь.
- Некорректно переопределенный заголовок HTTP — дублированные или неверно заданные заголовки в фиде.
- Неправильно закрытый CDATA — каждый раздел начинается с
<![CDATA[до]]>, и случайный символ]внутри может закрыть его раньше времени. Это тонкий момент, так как файл выглядит корректно, а парсер с этим не согласен. - Недопустимый символ — символ вне диапазона, разрешенного форматом.
Рабочий метод, предписанный Яндексом
- Найдите код ошибки.
- Прочтите, что он означает.
- Выполните шаги.
- Исправьте все сообщенные ошибки одинаковым образом.
- Отправьте на повторную проверку.
- Примените рекомендации по предотвращению, чтобы это не повторилось.
Повторяющаяся инструкция, которую стоит обобщить
Почти каждая запись заканчивается двумя одинаковыми предложениями: прогоните файл через валидатор XML или YML и, если фид генерируется программно, проверьте код, который его создает. Это настоящее исправление. Фид, исправленный вручную, снова сломается при следующей публикации; генератор, исправленный один раз, перестает производить ошибку.

Как мы это применяем
We treat every feed error as a generator bug rather than a file to patch, which is what Yandex effectively recommends. The one that costs the most time is the prematurely closed CDATA section, because the file reads correctly to a human. Running the feed through a validator on every build — not only when something is reported — is a five-minute pipeline addition that removes this whole category.
Связанные услуги