Ошибки Яндекс с XML Sitemap Yoast SEO
При анализе сайтов в Яндекс.Вебмастере который раз получаем вот такое предупреждение:
При этом при детальном рассмотрении ошибка становится просто предупреждением, не влияющим на индексацию:
Ситуация проясняется, Яндекс не понимает дополнение image, которое присутствует в XML Sitemap.
Лирическое отступление. Вообще-то это обычный косяк Яндекса! Само слово XML (eXtensible Markup Language — расширяемый язык разметки) изначально предполагает любые и произвольные расширения в разметке, при условии, что они делаются в другом пространстве имен. Однако разработчики Яндекса о пространствах имен XML имеют такое же представление, как слушательницы хореографических курсов о мелиорации Узбекистана.
На большинстве наших сайтов XML Sitemap генерируется плагином Yoast SEO, который решает наши задачи более чем полно, и менять его из-за тупой ошибки обработки Яндекса нам не хотелось бы. Поэтому мы попытались найти иное решение.
И решение было найдено. Yoast SEO, как и большая часть плагинов и дополнений к WordPress сделан с учетом архитектуры WP, то есть использует хуки WordPress, что позволяет нам контролировать поведение плагина, не вмешиваясь в программный код (вот за что мы любим WordPress). Был найден фильтр wpseo_xml_sitemap_img_src, который отвечает за формирование URL изображения и мы на него повесили простой обработчик в functions.php:
// Уберем из карты сайта URL картинок
add_filter( 'wpseo_xml_sitemap_img_src', 'remove_image_url' );
function remove_image_url( $uri ) {
return '';
}
Всё! Ссылок на изображения в XML Sitemap WordPress больше нет.
Update. Тут предложили еще более простое решение:
/* Remove Images From Yoast Sitemap */
add_filter( 'wpseo_xml_sitemap_img', '__return_false' );
Update 2. Написал небольшой плагин, который это делает. Получить его бесплатно можно здесь. Если не хотите возится с настройкой темы, просто установите и активируйте этот плагин.
Update 3. июль 2017. Исправил плагин, сейчас он отключает кэш карт сайта в SEO Yoast, и явно фильтрует по регулярным выражениям элементы, которые не нравятся Яндексу. Скачиваем свежую версию плагина.
Update 4. апрель 2019. Доработали плагин. Теперь он еще и правильно канонизирует пагинацию архивов. Подробности позже.
Надеюсь, этот простой рецепт вам поможет.
Спасибо за Решение! недавно на своих сайтах тоже заметил такую же ошибку в вебмастере.
Проверял на версии 3.7.1 Данное решение не работает, видимо что то поменялось в модуле.
Yoast SEO 3.7.1 стоит на этом сайте. Решение работает.
Здравствуйте! Подскажите, пожалуйста, в какую часть functions.php нужно вставить указанный выше код? Просто вписать его и все?
В любое место functions.php вышей темы. Без разницы.
Спасибо! Вставила код — в яндекс вебмастере эта ошибка исчезла!
Вот и славно! Вообще Вам интересны такие трюки с WordPress? Писать мне о них чаще?
Будем только рады! Спасибо
Тема оч актуальна! Давно доставала это проблема, спасибо за решение!
Разве исключив изображения из sitemap, мы не делаем хуже себе?
Нет, не делаем.
Спасибо за решение!
Валидаторы не ругаются, но карта сайта теряет html разметку при данном решении.
Разве? Вот: https://ivannikitin.com/page-sitemap.xml
Вставил код, отправил на проверку, посмотрим что Яндекс решит!
Вставил второй вариант кода, отправил на проверку Яндексу, тот через пару часов проверил и всё равно ругается.
Ссылку на XML Sitemap можете привести?
http://hyiphunter.org/post-sitemap.xml
В коде страницы image нет, попробую ещё раз отправить яндексу.
Всё отлично, второй вариант кода работает.
У меня аналогичная проблема на двух сайтах. игнорю ошибки, однако, в поиске яндекса картинок практически нет((( Может что-нибудь посоветуете?
Спасибо. Помогло. Полезно!
Спасибо, статья помогла, я вставила второй вариант кода. Ошибка на post убралась, но появилась или осталась ошибка page-sitemap.xml, вот как ее убрать?
Вы правы, судя по всему, в новой версии Yoast этот хук действует только на посты. Как его распространить на все типы записей — напишу чуть позже.
Как вариант, попробуйте просто у СТРАНИЦ (только для страниц!) убрать картинки в админке! Вот для примера наша карта страниц.
https://ivannikitin.com/page-sitemap.xml
Спасибо, у меня все получилось!
Воспользовалась вашей рекомендацией, надеюсь, ошибка исчезнет )
Дополняю свой предыдущий комментарий: все прекрасно сработало! Спасибо за полезную статью!
Простое и действенное руководство, все работает. Спасибо!
Спасибо за проделанную работу!
Пробую, не выходит чет. Подскажите пожалуйста че так?
главное на одном из сайтов у меня это давно работает в блоге. а сейчас вот сюда ставлю не пашет https://doctordik.com/blog/post-sitemap.xml
Сори, все заработало! видимо кэш был…
и еще вот почему-то валидатор ругается — http://prntscr.com/h4u2ll
Отлично! А я уж было собрался тестировать…
А разве это не решает проблему? У меня ошибок нет. https://tovarniygid.ru/sitemap.xml
http://img-fotki.yandex.ru/get/369167/29138252.10/0_92b95_4dd560cc_orig.png
Нет, не думаю, что решит. Это просто вывод или его отключение карты сайта самих картинок и вложений, а не отключение их в постах. А у вас просто в постах прикрепленных картинок нет, вот и нет ошибок… Я думаю.
Ошибаетесь, Gid Tovarniy прав! Решает!
Здравствуйте. Подскажите пожалуйста. Почему то в плагине yoаst seo нет строки HML sitemaps. Перерыл весь инет.. нет ответов. Яндекс пишет чтобы я ввел файл sitemap. Что теперь делать,не понимаю.. будет ли Яндекс искать мой сайт?… Спасибо за ответ
Как это нету? Вот здесь: http://ВАШ_САЙТ.РУ/wp-admin/admin.php?page=wpseo_dashboard#top#features
Возле слов «XML-карта сайта» нажать на знак вопроса — развернется карта сайта. Ну понятно, она должна быть включена.
Здравствуйте. Извините ,не так написал вам. Нажимал на вопрос, далее— посмотреть Hml карту сайта. И, открывается пустая страница.. нет ничего.. Пробовал: вкл.выкл.. , перезагружал, бесполезно, . В чём может быть проблема, Можно ли другим путем отыскать Xml карту?
Можете показать скриншот? Или, лучше, откройте мне админский доступ к сайту на email ivan.g.nikitin@gmail.com — я вам все сделаю…
Здравствуйте. Отправил пароль вам на почту.. Спасибо!!!