Как настроить robots.txt и sitemap в WordPress без дублей и лишних страниц

Если сайт на WordPress начинает плодить служебные URL, поисковик почти всегда первым делом видит не контент, а мусор: архивы авторов без смысла, страницы вложений, теги-пустышки, параметры сортировки, служебные страницы плагинов. В такой ситуации обычно мало просто «добавить сайт в Search Console». Нужно привести в порядок robots.txt и XML-карту сайта, а потом проверить, что WordPress действительно отдает поисковикам только нужные адреса.

Ниже — рабочий сценарий для обычного сайта на WordPress: что закрыть, что оставить в индексации, как не сломать карту сайта и как быстро убедиться, что изменения сработали.

Когда проблема уже есть: как понять, что robots.txt и sitemap настроены плохо

Диагностику удобно начинать не с файла, а с симптомов. Если в индексе появляются странные страницы, а в отчетах Search Console растет число «Просканировано, но не проиндексировано», обычно причина одна из трех: карта сайта содержит лишнее, robots.txt не ограничивает служебные разделы, либо в теме/плагинах есть дубли URL.

Что проверить в первую очередь

  • Откройте /robots.txt в браузере и посмотрите, не закрыт ли там случайно /wp-admin/ вместе с admin-ajax.php или /wp-content/uploads/.
  • Проверьте /sitemap.xml или /wp-sitemap.xml: нет ли там архивов, которые вы не хотите индексировать.
  • Посмотрите, не отдаются ли страницы вложений как отдельные посадочные страницы без полезного текста.
  • Проверьте, не индексируются ли теги и архивы авторов на небольшом сайте, где они не несут ценности.

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

Что именно настраивать в WordPress: robots.txt, sitemap и индексацию архивов

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

ПодходКогда подходитПлюсМинус
Только кодом в теме/плагинеНужны точечные правила без лишних зависимостейПолный контрольНужно следить за обновлениями и тестировать вручную
SEO-плагинНужно быстро закрыть архивы, теги, медиа и карту сайтаУдобно для редактораЛегко получить дубли настроек, если параллельно править код
Гибрид: плагин + точечный кодСайт уже работает, но есть нестандартные URLПрактичный балансНужно понимать, кто именно генерирует sitemap и мета-robots

Если сайт небольшой, обычно достаточно убрать из индексации архивы, которые не дают трафика, и оставить в sitemap только реальные материалы. Если сайт контентный и большой, лучше не закрывать все подряд: иногда архивы категорий работают как посадочные страницы и приносят переходы.

Пошаговое решение: как привести robots.txt и sitemap в порядок

Шаг 1. Настройте robots.txt без лишней магии

В WordPress не стоит пытаться физически редактировать файл на хостинге, если задача — просто отдать поисковикам корректный robots.txt. Проще и безопаснее использовать фильтр robots_txt. Так вы не зависите от того, перезапишет ли файл плагин кеша или SEO-модуль.

<?php
add_filter('robots_txt', function ($output, $public) {
    $lines = [];
    $lines[] = 'User-agent: *';
    $lines[] = 'Disallow: /wp-admin/';
    $lines[] = 'Allow: /wp-admin/admin-ajax.php';
    $lines[] = 'Disallow: /?s=';
    $lines[] = 'Disallow: /search/';
    $lines[] = 'Disallow: /author/';
    $lines[] = 'Disallow: /tag/';
    $lines[] = 'Disallow: /attachment/';
    $lines[] = '';
    $lines[] = 'Sitemap: ' . home_url('/sitemap_index.xml');

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

Здесь есть важная оговорка: адрес /sitemap_index.xml подходит для SEO-плагинов, которые генерируют индекс карт сайта. Если у вас включена стандартная карта WordPress, адрес будет другим — обычно /wp-sitemap.xml. Не пишите оба варианта сразу, если реально используется только один.

Шаг 2. Уберите из sitemap то, что не должно индексироваться

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

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

<?php
add_filter('wp_sitemaps_post_types', function ($post_types) {
    if (isset($post_types['attachment'])) {
        unset($post_types['attachment']);
    }
    return $post_types;
});

Для таксономий логика похожая: если теговые архивы не нужны, их лучше не тащить в карту сайта. Но не закрывайте их только через robots.txt, если они уже в индексе: поисковик может продолжать видеть URL как известный, но недоступный для обхода. В таких случаях нужен еще и корректный noindex на самих страницах.

Шаг 3. Закройте служебные страницы не robots.txt, а мета-роботами

Это частая ошибка: люди закрывают все в robots.txt и думают, что проблема решена. На практике поисковик может не увидеть страницу, но URL останется в индексе как «известный, но не просканированный». Для архивов и страниц, которые уже попали в выдачу, лучше отдавать noindex.

Пример для страниц автора и тегов, если они не нужны в поиске:

<?php
add_filter('wp_robots', function ($robots) {
    if (is_author() || is_tag()) {
        $robots['noindex'] = true;
        $robots['follow'] = true;
    }
    return $robots;
});

Такой подход лучше, чем грубое закрытие в robots.txt, потому что поисковик может пройти по странице, увидеть мета-робот и корректно убрать ее из индекса.

Как проверить, что изменения действительно сработали

Проверка нужна не «на глаз», а по конкретным признакам. Иначе легко получить ситуацию, когда robots.txt обновился, а sitemap по-прежнему отдает старые URL из кеша или SEO-плагина.

  • Откройте /robots.txt в браузере и убедитесь, что там видны именно ваши правила, а не старый файл с хостинга.
  • Проверьте /sitemap.xml или /wp-sitemap.xml и убедитесь, что в нем нет лишних типов записей.
  • В Search Console отправьте карту сайта заново и посмотрите, нет ли ошибок чтения.
  • Откройте несколько страниц, которые должны быть закрыты, и проверьте исходный код на наличие noindex.
  • Если используется кеш-плагин, очистите кеш после правок и проверьте страницу в режиме инкогнито.

Для быстрой локальной проверки можно посмотреть заголовки ответа и убедиться, что нужная страница действительно отдает HTML с мета-роботом, а не редиректится на канонический URL без вашего участия.

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

Закрыли слишком много в robots.txt

Если в Disallow попадает весь /wp-content/, поисковик перестает нормально обходить CSS, JS и изображения. Это может повлиять на рендеринг страницы и на то, как робот оценивает ее качество. Закрывать нужно точечно, а не по папке целиком.

Оставили в sitemap страницы, которые уже помечены noindex

Это создает противоречие: карта сайта говорит «индексируй», а страница — «не индексируй». В итоге поисковик тратит обход на лишние URL. Если архив закрыт, уберите его и из sitemap.

Используют одновременно несколько SEO-плагинов

Два плагина могут генерировать разные карты сайта или разные canonical-теги. Внешне сайт работает, но поисковик видит дубли. Если уже есть SEO-плагин, не добавляйте второй «для карты сайта» без необходимости.

Проверяют только robots.txt и забывают про каноникал

Если у страницы есть параметры сортировки, фильтры или UTM, robots.txt не решает проблему дублей полностью. В таких случаях нужен canonical на основную версию URL, иначе дубли будут продолжать копиться.

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

robots.txt и sitemap — это не только про SEO. Нормально настроенный robots.txt уменьшает шум для ботов, а аккуратная карта сайта помогает быстрее находить важные страницы. Но не стоит использовать robots.txt как средство защиты. Он не скрывает данные, а лишь подсказывает роботам, куда не ходить.

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

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

Если вам нужен более широкий набор инструментов для чистки дублей и технической SEO-настройки, в экосистеме WPShop есть Clearfy Pro: он как раз закрывает типовые задачи по удалению дублей и чистке WordPress. Но даже с плагином важно понимать, какие URL вы скрываете и почему — иначе легко убрать из индекса то, что приносит трафик.

Как создать автоматический excerpt для курсов в WordPress
21.09.2026
Как создать массивный импорт курсов в WordPress с помощью AJAX и REST API
19.09.2026
Как создать настройки плагина WordPress с использованием Options API
30.09.2026
Как использовать хук WooCommerce order status change для автоматизации
20.09.2026
Как отключить REST API для неавторизованных в WordPress без поломки сайта
23.09.2026