На практике проблема с XML-картой сайта в GeneratePress обычно возникает не из-за самой темы, а из-за связки темы, SEO-плагина и настроек WordPress. Пользователь видит в поиске несколько sitemap-адресов, дубли в robots.txt или неожиданный XML-ответ на старом URL, а потом начинает править не то место. В GeneratePress важно сначала понять, кто именно генерирует карту сайта: тема, плагин или сам WordPress.
Когда это действительно проблема
Сценарий типичный: на сайте уже установлен SEO-плагин, который создает собственный sitemap, но в индексации остаются старые адреса, а в robots.txt или в браузере видны лишние ссылки на XML-файлы. Иногда это происходит после миграции, когда старый sitemap был на другом пути, а поисковик еще не переобошел сайт. В GeneratePress отдельной «магической» настройки для sitemap нет, поэтому решение почти всегда сводится к проверке источника и отключению лишнего генератора.
Диагностика: кто отдает sitemap
Перед изменениями проверьте три вещи: какой URL открывается в браузере, что указано в robots.txt и какой плагин отвечает за SEO. Если на сайте есть Yoast SEO, Rank Math, The SEO Framework или другой SEO-плагин, именно он обычно создает XML-карту. Сам WordPress с версии 5.5 тоже умеет отдавать базовый sitemap по адресу /wp-sitemap.xml. Из-за этого часто получается не один, а два источника.
Что смотреть в первую очередь
- откройте
/sitemap_index.xml,/sitemap.xmlи/wp-sitemap.xml; - проверьте
/robots.txtна наличие нескольких строкSitemap:; - посмотрите, не отдает ли старый адрес редирект или XML с кодом 200;
- временно отключите SEO-плагин на тестовой копии и сравните ответ сервера.
Если у вас есть доступ к консоли, можно быстро проверить заголовки ответа:
curl -I https://example.com/wp-sitemap.xml
curl -I https://example.com/sitemap_index.xml
curl -I https://example.com/robots.txtИщите не только код ответа, но и content-type. Для XML-карты он должен быть соответствующим XML, а не HTML-страницей с ошибкой 404, замаскированной под 200.
Как отключить лишний sitemap в GeneratePress
Если сайт работает на GeneratePress и вы хотите оставить только карту от SEO-плагина, обычно достаточно отключить встроенный sitemap WordPress. Это делается через фильтр wp_sitemaps_enabled. Код лучше добавлять в дочернюю тему или в небольшой mu-plugin, а не в файл темы, чтобы не потерять правку при обновлении.
<?php
add_filter( 'wp_sitemaps_enabled', '__return_false' );Этот вариант отключает именно стандартный sitemap WordPress. Если у вас sitemap генерирует SEO-плагин, его карта продолжит работать. После этого проверьте, что /wp-sitemap.xml больше не открывается как рабочий XML-индекс.
Если нужно оставить только WordPress sitemap
Бывает и обратный сценарий: SEO-плагин не нужен, а вы хотите использовать только встроенный sitemap WordPress. Тогда отключайте карту в настройках SEO-плагина, а не через тему. В GeneratePress здесь ничего дополнительно править не нужно, но важно не держать одновременно два активных генератора.
| Подход | Что делает | Когда подходит | Минус |
|---|---|---|---|
Код через wp_sitemaps_enabled | Отключает sitemap WordPress | Если sitemap должен отдавать SEO-плагин | Нужно аккуратно проверить, что другой источник активен |
| Настройка в SEO-плагине | Отключает sitemap плагина | Если нужен только стандартный sitemap WordPress | Интерфейс зависит от плагина |
| Оставить оба источника | Ничего не отключать | Почти никогда не нужно | Риск дублей и путаницы для индексации |
Пошаговое решение без лишних рисков
- Определите, какой sitemap сейчас считается основным: WordPress или SEO-плагин.
- Проверьте
robots.txtи удалите дублирующую строкуSitemap:, если она ведет на старый адрес. - Отключите встроенный sitemap WordPress через
wp_sitemaps_enabled, если он конфликтует с плагином. - Очистите кеш сайта, кеш CDN и кеш браузера.
- Переотправьте актуальный sitemap в Google Search Console и Яндекс Вебмастер.
Если вы используете GeneratePress вместе с дочерней темой, код можно добавить в functions.php дочерней темы. Но для технических правок безопаснее сделать отдельный mu-plugin, чтобы не зависеть от темы. Пример минимального файла:
<?php
/**
* Plugin Name: Disable WP Sitemap
*/
add_filter( 'wp_sitemaps_enabled', '__return_false' );Как проверить, что решение сработало
Проверка должна быть не визуальной, а технической. Откройте адреса sitemap в браузере и убедитесь, что лишний источник больше не отдает XML-индекс. Затем проверьте код ответа и содержимое robots.txt. Если вы отключали именно WordPress sitemap, адрес /wp-sitemap.xml должен перестать отдавать карту сайта. Если отключали плагин, наоборот, должен остаться только один актуальный sitemap.
/wp-sitemap.xml— не должен быть основным, если его заменяет SEO-плагин;/sitemap_index.xmlили другой адрес плагина — должен открываться без ошибок;robots.txt— должен содержать одну актуальную строкуSitemap:;- в Search Console не должно быть новых ошибок сканирования по старому адресу.
Если после правки старый sitemap еще индексируется, это не всегда ошибка. Поисковик может держать его в кеше какое-то время. Важнее, чтобы он перестал быть доступным как рабочий источник и не появлялся в новых внутренних ссылках сайта.
Частые ошибки и как их исправить
Отключили не тот генератор
Самая частая ошибка — выключить WordPress sitemap, когда основной sitemap создавал SEO-плагин, или наоборот. В результате карта сайта пропадает совсем. Решение простое: сначала определите источник, потом отключайте только лишний.
Правку внесли в файл темы
Если код добавлен в родительскую тему GeneratePress, он может пропасть после обновления. Для постоянных технических правок используйте дочернюю тему или mu-plugin.
Остался старый адрес в robots.txt
Даже если sitemap уже отключен, поисковик может продолжать видеть старую строку в robots.txt. Проверьте, не генерирует ли ее SEO-плагин, серверный шаблон или CDN.
Не очистили кеш
На сайтах с кешированием старый XML может отдаваться из кеша еще какое-то время. После изменений очистите кеш плагина, серверный кеш и, если есть, кеш CDN.
Безопасность и производительность
Для такой правки не нужен тяжелый плагин. Если задача сводится к отключению стандартного sitemap WordPress, код через фильтр надежнее и легче, чем установка отдельного решения. Но если на сайте уже есть SEO-плагин, не пытайтесь одновременно «улучшать» sitemap несколькими инструментами. Чем меньше источников генерации XML, тем проще поддерживать индексацию и диагностировать ошибки.
Если вы ведете несколько проектов на GeneratePress, удобно держать такие системные правки в отдельном mu-plugin. Это снижает риск случайно потерять настройку при смене темы или обновлении дочерней темы.
Когда нужен более широкий набор технических правок для GeneratePress — например, чистка дублей, отключение лишних элементов и контроль индексации — имеет смысл собирать их в одном месте, а не размазывать по разным сниппетам. В таких сценариях часто используют Clearfy Pro: https://wpshop.ru/plugins/clearfy?utm_source=generatepress.ru&utm_medium=article&utm_campaign=generatepress-otklyuchit-otkrytyy-xml-sitemap-i-otdat-svoy-sitemap