Robots.txt в WordPress: как закрыть от индексации лишние страницы без поломки SEO

В WordPress robots.txt часто правят «на глаз»: добавляют Disallow: /wp-admin/, копируют чужой шаблон и надеются, что поисковик сам разберётся. На практике этого мало. Если в индексе уже сидят служебные страницы, параметры фильтров, архивы автора или служебные URL плагинов, нужно не просто «что-то запретить», а понять, какие именно адреса мешают и чем их лучше закрыть: robots.txt, meta robots, canonical или редиректом.

Когда robots.txt действительно нужен

Robots.txt полезен, когда вы хотите ограничить обход, а не удалить страницу из индекса любой ценой. Это важно: если URL уже проиндексирован, один только запрет в robots.txt не всегда уберёт его из выдачи. Поисковик может оставить адрес в индексе без содержимого, если на него ведут ссылки.

Типичные сценарии

  • служебные разделы WordPress, которые не должны тратить crawl budget;
  • страницы с параметрами сортировки и фильтрации;
  • архивы, которые дублируют рубрики или теги;
  • внутренние поисковые результаты;
  • технические папки плагинов и скриптов, если они не нужны в обходе.

Диагностика: что именно закрывать

Перед правкой robots.txt откройте Search Console и посмотрите, какие URL реально попадают в индекс или в отчёт об обходе. Затем проверьте сайт вручную:

  • есть ли в выдаче страницы с параметрами ?sort=, ?filter=, ?replytocom=;
  • попадают ли в индекс архивы автора, даты, теги;
  • есть ли дубль главной через /page/2/ или служебные пагинации;
  • не закрыт ли случайно CSS/JS, без которых ломается рендеринг.

Если проблема не в обходе, а в индексации уже существующих страниц, robots.txt — не единственный инструмент. Для таких URL часто нужен noindex или 301-редирект.

Как настроить robots.txt в WordPress пошагово

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

Базовый рабочий вариант

User-agent: *
Disallow: /wp-admin/
Allow: /wp-admin/admin-ajax.php
Disallow: /?s=
Disallow: /search/
Disallow: /tag/
Disallow: /author/
Disallow: /feed/

Sitemap: https://example.com/sitemap_index.xml

Это не универсальный шаблон. Например, запрет /tag/ уместен только если теги у вас реально создают мусорные дубли и не несут самостоятельной ценности. Если теги — часть контентной структуры, закрывать их без анализа не стоит.

Если нужно закрыть параметры URL

Для фильтров и сортировок лучше закрывать конкретные шаблоны, а не весь сайт. Пример:

User-agent: *
Disallow: /*?sort=
Disallow: /*?filter=
Disallow: /*?replytocom=
Disallow: /*?utm_

Но помните: robots.txt не удаляет URL из индекса мгновенно. Он лишь ограничивает обход. Если параметр уже индексируется, дополнительно проверьте canonical и наличие noindex на страницах, где это допустимо.

Что лучше: robots.txt, noindex или canonical

Подход Когда использовать Ограничение
robots.txt Нужно запретить обход служебных URL Не гарантирует удаление уже проиндексированных страниц
noindex Страница доступна, но не должна быть в индексе Поисковик должен иметь возможность её обойти
canonical Есть дубль, который должен ссылаться на основную версию Это подсказка, а не жёсткий запрет

Если задача — убрать дубли, robots.txt часто работает хуже, чем canonical и нормализация URL. Если задача — снизить нагрузку на обход, robots.txt подходит лучше.

Пример настройки robots.txt через PHP, если нужен контроль из темы или плагина

Иногда robots.txt генерируют динамически, например, в мультисайте или при нестандартной структуре. Для этого в WordPress есть фильтр robots_txt. Он позволяет добавить правила без ручного редактирования файла.

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

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

Такой подход удобен, если robots.txt должен зависеть от окружения. Но для обычного сайта это лишняя сложность: статический файл проще отлаживать и безопаснее сопровождать.

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

После правки не ограничивайтесь открытием /robots.txt в браузере. Проверьте несколько уровней:

  1. Откройте robots.txt напрямую и убедитесь, что правила отдаются без ошибок.
  2. Проверьте, не закрыли ли вы случайно важные ресурсы: CSS, JS, изображения.
  3. В Search Console отправьте на повторную проверку ключевые URL, если они уже были в индексе.
  4. Посмотрите кэш поисковика и отчёт об обходе через несколько дней, а не сразу после правки.

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

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

Закрыли весь сайт одной строкой

Ошибка выглядит так: Disallow: /. Это допустимо только для staging-окружения. На боевом сайте такой файл быстро ломает индексацию и может скрыть контент от поисковиков полностью.

Пытаются удалить страницу из индекса через robots.txt

Если URL уже в выдаче, robots.txt не всегда поможет. Для удаления используйте noindex, 301-редирект или удаление страницы с корректным кодом ответа, в зависимости от сценария.

Закрывают CSS и JS

Некоторые старые шаблоны запрещают папки /wp-content/ или отдельные каталоги со стилями. Это плохая идея: поисковик может не увидеть страницу так, как видит её пользователь, и оценка качества ухудшится.

Используют слишком общий шаблон для параметров

Запрет Disallow: /*? может отрезать слишком много полезных URL, включая нормальные страницы с параметрами. Лучше закрывать конкретные шаблоны, которые вы реально видели в логах или отчётах.

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

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

Если нужен более широкий технический аудит дублей и служебных страниц, в экосистеме WPShop есть Clearfy Pro, но его стоит рассматривать как инструмент для контроля настроек, а не как замену пониманию, что именно вы закрываете и зачем.

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

  • Проверил, какие URL реально мешают индексации.
  • Не закрыл CSS, JS и изображения.
  • Отдельно разобрал уже проиндексированные страницы.
  • Добавил sitemap в файл.
  • Проверил robots.txt после очистки кэша и деплоя.
  • Убедился, что правила не конфликтуют с canonical и noindex.

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

Как отключить XML-RPC в WordPress и закрыть брутфорс-атаки
27.09.2026
Удаление кэша в WordPress своими руками: практические методы и примеры кода
13.09.2026
Как избежать конфликтов между плагинами WordPress: практические советы и примеры
13.09.2026
Как закрыть от индексации страницы автора в WordPress без потери полезного трафика
20.09.2026
Как настроить отзывы в WordPress с оценками и модерацией
21.09.2026