Как отключить кеширование страницы входа в WordPress

Кеширование — важная технология для ускорения загрузки страниц сайта, но в случае с страницей входа в WordPress (wp-login.php) оно может вызвать проблемы с авторизацией и безопасностью. В этой статье мы подробно разберём, почему нужно отключать кеширование для страницы входа, как это сделать с помощью кода и популярных плагинов, а также рассмотрим нюансы настройки серверного и плагинового кешей.

Почему важно отключать кеширование страницы входа в WordPress

Страница входа — это динамическая страница, которая обрабатывает форму авторизации и устанавливает сессии пользователя. Если кешировать эту страницу, браузер или CDN могут показывать устаревшую версию, из-за чего будут возникать ошибки при вводе логина и пароля, проблемы с редиректами и даже сессиями.

Кроме того, кеширование wp-login.php может создавать угрозы безопасности — злоумышленники могут получить доступ к кешированной форме или обойти некоторые защитные механизмы.

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

Отключение кеширования страницы входа через functions.php

Самый простой способ — добавить в functions.php вашей темы или в отдельный плагин код, который устанавливает заголовки, запрещающие кеширование для wp-login.php и связанных страниц.

function wplogin_disable_login_page_cache() {
    if (strpos($_SERVER['REQUEST_URI'], 'wp-login.php') !== false ||
        strpos($_SERVER['REQUEST_URI'], 'wp-admin') !== false) {
        nocache_headers();
        header('Cache-Control: no-store, no-cache, must-revalidate, max-age=0');
        header('Pragma: no-cache');
        header('Expires: Wed, 11 Jan 1984 05:00:00 GMT');
    }
}
add_action('send_headers', 'wplogin_disable_login_page_cache');

Данный код проверяет, запрашивается ли wp-login.php или wp-admin, и отправляет необходимые HTTP-заголовки для отключения кеширования.

Особенности и советы

  • Функция nocache_headers() уже устанавливает часть нужных заголовков, но лучше дополнить их вручную для максимальной совместимости.
  • Если вы используете CDN или серверное кеширование (например, Varnish, Nginx FastCGI Cache), нужно дополнительно настроить исключения на уровне сервера.
  • Проверяйте, чтобы другие плагины кеширования (WP Rocket, W3 Total Cache, LiteSpeed Cache) не кешировали страницу входа, для этого настройте исключения в их настройках.

Настройка популярных плагинов кеширования для исключения wp-login.php

Большинство популярных плагинов кеширования поддерживают отключение кеширования для страниц входа. Вот примеры для самых распространённых:

WP Rocket

WP Rocket по умолчанию исключает из кеша страницы wp-login.php и wp-admin. Чтобы проверить или добавить исключения:

  • Перейдите в Настройки WP Rocket > Кеширование
  • В разделе «Исключения» добавьте wp-login.php*

W3 Total Cache

В W3 Total Cache зайдите в Performance > Page Cache и в поле «Never cache the following pages» добавьте:

/wp-login.php
/wp-admin/

LiteSpeed Cache

В настройках LiteSpeed Cache, в разделе Cache > Excludes добавьте в список исключений wp-login.php и wp-admin/*.

Отключение кеширования на уровне сервера (Nginx, Apache)

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

Пример настройки Nginx

location ~* /wp-login.php {
    add_header Cache-Control "no-store, no-cache, must-revalidate, proxy-revalidate, max-age=0";
    expires off;
    proxy_no_cache 1;
    proxy_cache_bypass 1;
}

Пример настройки Apache (.htaccess)

<FilesMatch "wp-login.php">
    Header set Cache-Control "no-store, no-cache, must-revalidate, max-age=0"
    Header set Pragma "no-cache"
    Header set Expires "Wed, 11 Jan 1984 05:00:00 GMT"
</FilesMatch>

Тестирование отключения кеширования страницы входа

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

  • Откройте вкладку Network (Сеть) и обновите страницу входа.
  • Выберите запрос к wp-login.php и проверьте заголовки ответа — там должны быть Cache-Control: no-store, no-cache, Pragma: no-cache и Expires с датой в прошлом.
  • Также проверьте, что после повторного запроса страница обновляется, а не берётся из кеша.

Дополнительные рекомендации по безопасности страницы входа

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

  • Использовать Clearfy Pro для оптимизации безопасности и отключения лишних функций WordPress.
  • Добавить защиту от брутфорс-атак с помощью плагинов Limit Login Attempts или встроенных функций Clearfy.
  • Включить двухфакторную аутентификацию (2FA) через специальные плагины.
  • Регулярно обновлять WordPress, темы и плагины для устранения уязвимостей.
Как сделать один вход в WordPress для нескольких сайтов (единый вход)
03.04.2026
Как запретить доступ к wp-login.php для определённых ролей пользователей в WordPress
04.05.2026
Как изменить метод авторизации в WordPress на токены для повышения безопасности
31.12.2025
Как автоматизировать сбор логов входа в WordPress для анализа и безопасности
11.04.2026
Как исправить ошибку 429 Too Many Requests при входе в WordPress
15.06.2026

wp-login.php - это страница входа в системе управления вордпресс. Если Вы хотите изменить внешний вид страницы входа - читайте здесь. Если вам нужно защитить админку - подробный мануал. Вы можете установить плагин Clearfy, в котором есть функция защиты админки и страницы входа.