В WordPress файл robots.txt часто не лежит на диске: ядро и SEO-плагин отдают его виртуально с /robots.txt. Общие директивы — на странице robots.txt. Хаб WordPress SEO про архитектуру. Здесь только CMS: кто побеждает — физический файл, фильтр или поле Yoast, и какие Disallow в типичной установке вредны.
Плагинный редактор в Yoast или Rank Math не отменяет физический robots.txt в корне, если его положили «на всякий случай» при миграции.
Три слоя, которые переписывают друг друга
| Слой | Откуда берётся | Типичная поломка |
|---|---|---|
| Физический /robots.txt | Деплой, ISPmanager, копия с стейджа | Disallow: / с тестового контура переживает выкладку |
| Виртуальный файл WP | do_robots, SEO-плагин, «файл роботов» в кабинете | Правите в Yoast, а nginx отдаёт статический файл раньше PHP |
| Мета robots у записи | noindex в карточке страницы | Думают, что Disallow в корне «снимет из индекса» — нет |
Проверка одна: открыть https://example.ru/robots.txt с продакшена, не из админки. Если видите чужой User-agent и Disallow: / — это не «настройка Yoast», это файл или хостинг. Rewrite в nginx на статику обходит PHP: тогда поле плагина молчит.
Что в WordPress обычно закрывают и что нельзя
/wp-admin/— нормально закрывать./wp-admin/admin-ajax.phpиногда нужен фронту; точечное Allow важнее, чем копипаст с форума 2012 года./wp-content/uploads/целиком закрывать нельзя, если PDF и картинки должны быть в поиске и в сниппетах./wp-content/plugins/и/wp-includes/— обычно Disallow. Закрывать/wp-content/themes/целиком часто режет CSS/JS, без которых не соберётся страница./?s=и служебные query — да, не кормить краулер поиском по сайту. Не путать с ЧПУ записей.
Строка Sitemap: должна совпадать с тем XML, который реально отдаёт плагин, не с /sitemap.xml с прошлого движка. Два SEO-плагина — две карты и два виртуальных файла: оставьте один. Как плагин рисует карту — соседний URL кластера, не эта страница.
Сначала посмотрите, какой байт отдаёт /robots.txt. Потом спорьте, чья это «настройка WordPress».
Индексация записей, архивов и вложений — не задача robots.txt. Для noindex архивов авторов и тегов используйте настройки плагина, не Disallow: /author/. Иначе бот не увидит свежий noindex и будет помнить старый URL. Если сайт должен продавать, а не только «закрыть админку», рамка ближе к продвижению, чем к очередному Disallow.
Ограничение. Синтаксис User-agent и разницу Disallow vs noindex здесь не повторяем — это документ технического кластера. Мультисайт, подкаталог /blog/ и разные файлы на www разбирайте по хосту, который канонический, не «как в инструкции плагина».
Частые вопросы
Почему правки в Yoast не видны в /robots.txt?
Чаще всего nginx или файл на диске отвечает раньше PHP. Удалите или переименуйте физический robots.txt и проверьте без кэша CDN.
Нужно ли закрывать /wp-json/?
Не по умолчанию. REST нужен редактору и части плагинов. Закрытие «от хакеров» через robots.txt безопасность не даёт — это не firewall.
Можно ли одним Disallow убрать вложения из поиска?
Лучше noindex типа «вложение» в плагине. Disallow прячет URL от обхода и мешает увидеть мета-роботов.