Ошибки Яндекс с XML Sitemap Yoast SEO

Иван Никитин и партнерыНовостиSEOОшибки Яндекс с XML Sitemap Yoast SEO

При анализе сайтов в Яндекс.Вебмастере который раз получаем вот такое предупреждение:

Предупреждение Яндекс об ошбиках в XML sitemap

При этом при детальном рассмотрении ошибка становится просто предупреждением, не влияющим на индексацию:

Ошибки Яндекс с 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. Доработали плагин. Теперь он еще и правильно канонизирует пагинацию архивов. Подробности позже.

Надеюсь, этот простой рецепт вам поможет.

комментариев 40

  1. Спасибо за Решение! недавно на своих сайтах тоже заметил такую же ошибку в вебмастере.

  2. Проверял на версии 3.7.1 Данное решение не работает, видимо что то поменялось в модуле.

  3. Здравствуйте! Подскажите, пожалуйста, в какую часть functions.php нужно вставить указанный выше код? Просто вписать его и все?

    • Нет, не делаем.

      1. Наличие или отсутствие картинок в карте сайта никоим образом не сказывается на их ранжировании. Максимум что, это лишняя гарантия их индексации, причем только в Google
      2. Яндекс вообще не понимает расширение XML карты сайта для картинок и считает это расширение ошибкой. Собственно об этом эта статья.
  4. Спасибо за решение!
    Валидаторы не ругаются, но карта сайта теряет html разметку при данном решении.

  5. Вставил второй вариант кода, отправил на проверку Яндексу, тот через пару часов проверил и всё равно ругается.

  6. У меня аналогичная проблема на двух сайтах. игнорю ошибки, однако, в поиске яндекса картинок практически нет((( Может что-нибудь посоветуете?

  7. Спасибо, статья помогла, я вставила второй вариант кода. Ошибка на post убралась, но появилась или осталась ошибка page-sitemap.xml, вот как ее убрать?

    • Вы правы, судя по всему, в новой версии Yoast этот хук действует только на посты. Как его распространить на все типы записей – напишу чуть позже.

    • Нет, не думаю, что решит. Это просто вывод или его отключение карты сайта самих картинок и вложений, а не отключение их в постах. А у вас просто в постах прикрепленных картинок нет, вот и нет ошибок… Я думаю.

  8. Здравствуйте. Подскажите пожалуйста. Почему то в плагине yoаst seo нет строки HML sitemaps. Перерыл весь инет.. нет ответов. Яндекс пишет чтобы я ввел файл sitemap. Что теперь делать,не понимаю.. будет ли Яндекс искать мой сайт?… Спасибо за ответ

      • Здравствуйте. Извините ,не так написал вам. Нажимал на вопрос, далее— посмотреть Hml карту сайта. И, открывается пустая страница.. нет ничего.. Пробовал: вкл.выкл.. , перезагружал, бесполезно, . В чём может быть проблема, Можно ли другим путем отыскать Xml карту?

        • Можете показать скриншот? Или, лучше, откройте мне админский доступ к сайту на email ivan.g.nikitin@gmail.com – я вам все сделаю…

          • Здравствуйте. Отправил пароль вам на почту.. Спасибо!!!

Добавить комментарий