Ошибка «Sorry, you are not allowed to access this page» в WordPress: причины и решение
Короткий ответ: Ошибка «Sorry, you are not allowed to access this page» означает, что WordPress блокирует доступ текущего пользователя к запрошенной странице или действию. Чаще всего проблема связана с неверными правами пользователя (неправильная роль или отсутствие нужных capabilities), повреждённой таблицей wp_usermeta или некорректными мета-данными сессии. Решение зависит от причины — от простой проверки роли в админке до правки таблиц базы данных через phpMyAdmin.
Почему возникает эта ошибка?
WordPress использует систему ролей и прав (capabilities). Каждый пользователь имеет определённую роль (администратор, редактор, автор и т.д.), и каждая роль имеет набор разрешённых действий. Когда вы пытаетесь выполнить действие, на которое у вашей учётной записи нет прав, WordPress показывает сообщение «Sorry, you are not allowed to access this page».
Ошибка может появиться в нескольких сценариях:
- После переноса сайта — пользователи из старой базы могут иметь повреждённые сериализованные данные
- После обновления WordPress или плагинов — обновление могло изменить структуру таблиц или мета-данных
- После ручного редактирования БД — неосторожное изменение
wp_usermetaломает сериализованные строки - Из-за плагина безопасности — некоторые плагины (Wordfence, iThemes Security, Sucuri) блокируют доступ при подозрительной активности
- После деактивации/удаления плагина — плагин мог добавлять кастомные роли или capabilities, которые теперь отсутствуют
Как исправить (пошаговое руководство)
Шаг 1. Проверьте, под какой учётной записью вы зашли
Самое банальное, но частое: вы пытаетесь зайти под учёткой подписчика (subscriber) или автора (author), а не администратора. На странице /wp-admin/users.php проверьте роль своей учётной записи.
Если у вас есть доступ к БД — выполните SQL-запрос:
SELECT user_login, meta_value
FROM wp_users
JOIN wp_usermeta ON wp_users.ID = wp_usermeta.user_id
WHERE wp_usermeta.meta_key = 'wp_capabilities';
В колонке meta_value вы увидите сериализованный массив с названием роли — например, a:1:{s:13:"administrator";b:1;}.
Шаг 2. Сбросьте роль пользователя через phpMyAdmin
Если роль отображается некорректно или повреждена:
- Зайдите в phpMyAdmin (или любой MySQL-клиент)
- Найдите таблицу
wp_usermeta - Найдите строку с
meta_key = 'wp_capabilities'для вашего пользователя - Установите значение:
a:1:{s:13:"administrator";b:1;}
Внимание: сериализованные строки в WordPress чувствительны к длине строк. Если вы укажете неправильную длину (число перед s:), сериализация сломается. Используйте phpMyAdmin — он правильно обрабатывает такие данные.
Если нужно дать права администратора через SQL напрямую (например, пользователю с ID=1):
INSERT INTO wp_usermeta (user_id, meta_key, meta_value)
VALUES (1, 'wp_capabilities', 'a:1:{s:13:"administrator";b:1;}')
ON DUPLICATE KEY UPDATE meta_value = 'a:1:{s:13:"administrator";b:1;}';
Шаг 3. Очистите кеш плагинов безопасности
Плагины вроде Wordfence, iThemes Security или Sucuri могут заблокировать доступ на основе IP или подозрительного поведения. Отключите плагин временно через FTP/SFTP:
- Подключитесь по FTP к серверу
- Перейдите в
/wp-content/plugins/ - Переименуйте папку плагина безопасности (например,
wordfence→wordfence_disabled) - Попробуйте зайти в админку заново
Если зашли — значит проблема была в плагине. Настройте его правила или обратитесь в поддержку.
Шаг 4. Обновите постоянные ссылки (permalinks)
Иногда ошибка возникает из-за сбитых правил реврайта. Зайдите в Настройки → Постоянные ссылки и просто нажмите «Сохранить изменения» — WordPress перезапишет файл .htaccess.
Шаг 5. Отключите все плагины через FTP/SFTP
Если ни один из шагов не помог, отключите все плагины разом:
- Подключитесь по FTP
- Переименуйте
/wp-content/plugins/в/wp-content/plugins_disabled/ - Создайте пустую папку
/wp-content/plugins/ - Зайдите в админку — если ошибка исчезла, проблема в одном из плагинов. Включайте их по одному, чтобы найти виновника.
Шаг 6. Проверьте ajaxurl и cookie (для AJAX-запросов)
Если ошибка появляется только при работе с AJAX-формами (редактор Gutenberg, медиа-библиотека, WooCommerce) — дело может быть в неверном значении ajaxurl или отсутствии nonce.
Добавьте во functions.php вашей темы:
add_action('wp_head', function() {
if (is_admin()) {
echo '<script>var ajaxurl = "' . admin_url('admin-ajax.php') . '";</script>';
}
});
Профилактика
- Делайте резервную копию БД перед любыми обновлениями и миграциями — используйте плагины вроде UpdraftPlus или All-in-One WP Migration
- Не редактируйте таблицы
wp_usermetaвручную через SQL без острой необходимости — сериализованные данные легко сломать - Используйте правильный префикс таблиц — если вы изменили префикс
wp_при установке, везде в примерах используйте свой (например,myprefix_capabilities) - Проверяйте роли при переносе сайта — после миграции всегда проверяйте, что учётные записи имеют корректные роли
- Обновляйте WordPress централизованно — крупные обновления (с мажорной сменой версии) лучше тестировать на staging-копии
Когда обратиться к специалисту
Если вы прошли все шаги, а ошибка не ушла — скорее всего, повреждены системные таблицы WordPress или база данных содержит скрытые проблемы с сериализацией. В этом случае стоит:
- Заказать аудит БД у специалиста по WordPress
- Проверить таблицы на наличие ошибок через
CHECK TABLE wp_options; - Рассмотреть восстановление сайта из полной резервной копии
Заключение
Ошибка «Sorry, you are not allowed to access this page» — одна из самых распространённых проблем прав доступа в WordPress. В 90% случаев она решается проверкой роли пользователя (шаг 1) или сбросом capabilities (шаг 2). Остальные 10% — результат работы плагинов безопасности или повреждённой БД после миграции. Главное — не паниковать и действовать последовательно, начиная с самого простого шага.
Автор: Самадминистратор, технический специалист по WordPress
Дата публикации: 5 июня 2026
Последнее обновление: 5 июня 2026
