Робочий стенд · перевірка працює у вашому браузері

Фід не обробився через «помилки форматування XML»: де саме ламається і як це не повторюється

Стенд під ваше завдання: обидва фіди (російський і український) не пройшли обробку, кількість товарів у Merchant Center різко впала. Нижче перевірка XML, яка показує рядок і причину помилки, типові причини та порядок робіт.

Робота з кодом на ноутбуціКод на екрані ноутбукаРядки XML-коду в редакторіРобоче місце розробника

1. Що видно на вашому скріншоті Merchant Center

Показник зі скріншотаЗначенняЩо це означає для діагностики
Всього товарів27 тис.Раніше на графіку було близько 160 тис. Падіння ступінчасте, тож зламалося кілька разів, а не одноразово.
Надано вами (через фіди)4,47 тис.Тільки це зараз приходить із фідів. Решту Google ще тримає зі старих оброблень.
Знайдено Google22,5 тис.Це товари, які Google підхопив сам (розмітка на сайті), не з вашого фіда. Вони можуть мати застарілі ціни й наявність.
Не показується в Google19 тис.Основна втрата показів і реклами.

Цифри прочитані зі скріншота, який додано до вашого завдання. Причину кожного падіння на графіку (відомі дати змін фіда на вашому боці) уточнюємо разом на старті.

2. Перевірка XML: вставте фід або його фрагмент

Перевірка йде локально в браузері, нічого нікуди не надсилається. У полі приклад зі штучними помилками, щоб було видно, як це працює.

0товарів (item) у фрагменті
0помилок
0попереджень

Що перевіряється: синтаксис XML (рядок і колонка), символ & без екранування, керівні символи, BOM або пробіли перед XML-декларацією, дублі id, обов'язкові поля Google (id, title, description, link, image_link, price, availability), формат ціни.

3. Типові причини «помилок форматування XML» і виправлення

ПричинаЯк проявляєтьсяВиправлення на стороні генерації фіда
Символ & або < у назві чи описі без екрануванняФід відхиляється повністю, не окремі товариЕкранувати або загортати текст у CDATA на виході, не в шаблоні
Керівні символи (залишки копіювання з Word, зворотний слеш, нульовий байт)Помилка на конкретному рядку, часто після імпорту нових товарівЧистити символи в діапазонах, заборонених XML 1.0, перед записом
Кодування файлу не збігається з декларацієюКракозябри в назвах або помилка на першому нелатинському символіОдин UTF-8 на всьому ланцюжку: база, генератор, файл, заголовок відповіді
Обірваний файл (генерація не дописала закриваючі теги)Помилка «unexpected end» у кінці файла, розмір файла різко меншийПисати у тимчасовий файл і підміняти основний лише після успішної валідації
Дубльовані id між російською й українською версіямиОдин фід «з'їдає» товари іншогоОкремі джерела даних і окремі правила id для кожної мови
Порожні обов'язкові поля (ціна, наявність, посилання)Товари відхиляються поштучно, видно в діагностиціПравило виключення таких товарів або значення за замовчуванням

4. Порядок робіт

Крок 1Доступ до Merchant Center і до місця, де формується фід. Завантажую обидва фіди, знаходжу рядок і причину помилки в кожному.
Крок 2Виправляю джерело помилки в генерації, а не латаю файл руками, щоб вона не повернулась після наступного оновлення.
Крок 3Повторне отримання фіда в Merchant Center, перевірка статусу обробки та діагностики для російського й українського фіда окремо.
Крок 4Запобіжник: автоматична перевірка після кожної генерації (розбір XML, кількість товарів проти попередньої, сповіщення при різкому падінні).

Одразу після виправлення відхилені Google товари повертаються не миттєво: це залежить від повторної обробки. Терміни визначає Merchant Center, ми контролюємо результат за статусами.

Стенд GuardLabs. Приклад у перевірці штучний, перевірка працює на будь-якому вашому XML.