Здравствуйте, дамы и господа, в этой статье расскажу о том, что делать, если карты сайта вложений (attachment-sitemap.xml), сгенерированные плагином Rank Math SEO выдают ответ сервера 404. На самом деле проблема исправляется довольно просто.
И в этой пошаговой инструкции я покажу, что нужно для нормального отображения карт сайта изображений сделать.
Исправляем ответ сервера 404 для XML-карт сайта вложений
На самом деле вложения лучше разрешить к индексации, но не включать в карту сайта, учитывая, что туда попадут и не привязанные к страницам вложения, например, миниатюры, а также версии изображений с разными размерами, сгенерированные WordPress автоматически, они будут выдавать ошибку 404 в любом случае, исправить это можно только запретив WordPress автоматически генерировать миниатюры. Так что вложения в картах сайта не очень полезны.
Но если решили включить, то читаем дальше.
Не всегда всё идёт как по маслу, иногда карты сайта вложений у плагина Rank Math могут попросту не работать. И причина, вероятнее всего, кроется в настройках плагина, которые вы делали когда-то.
В первую очередь вам нужно проверить, включена ли переадресация с вложений на страницы сайта.
Для этого переходим в админку сайта → Rank Math → «Общие настройки» → «Ссылки».
И убеждаемся, что переадресация вложений отключена. Обычно без отключения этой функции вообще нельзя включить XML-карты сайта для вложений.
Если функция была включена, отключаем её. Переходим в раздел XML-карта сайта и включаем функцию «Изображения в картах сайта».
Дальше в том же разделе переходим в подраздел «Вложения».
И включаем их в карту сайта.
Проверяем, если до сих пор выдаёт ответ сервера 404 и вложения в картах недоступны, то переходим в раздел «Заголовки и мета» → «Вложения».
Скорее всего, вы закрывали вложения от индексации. И тогда у вас будет два варианта:
- Вариант 1. Просто отключите «Метатеги Robots Медиафайлы» и тогда будут использованы общие правила индексации для изображений.
- Переставьте чекбокс с позиции «Не индексировать» или любой другой позиции на Index.
Сохраните изменения. Очистите кеши, если есть плагины кеширования, проверяйте работоспособность карты сайта.
Обычно этого достаточно, чтобы вложения в картах сайта начали отображаться.
Но если и это не помогло, то проблема может крыться в кешировании.
Чтобы исправить проблему, нужно либо сменить плагин кеширования (если там невозможно исключить URL из кеширование), либо отключить кеширование для Sitemap.
Например, в WP Super Cache вам нужно перейти в настройки плагина → «Расширенные».
Пролистайте ниже до «Настройки отклонения URL».
И добавьте туда такой код:
sitemap?\.xml?
[a-z0-9_\-]*sitemap[a-z0-9_\-]*.(\xml|xsl)?
([az0-9_\-]*?)sitemap([a-z0-9_\-]*)?.xml
И нажмите кнопку «Сохранить список запрещённых фрагментов». Для других плагинов есть инструкция на сайте плагина Rank Math: https://rankmath.com/kb/exclude-sitemaps-from-caching/. Она на английском языке, но с переводчиком всё понятно.
Чтобы отключить кеширование карт сайта на сайте, можно использовать и другой вариант. Нужно в кастомный плагин или functions.php дочерней темы добавить следующий код:
add_filter( 'rank_math/sitemap/enable_caching', '__return_false');
Это позволит отключить кеширование карт сайта.
Если по ссылкам в картах ваши вложения не открываются, значит, у вас на сайте есть плагины или кастомный код, который переадресует вложения на главную страницу или блокирует их отображение в отдельных страницах.
Но тут у каждого свой случай. Придётся поискать, какой плагин или код данную функцию выполняет.
Также в карту сайта попадут миниатюры. Они будут всегда выдавать ошибку 404, так как на самом деле не прикреплены ни к одной странице. Потому доступны будут только те вложения, которые прикреплены к страницам или записям.
Чтобы этого избежать, придётся запретить WordPress делать миниатюры и генерировать кучу дополнительных изображений с ресайзами.
Надеюсь, эта статья вам помогла, если есть вопросы или предложенные методы не сработали, сообщите в комментариях.
На этом с вами прощаюсь, желаю успехов и всего доброго!