Карта сайта WordPress без плагина: ошибки и решения
WordPress сам создаёт XML-карту сайта — отдельный SEO-плагин для этого не обязателен. Разбираем, как проверить встроенную карту, убрать из неё лишние типы записей и не получить 404, дубли или список страниц, которые поисковику лучше не показывать.

В WordPress 6.x карту сайта можно получить без плагина по адресу /wp-sitemap.xml, но это не значит, что она автоматически подходит сайту. В неё могут попасть ненужные типы записей, адрес может отдавать 404 после переноса, а URL в карте — расходиться с каноническими страницами. Ниже — типичные ошибки и два практических способа настроить встроенную генерацию.
Сначала проверьте, что уже генерирует WordPress
Поддержка XML-карт появилась в ядре WordPress 5.5. В версиях 6.x базовая карта обычно доступна по адресу https://ваш-домен/wp-sitemap.xml. Она содержит индекс: тот может ссылаться на отдельные карты записей, страниц, авторов и таксономий. Поэтому не удивляйтесь, если вместо перечня URL увидите несколько ссылок на другие XML-файлы.
Перед изменениями откройте адрес в браузере или проверьте его командой curl -I https://ваш-домен/wp-sitemap.xml. Для рабочего сайта ожидайте успешный HTTP-ответ, обычно 200, и XML, а не страницу входа, редирект на главную или сообщение об ошибке. Если сайт закрыт авторизацией или поисковая индексация отключена настройкой WordPress, сначала выясните, зачем это сделано: карта не отменяет эти ограничения.
Нужны WordPress 6.x, доступ к файлам активной дочерней темы либо к собственному небольшому плагину и возможность проверить сайт после изменения. Не добавляйте код в родительскую тему: обновление может его затереть. Если правите сайт на продакшене, сначала проверьте изменение на копии.
Два подхода: оставить ядро или менять состав карты
В большинстве случаев разумнее не писать генератор с нуля, а оставить встроенный механизм и скорректировать его состав. Самописная карта даёт больше контроля, но добавляет ответственность за корректный XML, разбиение больших списков URL и актуальность данных.
| Подход | Что получаете | Цена и риск |
|---|---|---|
| Оставить карту ядра без изменений | Готовую генерацию и обновление при изменении содержимого | Могут остаться ненужные публичные типы записей или таксономии |
| Оставить ядро и отфильтровать типы записей | Тот же механизм, но с более подходящим составом URL | Нужно знать slug типа записи и проверить результат после изменения |
| Создать собственную карту | Полный контроль над логикой и форматом | Самостоятельно отвечаете за корректность, производительность и обновление карты |
Для типичного сайта на WordPress выбирайте второй вариант, если проблема только в лишнем разделе. Полностью собственную генерацию стоит делать, когда встроенный механизм действительно не покрывает требования проекта, а не просто ради отказа от плагина.
Карта сайта — не список всего, что умеет отдавать WordPress. Это список URL, которые вы хотите предложить поисковику для обхода.
Как убрать из карты ненужный тип записей
В ядре есть фильтр wp_sitemaps_post_types, который позволяет изменить список типов записей для карты. Например, если на сайте зарегистрирован публичный тип записей с системным slug campaign и его не нужно включать, добавьте фильтр в дочернюю тему или собственный плагин:
<?php
add_filter( 'wp_sitemaps_post_types', 'site_sitemap_post_types' );
function site_sitemap_post_types( $post_types ) {
unset( $post_types['campaign'] );
return $post_types;
}
Это пример для WordPress 6.x. Замените campaign на реальный slug типа записи, а не на его название в админке. После сохранения снова откройте индекс карты и проверьте, что ссылка на карту этого типа исчезла. Сам фильтр не удаляет записи с сайта и не закрывает их от посетителей.
Не используйте этот приём, чтобы скрыть обычные страницы или записи: для них нужны другие решения и ясное понимание, почему URL не должен попадать в карту. Если вы намеренно исключаете конкретные записи, проверьте документацию используемой версии WordPress для соответствующих фильтров провайдера. Не подставляйте случайный hook из старого ответа на форуме: в PHP неизвестный фильтр обычно просто не изменит результат.
Ошибки, из-за которых карта бесполезна
Карта отдаёт 404
Причиной могут быть правила постоянных ссылок, кеш или настройки сервера. Сначала проверьте адрес без завершающего лишнего пути: /wp-sitemap.xml. Затем сохраните настройки постоянных ссылок в админке, не меняя структуру, если она уже настроена: WordPress пересоберёт правила маршрутизации. После этого очистите кеш страницы и CDN, если они есть. Не сбрасывайте правила на живом сайте без проверки других URL.
В карте есть адреса, которые не должны индексироваться
Проверьте типы записей и таксономии, включённые в карту, а затем откройте несколько URL из неё. Ищите страницы поиска по сайту, технические разделы, архивы без самостоятельной ценности и записи, которые должны перенаправляться. Не полагайтесь только на метку «noindex»: согласуйте состав карты с тем, какие страницы сайт считает каноническими и доступными для поиска.
URL в карте отличаются от адресов сайта
После смены домена, протокола или структуры ссылок старые адреса могут сохраняться в кеше, настройках или сторонней логике. Сравните URL в XML с адресом, который открывается для посетителя, и с канонической ссылкой страницы. Термин канонический URL означает выбранный адрес страницы, который указывает поисковику на основную версию при наличии похожих или дублирующих страниц. Если версии расходятся, сначала исправьте источник неправильного адреса, а не маскируйте проблему новым генератором.
После установки плагина карта изменилась
Плагин может отключать встроенную карту или предлагать собственную. Убедитесь, что поисковику доступна одна согласованная карта, а не два разных набора URL. Проверяйте фактический ответ по адресу карты: наличие плагина в списке расширений само по себе не говорит, какой механизм сейчас работает.
Карту включили, но страницы не появились в поиске
Наличие URL в XML не гарантирует индексацию. Робот может не иметь доступа к странице, увидеть редирект или обнаружить, что страницу закрывает настройка сайта. Сначала проверьте HTTP-ответ и содержимое самой страницы, затем — доступность карты для поисковика. Не закрывайте карту в robots.txt, если рассчитываете, что робот будет её читать.
Что проверить после настройки
- Откройте
/wp-sitemap.xmlи убедитесь, что сервер возвращает XML, а не HTML-страницу ошибки. Проверка: индекс карты загружается в браузере. - Перейдите по ссылкам из индекса и проверьте несколько URL каждого нужного раздела. Проверка: адреса открываются и ведут на ожидаемые страницы.
- Сверьте их с типами контента, которые действительно нужны в поиске. Проверка: в карте нет тестовых записей и технических архивов, которые вы решили исключить.
- После очистки кеша повторите проверку и проверьте ответ сервера. Проверка: в XML нет старых доменов, протоколов и URL, которые уже перенаправляются.
- Добавьте адрес карты в инструменты для вебмастеров поисковых систем, которыми пользуетесь. Проверка: сервис принимает карту и показывает результат чтения без ошибок.
Что делать дальше
После настройки не нужно постоянно пересобирать карту вручную: ядро формирует её из опубликованных данных. Проверяйте её после смены домена, миграции, изменения типов записей и обновления логики кеширования. Если карта велика или сайт публикует контент очень часто, отдельно измеряйте время ответа XML и проверяйте, не создают ли плагины или тема лишние запросы. Подробности о возможностях встроенной системы смотрите в документации WordPress; инвалидация кеша и отдельные правила для конкретных поисковиков — смежные темы, здесь мы их не разбираем.
Редактор изображений: Убрать лишнее, заменить фон, добавить объект, расширить кадр — на вашем изображении.
Спросить за 20 ₽Источники: WordPress Developer Resources: WP_Sitemaps, WordPress Developer Resources: wp_sitemaps_post_types
Частые вопросы
Нужен ли SEO-плагин, чтобы создать карту сайта в WordPress?
Почему /wp-sitemap.xml открывается с ошибкой 404?
Можно ли удалить из карты отдельный тип записей?
Если URL есть в карте, поисковик обязательно его проиндексирует?
Нужно ли отключать встроенную карту, если её создаёт плагин?
Можно ли добавить в карту закрытые или технические страницы?
Материал носит информационный характер и подготовлен редакцией «Агентуры». Он не является офертой, рекламой или индивидуальной консультацией. Упомянутые продукты, компании и торговые знаки принадлежат их правообладателям. Перед принятием решений, влекущих юридические или финансовые последствия, обратитесь к профильному специалисту.