https://www.lexium.ru/2015/05/oshibka-sintaksicheskogo-analiza-xml-v-wordpress/

Ошибка синтаксического анализа XML в WordPress

Мы, веб-мастера и SEO-оптимизаторы, в целом народ работящий и немного параноидальный. Последнее чаще всего случается у тех, кто в этом деле не первый год и имеют кой-какой опыт. Вот казалось бы, что может случиться с новым сайтом, если всё вроде хорошо и он вполне нормально работает?

Ничего, — скажет новичок, и будет в корне не прав. Товарищ! А ты давно проверял метатэги, роботс, сайтмап? А?! Что?! Всё ж нормально в прошлый раз… было? Ну-ну…

На самом деле, сервер где лежит твой сайт, это почти живая вещица, на которой, порой мистическим образом, что-то появляется, а что-то совсем даже наоборот, исчезает.

Вот пример простой, захожу сегодня на один из моих сайтов, проверить как себя sitemap.xml чувствует. Глядь, ан вместо него сообщение об ошибке.

XML-Error

А это, скажу я тебе, довольно-таки… фигово. Поисковые роботы могут обидеться и уйти, обозвав владельца сайта рукозадым неудачником.

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

Жму Ctrl-U и вывожу исходный код страницы с ошибкой. Вот кусочек, который находится в самом начале. В нём и притаилась ошибка.

XML-Error2

Казалось бы, ну подумаешь три пустых строчки вначале. Проблема XML-формата (а на самом деле наша с вами) в том, что браузеры (и не только) очень критичны к ошибкам в синтаксите таких файлов. Вот положено ему начинаться с открывающего тэга <?xml, значит вынь да предъяви. И даже если будут всего-лишь пустые строчки впереди, файл объявляется непригодным к службе.

Почему это случилось со мной?

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

Потому, самой первой рекомендацией везде пишут: вырубать плагины (можно все разом, можно по очереди) и смотреть исчезнет ошибка или нет. Еще можно временно переключиться на новую тему оформления. Если ошибка исчезла, значит дело в теме.

В моём же случае всё вообще просто. Дело в том, что я люблю добавлять всякие разные функции и возможности к шаблону (теме) сайта. Вносятся они, как правило, в файл functions.php Вот в нём и нужно искать нестыковки.

Что делать и куда бежать?

Итак, если ты тоже время от времени вносишь всякие финтифлюшки в шаблон, открывай functions.php и ищи открывающие и закрывающие тэги языка PHP.

Смотри картинку. Видишь? Между закрывающим и открывающим тэгами имеются пустые строки! Это то самое!

XML-func-sorce1

Просто файл функций обрабатывается вместе с любой страницей сайта, включая сайтмап. Вот эти строки и выходят нам боком.

Убираем их!

XML-func-sorce2

Сохраняем functions.php на сервере.

Обновляем sitemap.xml и смотрим.

XML-good

Всё работает. И дело не в том, как исправить ошибку синтаксического анализа XML в нашем сайтмапе, дело в принципе! Проверять надо! Всё проверять! Всегда! А потом, через некоторое время, проверять снова. Только так! Делайте выводы, господа.

Напишите комментарий