Быстрые ссылки

Не входит в админку WordPress: как восстановить доступ

Проблема «не могу войти в админку» на деле бывает пяти-шести разных видов, и решение у каждого своё. Сначала определите, что именно происходит, затем выбирайте способ.

Что именно не работает

  • Неверный пароль, а восстановление по почте не приходит.
  • Страница входа перезагружается после ввода правильного пароля, вы снова видите форму.
  • Бесконечный редирект: браузер пишет «Слишком много перенаправлений».
  • Ошибка после входа: белый экран или «критическая ошибка» на /wp-admin.
  • Страница входа не открывается: 403, 404 или блокировка от плагина безопасности.
  • Нет прав: «Извините, вам не разрешено просматривать эту страницу».

Способ 1. Восстановление пароля по почте

Ссылка «Забыли пароль?» на странице входа. Работает, только если на сайте настроена отправка почты. Если письмо не приходит, проверьте спам, а затем переходите к способам ниже — и потом настройте почту, иначе вы не получите и заявки с сайта. Подробно — в статье «Не приходят заявки с сайта».

Способ 2. Смена пароля через phpMyAdmin

Откройте phpMyAdmin в панели хостинга, выберите базу сайта (имя есть в wp-config.php, константа DB_NAME), таблицу wp_users. Префикс таблиц может отличаться — смотрите $table_prefix в wp-config.php.

Найдите своего пользователя, нажмите «Изменить», в поле user_pass выберите функцию MD5 и введите новый пароль. Сохраните. При первом входе WordPress сам перехеширует пароль надёжным алгоритмом.

То же одним SQL-запросом:

UPDATE wp_users SET user_pass = MD5('новый-пароль') WHERE user_login = 'admin';

Способ 3. WP-CLI

Если есть SSH-доступ, это самый быстрый способ:

wp user list --role=administrator
wp user update admin --user_pass='новый-сложный-пароль'

Создать нового администратора:

wp user create anton anton@example.com --role=administrator

Пароль будет выведен в консоль.

Способ 4. Через functions.php

Когда нет ни SSH, ни phpMyAdmin, но есть FTP. Добавьте в конец functions.php активной темы:

add_action( 'init', function () {
    $u = get_user_by( 'login', 'admin' );
    if ( $u ) {
        wp_set_password( 'новый-пароль', $u->ID );
    }
} );

Откройте любую страницу сайта один раз и сразу удалите этот код. Если его оставить, пароль будет сбрасываться при каждом открытии сайта.

Способ 5. Страница входа перезагружается или редиректит по кругу

Причины по частоте:

  1. Неправильный адрес сайта. В Настройки — Общие или в базе (wp_options, строки siteurl и home) указан http вместо https или домен без www, а сервер перенаправляет на другой вариант. Cookie ставятся на один адрес, проверяются на другом. Исправьте в wp-config.php:
define( 'WP_HOME', 'https://example.by' );
define( 'WP_SITEURL', 'https://example.by' );
  1. Сайт за прокси или CDN, и WordPress не понимает, что соединение HTTPS. Добавьте в wp-config.php до строки require_once ABSPATH . ‘wp-settings.php’:
if ( isset( $_SERVER['HTTP_X_FORWARDED_PROTO'] ) && $_SERVER['HTTP_X_FORWARDED_PROTO'] === 'https' ) {
    $_SERVER['HTTPS'] = 'on';
}
  1. Плагин кэширования закэшировал страницу входа. Очистите кэш, переименовав папку /wp-content/cache.
  1. Плагин безопасности или смены адреса входа. Отключите его, переименовав папку в /wp-content/plugins.
  1. Cookie в браузере. Попробуйте окно инкогнито — это исключает проблему за 10 секунд.

Способ 6. Заблокирован вход

Плагины вроде Limit Login Attempts, Wordfence, iThemes Security блокируют IP после нескольких неудачных попыток. Варианты:

  • подождать, пока блокировка снимется (обычно от 20 минут до суток);
  • зайти с другого IP, например с мобильного интернета;
  • переименовать папку плагина по FTP.

Если вход закрыт на уровне сервера (базовая авторизация nginx, ограничение по IP), нужно смотреть конфигурацию сервера или спросить того, кто её настраивал.

Способ 7. Пропали права администратора

Вы входите, но видите «Вам не разрешено просматривать эту страницу». Роль пользователя испорчена — бывает после взлома или неудачной миграции с другим префиксом таблиц.

Проверьте в таблице wp_usermeta для вашего user_id строку wp_capabilities. Для администратора значение должно быть:

a:1:{s:13:"administrator";b:1;}

Обратите внимание: префикс в названии ключа (wp_capabilities) должен совпадать с $table_prefix из wp-config.php. После переноса сайта с префиксом wp_ на abc_ ключи в usermeta остаются со старым префиксом, и WordPress не видит роль.

Если на /wp-admin критическая ошибка

Это не проблема входа, а поломка плагина или темы. Порядок действий — в статье «Белый экран и критическая ошибка WordPress».

Если в списке пользователей есть незнакомые администраторы

Это почти всегда взлом. Не ограничивайтесь сменой пароля: злоумышленник оставляет запасные входы в файлах. Нужно проверить сайт целиком — подробно в статье «Вирус на сайте».

Как не терять доступ в будущем

  • Настройте отправку почты через SMTP, чтобы восстановление пароля работало.
  • Храните пароли в менеджере паролей, а не в браузере на одном компьютере.
  • Заведите второго администратора на другой адрес почты.
  • Включите двухфакторную аутентификацию — например, бесплатным плагином Two Factor.
  • Не делайте пользователя с логином admin.

Если ни один способ не сработал или в процессе выяснилось, что сайт взломан, — напишите мне. Восстанавливаю доступ и разбираюсь с причинами в рамках доработки WordPress или ремонта сайта.

Ошибка «Файлы cookie заблокированы или не поддерживаются»

Сообщение появляется на странице входа, если WordPress не может установить cookie. Причины:

  • адрес сайта в настройках отличается от адреса в браузере (www и без www, http и https);
  • в wp-config.php задан COOKIE_DOMAIN, не совпадающий с доменом;
  • кэширующий плагин или CDN отдаёт закэшированную страницу входа;
  • перед заголовками PHP что-то выводится — например, пробел или BOM в начале wp-config.php или functions.php.

Последний случай легко проверить: откройте wp-config.php в редакторе, который показывает кодировку, и сохраните его в UTF-8 без BOM. Убедитесь, что перед <?php нет пробелов и пустых строк.

Страница входа отдаёт 404 или 403

  • 404 — чаще всего плагин смены адреса входа (WPS Hide Login и подобные). Адрес входа указан в его настройках; если доступа нет — переименуйте папку плагина, и вход снова будет по /wp-login.php.
  • 403 — запрет на уровне сервера: правило в .htaccess, ограничение по IP в nginx, блокировка от защиты хостинга. Проверьте .htaccess в корне и в /wp-admin, спросите у хостинга, нет ли блокировки.
  • 401 и окно браузера с логином — на вход поставлена дополнительная базовая авторизация. Это защита, а не поломка: логин и пароль от неё должны быть у того, кто её настраивал.

Типичный случай: вход ломается после перехода на HTTPS

Сайт переводят на HTTPS через панель хостинга, и вход в админку начинает перезагружать страницу. Причина — в базе остались адреса с http, а сервер принудительно перенаправляет на https. Cookie авторизации ставятся для одного адреса, а проверяются для другого.

Решение:

wp option update home 'https://example.by'
wp option update siteurl 'https://example.by'
wp search-replace 'http://example.by' 'https://example.by' --skip-columns=guid

Последняя команда заменяет старые адреса в содержимом сайта, чтобы не было смешанного контента. Перед ней обязательно делайте резервную копию базы.

Чек-лист, если не входит в админку

  1. Попробовать окно инкогнито — исключить cookie и кэш браузера.
  2. Восстановить пароль по почте.
  3. Сменить пароль через phpMyAdmin или WP-CLI.
  4. Проверить адрес сайта в wp_options или задать WP_HOME и WP_SITEURL.
  5. Отключить плагины безопасности и кэширования переименованием папок.
  6. Проверить права в wp_usermeta и префикс таблиц.
  7. Посмотреть лог ошибок, если после входа белый экран.
  8. Проверить список администраторов на незнакомых пользователей.

Как не потерять доступ в будущем

  • Храните логин и пароль администратора в менеджере паролей, а не в браузере на одном компьютере.
  • Укажите в профиле администратора реальную почту, к которой есть доступ, и проверьте, что письма с сайта до неё доходят.
  • Заведите второго администратора для подрядчика вместо передачи своих данных и удаляйте его после окончания работ.
  • Записывайте адрес входа, если его меняли плагином безопасности.
  • Сохраните доступы к хостингу: с ними любой вход восстанавливается за несколько минут.

Частые вопросы

Могу ли я восстановить доступ, если у меня нет доступа к хостингу?

Только через восстановление пароля по почте. Если почта недоступна, понадобится доступ к хостингу — его можно восстановить у провайдера по договору или документам.

Безопасно ли давать разработчику доступ к админке?

Безопаснее создать ему отдельного пользователя с ролью администратора и удалить его после работ, чем передавать свой пароль.

После входа меня сразу выкидывает обратно на страницу логина. Что это?

Почти всегда несовпадение адреса сайта в настройках с адресом в браузере или кэш страницы входа. Проверьте siteurl и home и исключите wp-login.php из кэширования.

Нужна помощь?

Если не хочется разбираться самому или не получилось — напишите мне. Посмотрю сайт и скажу, что сломалось и сколько стоит исправить.

Доработка сайтов на WordPressНаписать в TelegramНаписать в Viber

Leave a comment