WordPress SEO: индекс, скорость и чистая архитектура

robots.txt в WordPress

robots.txt в WordPress часто виртуальный: кто побеждает — файл на диске, nginx или поле Yoast, и какие Disallow вредят.

Кирилл Бабийчук · обновлено · 3 мин чтения

В 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 от обхода и мешает увидеть мета-роботов.