wpcompany.ru wordpress WPCompany

Как настроить robots.txt и sitemap в WordPress без конфликтов с SEO-плагинами

Проблемы с индексацией в WordPress часто начинаются не с контента, а с двух файлов: robots.txt и sitemap.xml. На практике сайт может иметь нормальные страницы, но поисковик видит лишние архивы, дубли, служебные URL или вообще не находит карту сайта из-за конфликта между темой, плагином SEO и ручными правками.

Ниже разберём рабочую схему: как понять, где именно ломается индексация, как настроить robots.txt и sitemap без лишних запретов, и как проверить, что всё действительно работает.

Когда проблема не в контенте, а в служебных файлах

Симптомы обычно похожи:

  • в Google Search Console есть страницы, которые не должны индексироваться;
  • карта сайта открывается, но в ней нет нужных URL;
  • после установки SEO-плагина старый sitemap.xml перестал работать;
  • в robots.txt случайно закрыли важные разделы, и поисковик перестал их обходить;
  • сайт отдаёт несколько разных sitemap: от плагина, от ядра WordPress и от темы.

Если вы уже видите такие признаки, сначала не правьте файл вручную «наугад». Сначала проверьте, кто именно генерирует robots и sitemap.

Диагностика: что смотреть в первую очередь

Откройте в браузере:

  • /robots.txt;
  • /wp-sitemap.xml;
  • карту сайта от SEO-плагина, если она есть, например /sitemap_index.xml или похожий адрес.

Дальше проверьте три вещи:

  1. нет ли в robots.txt запрета на /wp-content/, /uploads/ или на саму карту сайта;
  2. не отдают ли одновременно карту сайта WordPress и SEO-плагин;
  3. нет ли в sitemap URL с параметрами, тестовыми страницами, архивами автора или тегов, которые вы не хотите индексировать.

Если сайт использует Yoast SEO, Rank Math, All in One SEO или другой SEO-плагин, именно он обычно должен управлять sitemap. Встроенная карта сайта WordPress в таком случае часто становится лишней и только путает диагностику.

Какой вариант настройки выбрать: плагин, код или вручную

Для небольшого сайта можно обойтись настройками SEO-плагина. Если нужен точечный контроль, удобнее добавить фильтры в тему или мини-плагин. Ручное редактирование robots.txt через файл на сервере имеет смысл только тогда, когда вы понимаете, кто его отдаёт и не перезапишется ли он при следующем деплое.

ПодходКогда подходитМинус
SEO-плагинСтандартный сайт, без сложной логикиМеньше гибкости, часть правил скрыта в интерфейсе
Код в теме или MU-плагинеНужны точечные запреты и контроль sitemapНужно следить за обновлениями и конфликтами
Ручной файл на сервереПростой статичный robots.txtЛегко перезаписать или сломать при деплое

Пошаговая настройка robots.txt в WordPress

Если WordPress отдаёт виртуальный robots.txt, его можно переопределить через фильтр robots_txt. Это безопаснее, чем править физический файл, если у вас нет отдельной инфраструктуры деплоя.

add_filter('robots_txt', function ($output, $public) {
    $lines = [];

    $lines[] = 'User-agent: *';
    $lines[] = 'Disallow: /wp-admin/';
    $lines[] = 'Allow: /wp-admin/admin-ajax.php';

    // Не закрывайте wp-content целиком, если там лежат изображения и файлы.
    $lines[] = 'Sitemap: ' . home_url('/sitemap_index.xml');

    return implode("\n", $lines) . "\n";
}, 10, 2);

Этот вариант подходит, если sitemap генерирует SEO-плагин и его адрес действительно /sitemap_index.xml. Если у вас используется встроенная карта WordPress, адрес будет /wp-sitemap.xml.

Если нужно закрыть от индексации служебные разделы, делайте это аккуратно. Не стоит блокировать в robots то, что уже должно быть доступно для обхода поисковиком, но не для показа в выдаче. Для таких страниц чаще нужен noindex, а не Disallow.

Пример robots.txt для типового сайта

User-agent: *
Disallow: /wp-admin/
Allow: /wp-admin/admin-ajax.php
Disallow: /?s=
Disallow: /search/
Sitemap: https://example.com/sitemap_index.xml

Здесь есть важная деталь: строка Disallow: /?s= помогает сократить мусорные поисковые URL, но если у вас поиск по сайту используется как полноценная страница, проверьте, не закрываете ли вы нужный раздел.

Как убрать конфликт между WordPress sitemap и SEO-плагином

Если SEO-плагин уже генерирует sitemap, встроенную карту WordPress лучше отключить, чтобы не было двух источников правды. Иначе в Search Console можно увидеть разные наборы URL, а в логике индексации появится путаница.

Для отключения встроенной карты WordPress используйте фильтр wp_sitemaps_enabled:

add_filter('wp_sitemaps_enabled', '__return_false');

После этого проверьте, что ваш SEO-плагин продолжает отдавать собственную карту сайта. Если плагин не установлен или отключён, отключать встроенный sitemap заранее не стоит — иначе сайт останется вообще без карты.

Когда встроенный sitemap лучше оставить

Иногда сайт небольшой, SEO-плагин не нужен, а карта сайта WordPress закрывает базовую задачу. В таком случае не усложняйте схему. Главное — не смешивать два механизма одновременно без необходимости.

Оставляйте встроенный sitemap, если:

  • на сайте нет SEO-плагина с собственной картой;
  • вам достаточно стандартных типов записей и страниц;
  • нет сложной фильтрации URL по таксономиям или кастомным типам записей.

Проверка результата после внедрения

После настройки не ограничивайтесь открытием страницы в браузере. Нужна проверка по нескольким уровням.

  • Откройте /robots.txt и убедитесь, что там нет лишних запретов и указан правильный sitemap.
  • Откройте sitemap и проверьте, что он отдаёт 200 OK, а не редирект или ошибку.
  • В Google Search Console отправьте карту сайта заново и посмотрите, нет ли ошибок чтения.
  • Проверьте несколько URL из sitemap вручную: они должны открываться без редирект-цепочек и без noindex, если вы хотите их индексировать.

Если у вас есть доступ к командной строке, можно быстро проверить заголовки ответа:

curl -I https://example.com/robots.txt
curl -I https://example.com/sitemap_index.xml

В ответе важно увидеть 200. Если есть 301 или 302, поисковик всё равно может обработать URL, но лишние редиректы лучше убрать.

Частые ошибки и как их исправить

Закрыли весь сайт в robots.txt

Самая грубая ошибка — строка вроде Disallow: /. После неё поисковик перестаёт обходить сайт целиком. Исправление простое: уберите общий запрет и оставьте только служебные разделы.

Указали не тот адрес sitemap

Часто в robots.txt пишут адрес от старого плагина, а на сайте уже другой генератор. Проверьте реальный URL в браузере и в настройках SEO-плагина. Если карта открывается по /wp-sitemap.xml, не нужно ссылаться на несуществующий /sitemap_index.xml.

Пытаются спрятать дубли через robots

Если страница должна быть исключена из индекса, но при этом её нужно обходить для технических целей, robots.txt не всегда лучший инструмент. Для таких случаев используйте noindex на уровне страницы, шаблона или SEO-плагина.

Отключили встроенный sitemap, но забыли про плагин

После фильтра wp_sitemaps_enabled обязательно проверьте, что SEO-плагин действительно активен и генерирует свою карту. Иначе сайт останется без sitemap, а это уже лишняя проблема для индексации новых страниц.

Практические советы по безопасности и производительности

Не храните критичную логику robots и sitemap в случайных snippets-плагинах без контроля версий. Для проекта с разработкой лучше вынести код в MU-плагин или в отдельный мини-плагин, чтобы он не зависел от темы.

Если сайт часто меняется, полезно держать единый источник sitemap и не плодить ручные правки. Это снижает риск того, что после обновления темы или SEO-плагина карта сайта внезапно изменится.

Для больших сайтов следите за тем, чтобы sitemap не включал мусорные URL: служебные архивы, внутренний поиск, тестовые записи, страницы с параметрами. Чем чище карта, тем проще поисковику обходить важные страницы.

Если нужен более широкий контроль над дублями, архивами и технической чисткой WordPress, часть задач удобнее закрывать отдельным инструментом вроде Clearfy Pro: https://wpshop.ru/plugins/clearfy. Но даже с плагином базовая проверка robots и sitemap остаётся обязательной.

Мини-чек-лист перед публикацией

  • robots.txt открывается без ошибок и не закрывает весь сайт;
  • в файле указан один актуальный sitemap;
  • в sitemap нет служебных и тестовых URL;
  • нет конфликта между встроенным sitemap WordPress и SEO-плагином;
  • в Search Console карта сайта отправляется без ошибок;
  • важные страницы не получают случайный noindex или редирект.

Если после правок индексация всё равно ведёт себя странно, проверьте не только robots и sitemap, но и канонические URL, мета-тег robots в шаблоне и настройки самого SEO-плагина. В WordPress технические проблемы редко живут в одном месте.

×

AI-плагин

WPGPT
Сам создает статьи для вашего сайта WordPress

SEO и мета-теги

Парсинг конкурентов

Изображения

Комментарии

Подробнее