
robots.txt для WordPress в 2026 году выглядит совсем не так, как файл из подборок пятилетней давности, и половина строк из тех подборок сегодня работает против сайта. Директива, которую все привыкли ставить первой, официально не поддерживается уже несколько лет. Запреты, которые считались обязательными, ломают отрисовку страницы роботом. А сам файл на большинстве сайтов существует только в памяти и не лежит на диске, из-за чего правки «не сохраняются» и владелец идёт по третьему кругу.
Ниже — рабочий файл, который можно поставить сегодня, и разбор каждой строки: зачем она, что будет без неё и почему из старых советов часть придётся выбросить. В SEO с 2005 года, и robots.txt стабильно входит в тройку мест, где одна лишняя строка стоит сайту месяцев трафика.
Виртуальный robots.txt: почему правки не сохраняются
WordPress отдаёт robots.txt сам, если физического файла в корне сайта нет. Обработчик собирает содержимое на лету и отдаёт минимальный набор правил — обычно запрет служебного каталога админки и адрес карты сайта. Именно поэтому владелец видит файл по адресу /robots.txt, но не находит его ни в файловом менеджере, ни по FTP.
Отсюда три следствия, которые стоит держать в голове.
- Физический файл сильнее виртуального. Как только в корне появляется настоящий
robots.txt, веб-сервер отдаёт его, а обработчик WordPress не вызывается вообще. Это самый предсказуемый вариант, и для обычного сайта он лучший. - SEO-плагины пишут в виртуальный файл. Редактор robots.txt в плагине почти всегда подключается к фильтру и меняет то, что отдаёт WordPress. Если рядом лежит физический файл, плагин будет показывать одно, а поисковик видеть другое — классический источник многочасовой путаницы.
- Правки через фильтр в теме тоже возможны. Хук
robots_txtпозволяет добавить строки программно. Способ уместен, когда содержимое зависит от условий: например, на тестовом поддомене отдаётся полный запрет, на боевом — рабочий файл.
Проверка занимает секунду: откройте /robots.txt в браузере и сравните с тем, что показывает редактор плагина. Расходятся — ищите физический файл, он и есть источник правды. Отдельно проверьте, что файл отдаётся с кодом 200 и типом text/plain: на некоторых конфигурациях он уходит через обработчик страниц и приезжает с кодом 404 при видимом содержимом.
Что закрывать в robots.txt на сайте WordPress
Смысл файла — не в защите и не в управлении индексом. Он управляет обходом: говорит роботу, куда не ходить, чтобы тот не тратил визиты на страницы, которые не должны попадать в поиск и не приносят пользы. Управление индексом — задача метатега robots и заголовка ответа, и это принципиально разные инструменты.
| Строка | Зачем нужна | Что будет без неё |
|---|---|---|
Disallow: /wp-admin/ с исключением Allow: /wp-admin/admin-ajax.php |
Закрывает служебный каталог, но оставляет обработчик асинхронных запросов, от которого зависит вывод части блоков | Робот тратит визиты на служебные адреса; при закрытии без исключения ломаются блоки, подгружаемые скриптом |
Disallow: /*?s= и Disallow: /search/ |
Убирает страницы результатов внутреннего поиска — бесконечный источник мусорных адресов | В индекс попадают тысячи страниц вида «результаты по запросу», часто с чужими спамными запросами |
Disallow: /*/feed/ и Disallow: /*/embed/ |
Закрывает ленты и страницы встраивания, дублирующие содержимое записей | Дубли лент по каждой записи, категории и метке; лишний расход обхода |
Disallow: /*?replytocom |
Убирает параметр ответа на комментарий, порождающий копию страницы на каждый комментарий | Статья с сотней комментариев даёт сотню почти одинаковых адресов |
Disallow: /cgi-bin/, Disallow: /xmlrpc.php |
Служебные адреса, которым в поиске делать нечего | Мелочь, но она попадает в отчёты и отвлекает внимание при разборе |
Clean-param: utm_source&utm_medium&... |
Сообщает Яндексу, что параметр не меняет содержимое, и адреса нужно склеивать | Рекламные метки живут в индексе отдельными адресами и размывают сигналы страницы |
Sitemap: с полным адресом |
Указывает роботу карту сайта, независимо от того, добавлена ли она в панели | Новые страницы находятся дольше, особенно на сайтах со слабой внутренней перелинковкой |
Обратите внимание на то, чего в таблице нет: тегов, категорий, архивов по датам и страниц пагинации. Их закрывают в robots.txt чаще всего — и почти всегда зря. Если такая страница не должна быть в поиске, ей нужен метатег noindex, а не запрет обхода: робот должен прочитать страницу, увидеть указание и вывести её из индекса. Запрет в robots.txt оставляет уже проиндексированные адреса в поиске навсегда, потому что робот больше не приходит и не узнаёт о вашем решении. Что именно стоит закрывать из архивов, отдельно разобрано в материале о том, стоит ли запрещать индексацию страниц категорий и архивов.
Что закрывать нельзя ни в коем случае
Список короткий, но каждая строка в нём встречается в реальных файлах регулярно.
Disallow: /wp-includes/ — классика из старых руководств. В этом каталоге лежат библиотеки скриптов, которые подключаются к публичным страницам. Закрыв его, вы запрещаете роботу загрузить часть JavaScript, и страница отрисовывается у него неполной. На сайтах, где меню, слайдеры или карточки товаров собираются скриптом, это выливается в потерю значимой части содержимого.
Disallow: /wp-content/themes/ и Disallow: /wp-content/plugins/ — та же ошибка, но крупнее. В этих каталогах лежат таблицы стилей и скрипты, без которых робот видит нечто, отдалённо напоминающее вашу страницу. Оценка мобильной пригодности и адаптивности при этом ломается полностью.
Любые запреты *.css и *.js — прямое указание не загружать оформление и поведение. Современный робот рендерит страницу так же, как браузер, и наличие ресурсов ему нужно.
Disallow: /wp-content/uploads/ — закрывает картинки. Поиск по изображениям для многих сайтов даёт заметную часть переходов, и отказываться от него ради экономии обхода бессмысленно.
Оставленный после разработки Disallow: / — самый дорогой вариант. Строка попадает на боевой сайт вместе с содержимым тестового и выбрасывает из поиска всё. Симптомы и порядок восстановления описаны в разборе одна строчка в robots.txt и весь сайт пропадает из Яндекса; хуже всего, что обнаруживают её обычно через несколько недель, когда трафик уже на нуле.
Простая проверка на здравый смысл: если ресурс участвует в отрисовке страницы, он должен быть открыт. Всё остальное — предмет обсуждения.
Директива Host: почему её больше нет
Строку Host: сайт.ру ставили, чтобы указать Яндексу главное зеркало — версию с www или без, с протоколом http или https. Поддержка директивы прекращена, и сегодня она просто игнорируется. Строка не вредит, но и не делает ничего; наличие её в файле — признак того, что файл не обновляли много лет.
Главное зеркало сегодня определяется тремя вещами, и все они работают вне robots.txt.
- Постоянное перенаправление 301 с неглавных версий на главную, настроенное на уровне веб-сервера. Это основной сигнал.
- Канонический адрес в коде страницы, указывающий на главную версию.
- Настройка в Яндекс Вебмастере — раздел «Индексирование», пункт «Переезд сайта», где выбирается главный адрес после того, как редирект уже настроен.
Подробности того, почему директива перестала работать и чем её заменили, собраны в материале нужно ли прописывать директиву Host в файле robots.txt. Практический вывод простой: строку из файла удалить, а зеркала проверить редиректом.
Clean-param: инструмент, которого нет у других
Clean-param — директива, понятная Яндексу и полезная именно на WordPress, где параметров в адресах много. Она сообщает: этот параметр не меняет содержимое страницы, считай адреса с ним и без него одной страницей.
Формат такой: Clean-param: параметр1&параметр2 /путь/. Путь необязателен — без него правило действует на весь сайт. Типовой набор для WordPress: рекламные метки utm_source, utm_medium, utm_campaign, utm_term, utm_content, идентификаторы кликов рекламных систем, replytocom, а для магазинов — параметры сортировки и вида отображения.
Важно понимать разницу между Clean-param и запретом того же параметра через Disallow. Запрет говорит «не ходи сюда», и сигналы, накопленные адресом с параметром, пропадают. Clean-param говорит «это та же страница», и сигналы переносятся на чистый адрес. Для рекламных меток нужен именно второй вариант: по ссылке с меткой на вас могут сослаться, и терять этот вес незачем. Разграничение с каноническим адресом и редиректом разобрано отдельно в материале Clean-param, canonical или 301: что куда.
Ограничение у директивы одно и существенное: её понимает только Яндекс. Для остальных поисковиков работают канонические адреса, и они должны быть настроены в любом случае — Clean-param их не заменяет, а дополняет.
Рабочий файл целиком
Ниже — вариант, который подходит обычному сайту на WordPress: блогу, корпоративному сайту, сайту услуг. Пишется он одной секцией для всех роботов, а секция для Яндекса добавляется только ради Clean-param.
User-agent: *
Disallow: /wp-admin/
Allow: /wp-admin/admin-ajax.php
Disallow: /cgi-bin/
Disallow: /xmlrpc.php
Disallow: /*?s=
Disallow: /search/
Disallow: /*/feed/
Disallow: /*/embed/
Disallow: /*?replytocom
Disallow: /wp-json/
Allow: /wp-content/uploads/
User-agent: Yandex
Disallow: /wp-admin/
Allow: /wp-admin/admin-ajax.php
Disallow: /cgi-bin/
Disallow: /*?s=
Disallow: /search/
Disallow: /*/feed/
Disallow: /*/embed/
Clean-param: utm_source&utm_medium&utm_campaign&utm_term&utm_content&yclid&gclid&replytocom
Sitemap: https://вашсайт.ру/sitemap.xml
Несколько пояснений к файлу. Секция для Яндекса дублирует общие правила намеренно: когда робот находит секцию со своим именем, он читает только её и общую секцию игнорирует полностью. Это самая частая ошибка при добавлении Clean-param — правила пишут в отдельную секцию, а остальные запреты остаются в общей и для Яндекса перестают действовать.
Строка Disallow: /wp-json/ закрывает программный интерфейс. Она уместна, если интерфейс не используется публично; если на сайте работает блок, подгружающий данные через него, строку убирают. Адрес карты сайта пишется полностью, с протоколом и доменом — относительный путь не работает. И последнее: Sitemap ставится вне секций, одной строкой в конце, потому что относится ко всему файлу.
Проверка и типовые ошибки
Файл проверяется в Яндекс Вебмастере, раздел «Инструменты» — «Анализ robots.txt». Инструмент разбирает синтаксис и позволяет проверить конкретный адрес: разрешён он к обходу или запрещён. Прогоняйте через него не только главную, но и типовые адреса каждого раздела — статью, карточку услуги, страницу пагинации, файл стилей темы.
| Ошибка | Симптом | Как исправить |
|---|---|---|
| Правила для Яндекса вынесены в свою секцию, остальные остались в общей | Мусорные адреса продолжают обходиться, хотя в файле запрет есть | Продублировать все нужные запреты внутри секции Yandex |
| Закрыты каталоги тем и плагинов | В инструменте проверки страница выглядит неоформленной, мобильная версия оценивается как непригодная | Удалить запреты; при желании закрыть только конкретные служебные файлы |
| Страницы закрыты в robots вместо noindex | Адреса годами висят в поиске без описания, с пометкой об отсутствии данных | Открыть обход, поставить метатег noindex, дождаться переобхода |
| Физический файл и редактор плагина расходятся | Правки не влияют ни на что, поисковик видит старую версию | Оставить один источник: либо физический файл, либо плагин |
| Адрес карты сайта указан относительным путём или с http | Карта не читается, новые страницы находятся медленно | Записать полный адрес с https и текущим доменом |
| Файл отдаётся с кодом 404 или 500 | Робот считает, что ограничений нет, и обходит всё подряд | Проверить ответ сервера инструментом Вебмастера, поправить конфигурацию |
После правки файла имеет смысл отправить его на переобход и через несколько дней посмотреть отчёт «Страницы в поиске»: число исключённых по причине «запрет в robots.txt» должно вести себя предсказуемо. Резкий рост — повод немедленно перечитать файл. Базовый разбор синтаксиса, если нужно освежить, лежит в материале как настроить robots.txt, а полную картину по техническим ошибкам сайта проще получить через бесплатный аудит сайта.
Когда robots.txt не решит вашу задачу
Файл переоценивают: от него ждут управления индексом, защиты закрытых разделов и борьбы с дублями. Ничего из этого он не делает.
Он не убирает страницы из поиска. Проиндексированный адрес, закрытый в robots.txt, остаётся в выдаче — просто без описания. Для удаления нужен либо код 404 и 410, либо метатег noindex при открытом обходе, либо инструмент удаления в Вебмастере.
Он не защищает закрытые разделы. Файл публичен и читается кем угодно. Перечислив в нём служебные каталоги, вы составили карту для того, кто их ищет. Закрытые разделы защищаются авторизацией.
Он не борется с дублями по существу. Дубли лечатся каноническими адресами, редиректами и Clean-param. robots.txt только экономит обход, не влияя на выбор главной версии.
Он не обязателен для каждого сайта. Маленькому сайту на несколько десятков страниц без параметров и внутреннего поиска хватает виртуального файла WordPress. Городить сложную конструкцию там, где нечего экономить, смысла нет — а вот сломать что-нибудь лишней строкой вполне реально. Если сомневаетесь, нужен ли вашему сайту нестандартный файл, это ровно тот вопрос, который закрывается за одну SEO-консультацию по сайту.
Частые вопросы
Нужна ли отдельная секция для Google?
Обычно нет. Секция User-agent: * действует на всех роботов, у которых нет собственной. Отдельная секция нужна, только если правила для конкретного робота должны отличаться — и тогда в неё копируются все общие запреты, иначе они перестанут применяться.
Почему страница закрыта в robots.txt, а в поиске висит?
Потому что запрет обхода не равен запрету индексации. Если на страницу есть ссылки, поисковик может показать адрес без описания. Чтобы убрать её, откройте обход, поставьте метатег noindex и дождитесь переобхода — иначе робот никогда не увидит указание.
Можно ли закрыть страницы пагинации?
Не стоит. Через них робот доходит до записей и товаров со второй и дальнейших страниц. Закрыв пагинацию, вы обрываете путь к части содержимого. Если пагинация мешает в поиске, ей ставят метатег noindex при открытом обходе — тогда ссылки продолжают работать.
Как проверить, что изменения применились?
Откройте /robots.txt с отключённым кэшем браузера и убедитесь, что видите новую версию. Затем прогоните несколько адресов через анализ robots.txt в Вебмастере. Поисковик перечитывает файл не мгновенно — обычно в течение нескольких дней.
Стоит ли закрывать сайт целиком на время разработки?
Да, но не через robots.txt, а авторизацией на уровне сервера — тогда содержимое недоступно вообще. Запрет в robots.txt легко переезжает на боевой сайт вместе с файлами; при переносе первым делом проверяют именно эту строку. Общая логика продвижения от этого не меняется, и подробнее она разобрана в разделе продвижение сайта в Яндексе.
Влияет ли размер файла на что-нибудь?
Влияет: у файла есть ограничение по объёму, и очень длинные списки запретов читаются не полностью. Если запретов набралось на сотни строк, это признак того, что проблему надо решать не файлом, а структурой адресов и каноническими ссылками.
Коротко
- Если физического файла в корне нет, robots.txt отдаёт сам WordPress; физический файл всегда сильнее виртуального и правок плагина.
- Закрывать стоит служебный каталог админки с исключением для admin-ajax, внутренний поиск, ленты, страницы встраивания и параметр replytocom.
- Нельзя закрывать wp-includes, каталоги тем и плагинов, файлы стилей и скриптов, каталог загрузок — робот рендерит страницу и должен видеть ресурсы.
- Директива Host не поддерживается: зеркала склеиваются редиректом 301, каноническим адресом и настройкой в Вебмастере.
- Clean-param переносит сигналы с адресов с метками на чистый, в отличие от Disallow, который их просто теряет; секция для Яндекса должна содержать все запреты, а не только эту директиву.
- robots.txt управляет обходом, а не индексом: удаление страниц из поиска делается кодом ответа, метатегом noindex или инструментом удаления.
Увеличьте позиции и продажи вашего сайта
Профессиональное SEO-продвижение с гарантией результата. Выберите подходящую услугу:
Остались вопросы по продвижению?
Меня зовут Анатолий Кузнецов, я SEO-оптимизатор с 20-летним стажем. Разберу ваш сайт, отвечу на вопросы и подскажу, что улучшить для роста позиций в Яндексе и Google.
Связаться со мной →
Комментарии
Есения Цимбалова
Правлю robots.txt в плагине, сохраняю, открываю /robots.txt — там старое содержимое. Чистила кэш, пробовала другой браузер. Что происходит?
Анатолий Кузнецов автор
У вас в корне лежит физический файл, и веб-сервер отдаёт именно его. Редактор плагина при этом правит виртуальный вариант, который в такой ситуации вообще не вызывается — отсюда ощущение, что сохранение не работает. Зайдите по FTP или в файловый менеджер хостинга, посмотрите корень сайта. Дальше выбирайте один источник правды: либо удаляете физический файл и работаете через плагин, либо оставляете физический и правите его напрямую, а редактор в плагине больше не открываете. Второй вариант надёжнее: он не зависит от плагина, переживает его смену и виден любому, кто заглянет по FTP. И проверьте заодно код ответа файла — он должен быть 200, а не 404 с видимым текстом.
Лукьян Лапшаков
В моём файле стоит Disallow: /wp-includes/ ещё с 2016 года. Убирать? Сайт вроде живёт нормально.
Анатолий Кузнецов автор
Убирать, и вот почему «живёт нормально» тут ничего не доказывает. Из этого каталога подключается часть библиотек, на которых держатся скрипты темы и плагинов. Робот загружает страницу как браузер, и запрещённые ресурсы он не берёт — значит, видит вашу страницу неполной. Насколько неполной, зависит от темы: где-то это несколько мелочей, где-то не отрисовывается меню и половина блоков. Проверьте сами: откройте инструмент просмотра страницы роботом в Вебмастере и сравните картинку с тем, что видите в браузере. Разница обычно объясняет всё лучше любых аргументов. Строку удалите, обход по этому каталогу мусора не создаёт — там нет генерируемых адресов.
Прасковья Юшманова
Добавила Clean-param для utm в отдельную секцию User-agent: Yandex. Через месяц заметила, что мусорные адреса поиска по сайту снова полезли в индекс. Связано?
Анатолий Кузнецов автор
Напрямую связано, и это самая частая ловушка при работе с этим файлом. Робот, найдя секцию со своим именем, читает только её и общую игнорирует целиком. У вас в секции Yandex оказалась одна строка Clean-param, и с точки зрения этого робота остальных запретов больше не существует — включая запрет страниц внутреннего поиска. Лечится копированием: все нужные Disallow и Allow дублируются внутри секции Yandex, а Clean-param добавляется к ним. Дальше прогоните проблемные адреса через анализ robots.txt в Вебмастере и убедитесь, что они помечены как запрещённые. Те, что уже успели попасть в индекс, придётся убирать отдельно через инструмент удаления.
Ипполит Пестряков
Не понял разницы между Clean-param и Disallow для меток utm. Результат ведь одинаковый — адреса с метками не индексируются.
Анатолий Кузнецов автор
Результат в индексе похож, а вот с накопленными сигналами всё иначе. Disallow означает «не ходи по этому адресу»: робот его не обходит, ничего о нём не знает и никуда его не приписывает. Если на страницу с меткой кто-то сослался — из статьи, из рассылки, из соцсети, — этот вес просто теряется. Clean-param означает «адрес с параметром и без него это одна страница»: робот склеивает их и переносит накопленное на чистый адрес. Для рекламных меток нужен именно второй вариант, ссылок с метками в интернете гуляет много. Disallow уместен там, где адрес не должен существовать в принципе — например, страницы результатов поиска по сайту.
Филимон Вересов
Закрыл теги и архивы в robots полгода назад. Из индекса они не ушли, висят без описания. Что теперь делать?
Анатолий Кузнецов автор
Ровно то, о чём речь в статье: порядок был обратный. Пока обход запрещён, робот на страницу не заходит и не может узнать, что вы хотите её убрать — поэтому адрес и висит без описания. Откройте эти разделы в robots.txt, добавьте метатег noindex через настройки SEO-плагина (там это переключатели по типам архивов, кода писать не нужно) и отправьте несколько адресов на переобход. Робот зайдёт, прочитает указание и начнёт выводить их из поиска. Процесс небыстрый, на большом количестве адресов занимает несколько недель. И заранее решите, все ли архивы стоит закрывать: страницы категорий с описанием и спросом часто приносят трафик, закрывать их подряд не нужно.
Рафаил Осокин
Полезно про размер файла. У нас магазин, разработчик написал 800 строк запретов под каждый фильтр. Половина не читается, а мусор всё равно в индексе.
Виринея Хомутова
Директиву Host удалила, ничего не изменилось ни в плюс, ни в минус. Зато нашла у себя http в адресе карты сайта — вот это исправила не зря.
Прохор Шелестов
А wp-json действительно можно закрывать? У меня на нём завязан блок с отзывами, подгружается скриптом.
Юния Ушакова
Тогда нельзя. Мы наступили на это: закрыли, и блок с отзывами перестал появляться при рендере у робота. Вернули строку обратно — всё встало на место.
Дормидонт Чубаров
Отдельное спасибо за пункт про закрытие сайта на разработке. Именно так и потеряли три месяца: перенесли файлы с тестового поддомена вместе с Disallow: /
Мелания Тарбеева
Вопрос про feed. Если закрыть ленты, не сломается ли подписка и передача материалов в агрегаторы? У нас часть трафика идёт оттуда.
Христофор Оглоблин
Не хватает раздела про поддомены. У каждого поддомена свой robots.txt, и об этом забывают: у нас на трёх региональных поддоменах годами лежал файл с полным запретом, скопированный при создании.