На WordPress часто индексируются не только полезные страницы, но и служебные URL: вход, регистрация, сброс пароля, иногда кастомные формы авторизации от плагинов. Проблема не в самом факте индексации, а в том, что такие страницы создают мусор в отчётах, могут попадать в поиск по бренду и иногда дублируются в нескольких вариантах URL.
Если задача именно в том, чтобы убрать из индекса страницы входа, лучше не стрелять по всему сайту через robots.txt. Для таких URL обычно нужен точечный noindex и, при необходимости, защита от сканирования через заголовки или мета-тег.
Какие страницы стоит проверить в первую очередь
Сначала соберите список реальных служебных адресов. На стандартном WordPress это обычно /wp-login.php, /wp-register.php на некоторых конфигурациях, страница сброса пароля и кастомные страницы, которые создаёт тема или плагин. Если у вас есть отдельная страница входа через плагин, именно она чаще всего и попадает в индекс.
Типичные признаки проблемы
- в Google Search Console появляются URL с путями вроде
/wp-login.phpили/login/; - в выдаче видны страницы входа с пустым или служебным title;
- страница регистрации доступна по нескольким адресам и индексируется как дубль;
- robots.txt закрывает URL, но они всё равно висят в индексе как «заблокировано robots.txt».
Последний пункт особенно важен: если URL уже попал в индекс, одного запрета в robots.txt часто недостаточно. Поисковику нужно дать сигнал noindex или вернуть корректный статус/каноникал в зависимости от сценария.
Диагностика: что именно индексируется
Откройте проблемный URL в браузере и проверьте исходный код страницы. Ищите тег <meta name="robots" content="noindex, nofollow"> или похожую директиву, а также канонический адрес. Если страница отдаёт 200 OK и не содержит noindex, поисковик будет считать её обычной страницей.
Для быстрой проверки можно использовать команду:
curl -I https://example.com/wp-login.phpВ ответе смотрите на код статуса и заголовки. Если это кастомная страница входа, проверьте не только HTML, но и то, не создаёт ли плагин отдельные копии для мобильной версии, AMP или языковых поддоменов.
Рабочие способы закрыть страницы входа от индексации
Ниже — три подхода. Выбор зависит от того, стандартный это URL или страница, которую отдаёт тема или плагин.
| Способ | Когда подходит | Плюсы | Минусы |
|---|---|---|---|
Мета-тег noindex | Кастомные страницы входа, регистрации, сброса пароля | Точечное управление, не ломает доступ | Нужно внедрять в шаблон или через хук |
HTTP-заголовок X-Robots-Tag | Если нужно закрыть не-HTML или управлять на уровне ответа | Работает без правки шаблона | Чуть сложнее отладка |
| robots.txt | Только как дополнительная мера | Просто добавить | Не убирает уже проиндексированные URL |
1. Добавить noindex для конкретной страницы
Если у вас кастомная страница входа на основе обычной страницы WordPress, проще всего добавить мета-тег через wp_head. Ниже пример для страницы с слагом login:
add_action( 'wp_head', function () {
if ( is_page( 'login' ) ) {
echo '<meta name="robots" content="noindex, nofollow" />' . "\n";
}
} );Этот вариант не трогает остальные страницы сайта. Если у вас отдельные страницы register и lost-password, добавьте их в условие через массив.
add_action( 'wp_head', function () {
if ( is_page( array( 'login', 'register', 'lost-password' ) ) ) {
echo '<meta name="robots" content="noindex, nofollow" />' . "\n";
}
} );2. Закрыть стандартный wp-login.php через X-Robots-Tag
Для wp-login.php мета-тег в HTML не подходит, потому что это не обычная страница темы. Здесь удобнее отдать заголовок X-Robots-Tag. Его можно добавить через login_init:
add_action( 'login_init', function () {
header( 'X-Robots-Tag: noindex, nofollow', true );
} );Это не блокирует вход в админку и не мешает авторизации. Поисковик получает явный сигнал не индексировать ответ.
3. Не полагаться только на robots.txt
Если URL уже в индексе, строка в robots.txt вроде Disallow: /wp-login.php не гарантирует удаление. Она лишь ограничивает обход. Использовать её можно как дополнительный слой, но не как единственный механизм.
User-agent: *
Disallow: /wp-login.php
Disallow: /wp-register.phpДля служебных страниц это допустимо, но не заменяет noindex. Если закрываете через robots.txt, убедитесь, что поисковик всё равно может увидеть директиву noindex на самой странице или в заголовке.
Пошаговое решение без лишнего риска
- Составьте список URL, которые реально нужно закрыть: вход, регистрация, сброс пароля, служебные страницы плагинов.
- Проверьте, отдаются ли они как обычные HTML-страницы или как системные endpoints.
- Для обычных страниц добавьте
noindex, nofollowвwp_head. - Для
wp-login.phpиспользуйтеX-Robots-Tagчерезlogin_init. - При необходимости добавьте записи в robots.txt как вспомогательную меру.
- После обновления очистите кеш страницы и кеш CDN, если он есть.
Как проверить, что решение сработало
Проверка должна быть не визуальной, а технической. Откройте исходный код страницы и убедитесь, что на нужном URL появился noindex. Для wp-login.php проверьте заголовки:
curl -I https://example.com/wp-login.phpВ ответе должен быть заголовок X-Robots-Tag: noindex, nofollow. Для кастомной страницы входа откройте исходный HTML и найдите мета-тег robots. Затем проверьте Search Console: URL должен уйти из отчёта об индексировании не мгновенно, а после повторного обхода.
Если страница всё ещё отображается в выдаче, проверьте три вещи: не отдаёт ли она старую версию из кеша, не дублируется ли по http/https и www/non-www, и не создаёт ли плагин отдельный URL для той же формы.
Частые ошибки и как их исправить
- Закрыли URL в robots.txt и ждут удаления из индекса. Исправление: добавьте
noindexили заголовокX-Robots-Tag. - Поставили
noindexна страницу входа, но забыли про кеш. Исправление: очистите кеш плагина, сервера и CDN. - Закрыли не ту страницу. Исправление: проверьте фактический URL, который отдаёт плагин, а не только красивый слаг.
- Использовали
nofollowвместоnoindex. Исправление:nofollowне убирает страницу из индекса само по себе. - Добавили редирект на главную. Исправление: для служебных страниц это часто плохая идея, потому что создаёт лишний шум и может запутать пользователей.
Что делать с безопасностью и производительностью
Если страница входа индексируется, это не только SEO-вопрос. Публичный URL логина чаще сканируют боты, а значит, он чаще попадает под перебор паролей и лишнюю нагрузку. Закрытие от индексации не заменяет защиту входа, но снижает видимость служебного URL в поиске.
Для защиты лучше дополнительно использовать ограничение попыток входа, двухфакторную аутентификацию и, если это уместно, смену стандартного URL входа. Но не путайте безопасность с SEO: скрытый URL не делает вход защищённым автоматически.
Если нужно быстро навести порядок в дублях, служебных страницах и технических настройках индексации, в экосистеме WPShop есть Clearfy Pro — он закрывает часть типовых задач по чистке сайта и SEO-настройкам. Но даже с плагином полезно понимать, какие URL вы закрываете и почему: это проще проверять и безопаснее сопровождать.
Когда лучше не закрывать страницу полностью
Не все страницы входа нужно прятать от индексации. Если это публичная страница авторизации для закрытого сообщества или клиентского кабинета, иногда важнее оставить её доступной, но убрать из выдачи только служебные копии. В таком случае используйте точечный noindex без редиректов и без агрессивных правил в robots.txt.
Если страница нужна для пользователей, но не для поиска, задача решается именно так: доступ остаётся, индексирование — нет. Это самый безопасный сценарий для WordPress, когда не хочется ломать маршрутизацию темы или плагина.