Будучи загружен более 1 миллиона раз, плагин WordPress SEO плагин на сегодняшний день является лучшим и наиболее полным SEO плагином для WordPress. В то время как он не дал нам никаких проблем в прошлом, для некоторых пользователей это была боль. Недавно один из наших клиентов столкнулся с вопросом о получении ошибки 404 для своих карт сайта порожденных плагином WordPress SEO от Yoast. После нескольких попыток, нам удалось выяснить решение. В этой статье мы покажем вам, как исправить ошибку 404 в карте сайта плагина WordPress SEO от Yoast.
Первое, что вы должны сделать, это открыть файл .htaccess (вы можете сделать это с помощью плагина WordPress SEO > Возможность редактирования файлов) и просто добавьте следующий код там:
# WordPress SEO - XML Sitemap исправление <IfModule mod_rewrite.c> RewriteEngine On RewriteBase / RewriteRule ^sitemap_index.xml$ /index.php?sitemap=1 [L] RewriteRule ^([^/]+?)-sitemap([0-9]+)?.xml$ /index.php?sitemap=$1&sitemap_n=$2 [L] </IfModule> # конец WordPress SEO - XML Sitemap исправление
Для большинства людей это исправило проблему. Кто-то сообщил, что в то время как этот код фиксируется проблему, страница все еще посылала заголовок ответа 404, что означало, что инструмент Google Вебмастера не мог найти её. Ну в случае нашего клиента, указанное решение не решило проблему.
В то время как это не является предпочтительным, у нас не было выбора, кроме как изменить файлы ядра плагина, чтобы исправить эту проблему. Отредактировали class-sitemaps.php, расположенный в “/wp-content/plugins/wordpress-seo/inc/class-sitemaps.php”.
Вы должны смотреть на код функции init() и сделать этот раздел выглядеть следующим образом:
01 /** 02 * Initialize sitemaps. Add sitemap rewrite rules and query var 03 */ 04 function init() { 05 global $wp_rewrite; 06 $GLOBALS['wp']->add_query_var( 'sitemap' ); 07 $GLOBALS['wp']->add_query_var( 'sitemap_n' ); 08 add_rewrite_rule( 'sitemap_index.xml$', 'index.php?sitemap=1', 'top' ); 09 add_rewrite_rule( '([^/]+?)-sitemap([0-9]+)?.xml$','index.php?sitemap=$matches[1]&sitemap_n=$matches[2]', 'top' ); 10 $wp_rewrite->flush_rules(); 11 }
В основном то, что мы делаем, это добавляем глобальной $ wp_rewrite и добавление flush_rules после кода. При добавлении этого в плагин, это, кажется, должно исправить 404 на веб-сайте нашего клиента.Мы понятия не имеем, почему Yoast не делает это по умолчанию, Но мне кажется, что довольно много пользователей, имеющих эту проблему 404 сайта.
Обновление: Как некоторые из наших пользователей сообщили , что после применения исправления выше, они по- прежнему снимают флажок в карты сайта плагина SEO от Yoast и сохранить свои настройки. После этой повторной проверки вариант карты сайта ошибка для них была исправлена.
Если у Вас есть эта проблема, мы надеемся, что это исправление помогло вам.
Ничего не могу сделать-раз 30 восстанавливал сайт-все одно,ошибка 404. Причем на разные разделы сайта. Вирусов нет. Менял .htaccess, как тут прописано-не помогает. Что делать дальше,не понятно. Удалял Yoast seo-какое-то время ошибка 404 не появлялась, потом опять 404. После восстановления на рабочие версии сайта все работает до тех пор, пока не установишь любой другой новый плагин, или не обновишь любой уже установленный.
Первый же код и помог. Гугл создавал очень большую нагрузку на сервер потому что не мог получить доступ к сайтмап и все время долбил сервак.
Большое спасибо!
Спасибо! Первый вариант сразу решил проблему. Спасибо.
После ввода кода ошибка 404 в Yoast при запросе в плагине sitemap пропала. Карта сформировалась. Спасибо за помощь!