Файл wp-login.php является уязвимой точкой в безопасности любого сайта на WordPress, так как именно через него происходит авторизация в админ-панель. Если этот файл доступен для индексации поисковыми системами и сканируется ботами, возрастает риск атак перебором паролей, DDoS и других злоумышленных действий. В этой статье подробно рассмотрим, как спрятать wp-login.php от поисковых систем и роботов, сохранив при этом удобство доступа для администраторов.
Почему важно скрывать wp-login.php от поисковых систем и ботов
По умолчанию файл wp-login.php доступен по URL example.com/wp-login.php. Поисковые системы могут индексировать эту страницу, а боты — автоматически сканировать и пытаться подобрать пароли, что повышает нагрузку на сервер и риск взлома.
Скрытие wp-login.php от индексации и роботов снижает вероятность:
- Brute force атак;
- автоматического сканирования уязвимостей;
- перегрузки сервера лишними запросами.
Уменьшается объем логов и снижается нагрузка на хостинг.
Как запретить индексацию wp-login.php через robots.txt
Самый первый и простой шаг — добавить правило в robots.txt, чтобы поисковики не индексировали эту страницу. Для этого откройте файл robots.txt в корне сайта и добавьте:
User-agent: *
Disallow: /wp-login.php
Это простое правило запрещает всем роботам доступ к wp-login.php. Однако стоит понимать, что не все боты соблюдают robots.txt, особенно вредоносные.
Проверка корректности файла robots.txt
После внесения изменений проверьте файл по адресу example.com/robots.txt. Можно также использовать инструменты Google Search Console для проверки, что wp-login.php не индексируется.
Ограничение доступа к wp-login.php по IP через .htaccess
Для надежной защиты можно ограничить доступ к странице входа только определенными IP-адресами. Это эффективно, если вы заходите с фиксированного IP.
Добавьте в файл .htaccess в корне сайта следующий код:
# Ограничение доступа к wp-login.php
<Files wp-login.php>
Order Deny,Allow
Deny from all
Allow from 123.45.67.89
</Files>
Замените 123.45.67.89 на ваш IP-адрес. Можно добавить несколько строк Allow from для разных IP.
Этот метод полностью блокирует доступ к wp-login.php для всех, кроме указанных IP, что надежно отсекает ботов и поисковики.
Скрытие wp-login.php с помощью плагина WPHide
Благодаря домену wphide.ru рекомендуем обратить внимание на плагин WPHide. Этот плагин позволяет:
- изменить URL страницы входа на кастомный, например
/my-login; - полностью отключить доступ к стандартному
wp-login.phpиwp-adminдля посторонних; - автоматически перенаправлять ботов и поисковики;
- защищать от перебора паролей на уровне URL.
После установки и активации плагина в настройках вы сможете задать новый адрес входа, который не будет индексироваться поисковиками и не будет доступен ботам.
Пример использования WPHide
1. Установите плагин через Плагины > Добавить новый или скачайте с официального сайта.
2. Перейдите в настройки плагина и введите новый URL для входа, например /secret-login.
3. Сохраните изменения. Теперь стандартный /wp-login.php будет недоступен и возвращать ошибку 404.
Программное перенаправление и блокировка wp-login.php
Если вы хотите самостоятельно реализовать защиту без плагинов, можно добавить в functions.php темы следующий код, который будет перенаправлять все запросы к wp-login.php на страницу 404, если запрос не от администратора:
function wphide_redirect_wp_login() {
$requested_url = basename($_SERVER['REQUEST_URI']);
if ( 'wp-login.php' === $requested_url ) {
if ( ! current_user_can('manage_options') ) {
wp_redirect( home_url('/404') );
exit;
}
}
}
add_action('init', 'wphide_redirect_wp_login');
Этот простой код проверяет, если кто-то пытается открыть wp-login.php, и если пользователь не админ, его перенаправляет на 404 страницу.
Дополнительные советы по защите и скрытию страницы входа
Использование HTTP-аутентификации
Еще один уровень защиты — подключить базовую HTTP-аутентификацию через .htpasswd на wp-login.php. Это создаст дополнительный запрос логина и пароля до загрузки стандартной страницы.
Отключение REST API для неавторизованных
Многие боты используют REST API для сканирования сайта. Отключите его для гостей с помощью кода:
function wphide_disable_rest_api_for_guests() {
if ( ! is_user_logged_in() ) {
wp_die('REST API restricted', '', array('response' => 403));
}
}
add_action('rest_api_init', 'wphide_disable_rest_api_for_guests', 99);
Проверка индексации через Google Search Console
Регулярно проверяйте, не попала ли ваша страница входа в индекс Google или других поисковиков. Если попала — исключайте через robots.txt и переиндексацию.
Итоги и рекомендации
Для надежного скрытия wp-login.php рекомендуется комбинировать несколько методов:
- запрет индексации в
robots.txt; - ограничение доступа по IP через
.htaccess; - использование плагина WPHide для смены URL;
- программное перенаправление и блокировка через
functions.php; - дополнительная HTTP-аутентификация.
Такой комплексный подход гарантирует, что ваша страница входа не будет легкой мишенью для ботов и не будет индексироваться поисковыми системами.