Ошибка Google XML Sitemaps


Ошибка синтаксического анализа XML sitemap.xml

Карты всякие нужны. Карты всякие важны. :)

Google XML Sitemaps Error

Для создания карты сайта sitemap.xml, до последнего момента я использовал плагин Google XML Sitemaps.

Ни для кого не секрет, что карта sitemap.xml (для роботов) улучшает индексацию сайта. Для создании карты сайта sitemap.xml на WordPress многие используют плагин Google XML Sitemaps.

Да что там греха таить, я и сам до недавнего времени успешно его юзал. Когда начинают возникать проблемы с индексацией нового контента, первое что делает вебмастер, это проверяет наличие содержание файлов robots.txt и sitemap.xml, на предмет некорректного заполнения данными.

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

Тогда я зашел в настройки плагина и выполнил все необходимые рекомендации по настройке, а именно удалил (забэкапил) физические файлы sitemap.xml и sitemap.xml.gz, после чего начал построение виртуальной карты сайта, достаточно обновленного формата.

Но в какой-то момент, что-то пошло не так. :)

Открыв свой sitemap, я обнаружил уже известную мне по багу RSS фида ошибку синтаксического анализа xml,  объявление xml или текста не в начале сущности, строка 2 символ 1.

Более того, я даже увидел на экране в браузере этот чудесный символ ^ который может быть следствием  пустой строки между участками кода или BOM меткой, что более вероятно.

Как исправить ошибку синтаксического анализа XML?

Решение в данном случае простое, это поиск пустых строк (или UTF символа ^) в коде плагина. Но в коде мне так и не удалось найти это коварный пустой символ, даже не помогло последовательное отключение всех плагинов и переустановка Google XML Sitemaps.

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

Благо на Localhost в бэкапах у меня есть более ранние версии плагина Google XML Sitemaps, но использование уязвимых плагинов на реальном сайте, даже временно, не есть good.

В качестве замены стандартному Google XML Sitemaps можно использовать Sitemap.xml который идет в составе дополнительных модулей к плагину All In One SEO Pack но скажу честно, мне не хотелось сдаваться просто так, и поэтому прислушавшись к собственной интуиции я решил установить плагин Fix Rss Feeds и пройтись по всем скриптам сайта, и таки удалить этот загадочный символ. 😉

После того, как Fix Rss Feeds пофиксил все PHP документы, я отключил (на всякий случай) All In One SEO Pack и переустановил плагин Google XML Sitemaps, предварительно переименовав файлы sitemap.xml.gz и sitemap.xml.

Google XML Sitemaps

 

И о чудо! Мне удалось создать виртуальную карту сайта для ботов, теперь уже обновленную и созданную в угоду поисковому гиганту Google! 😀

Пользуясь случаем, я прошелся по некоторым блогам на WordPress и обнаружил, что у большинства блогеров стоит еще старый (возможно уже обновленный) но не перестроенный sitemap. Да и наверняка, многие уже заметили некоторые задержки с индексацией новых материалов поисковой системой Яндекс.

По большому счету ничего ужасного в том, что на вашем ресурсе размещен еще старый, не обновленный сайтмап  — нет.

Однако, каждый веб мастер знает должен знать о том, что в SEO мелочей не бывает, и даже когда кто-то очень уверенно говорит о всего лишь рекомендательной функции данного файла,  посещая его ресурс обнаруживаешь там полноценную, завершенную и обновленную карту сайта.

Если посмотреть логи сервера, то первое что можно обнаружить в них, это строки очень похожие на эти:

"GET /sitemap.xml HTTP/1.0" 301 315 "-" "Mozilla/5.0 (compatible; Googlebot/2.1;)"
"GET /sitemap.xml HTTP/1.0" 200 8917 "-" "Mozilla/5.0 (compatible; YandexBlogs/0.99; robot; B;)"

В которых отчетливо можно увидеть, острое желание ботов получить заветную карту.

Для создания оригинальных рисунков, я решил открыть один бэкап, которых стоит на отдельном компьютере под управление ОС Windows, естественно новая в нем только БД SQL, а скрипты движка еще не обновленные, но на мое удивление плагин Google XML Sitemaps обновился успешно, и рисунок пришлось создавать по памяти.

Следовательно, в моем случае ошибки с XML появляются только после обновления движка, и если раньше мне их приходилось исправлять в ручную, то сегодня мне пришел на помощь плагин Fix Rss Feeds, который попутно пофиксил и вывод RSS фида.

P.S. Проверьте обязательно свою карту сайта для роботов, и если возникнет ошибка после обновления Google XML Sitemaps, то плагин Fix Rss Feeds вам в помощь. :)