Как автоматически удалять неактивных пользователей в WordPress

Ведение сайта на WordPress часто предполагает регистрацию множества пользователей. Со временем среди них появляются неактивные аккаунты — пользователи, которые долго не заходили на сайт или не проявляют активности. Такие аккаунты могут засорять базу данных, создавать потенциальные риски безопасности и влиять на производительность. В этой статье подробно рассмотрим, как автоматически удалять неактивных пользователей в WordPress с помощью кода и плагинов.

Почему важно удалять неактивных пользователей

Многие администраторы забывают о неактивных пользователях, считая, что их присутствие не повредит. Но на практике это:

  • Загрязняет базу данных — лишние записи увеличивают размер базы и замедляют запросы.
  • Повышает риск взлома — неактивные аккаунты часто имеют слабые пароли и не обновляются.
  • Снижает качество аналитики — статистика по пользователям и активности искажается.

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

Как определить неактивного пользователя

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

Добавляем запись даты последнего входа

Для этого используем хук wp_login, который срабатывает при успешной авторизации:

function wpteam_update_last_login($user_login, $user) {
    update_user_meta($user->ID, '_wpteam_last_login', current_time('timestamp'));
}
add_action('wp_login', 'wpteam_update_last_login', 10, 2);

Этот код сохраняет в мета-поле пользователя время последнего входа в формате timestamp. Теперь можно использовать это значение для фильтрации неактивных пользователей.

Автоматическое удаление неактивных пользователей с помощью WP-Cron

Чтобы не делать это вручную, создадим регулярное задание через WP-Cron, которое будет удалять всех пользователей, не заходивших на сайт более заданного периода, например, 180 дней.

Добавляем функцию удаления

function wpteam_delete_inactive_users() {
    $threshold = strtotime('-180 days');
    $args = [
        'meta_key' => '_wpteam_last_login',
        'meta_value' => $threshold,
        'meta_compare' => '<',
        'fields' => 'ID',
        'number' => 100,
    ];
    $user_query = new WP_User_Query($args);
    $users = $user_query->get_results();

    if (!empty($users)) {
        foreach ($users as $user_id) {
            wp_delete_user($user_id);
        }
    }
}

Регистрируем WP-Cron задачу

function wpteam_schedule_inactive_user_cleanup() {
    if (!wp_next_scheduled('wpteam_inactive_user_cleanup_hook')) {
        wp_schedule_event(time(), 'daily', 'wpteam_inactive_user_cleanup_hook');
    }
}
add_action('wp', 'wpteam_schedule_inactive_user_cleanup');
add_action('wpteam_inactive_user_cleanup_hook', 'wpteam_delete_inactive_users');

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

Использование плагинов для управления неактивными пользователями

Если вы не хотите писать код, можно использовать плагины, например:

  • Clearfy Pro — плагин для оптимизации и защиты сайта, в том числе умеет работать с неактивными пользователями.
  • WPRemark — плагин с расширенными возможностями управления пользователями.

Установка таких плагинов позволяет настроить очистку пользователей через интерфейс без программирования.

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

Удаление неактивных пользователей — важный шаг, но лучше комплексно подходить к безопасности:

  • Регулярно обновляйте WordPress, темы и плагины.
  • Используйте двухфакторную аутентификацию для администраторов.
  • Ограничивайте количество попыток входа для предотвращения перебора паролей.
  • Проверяйте активность пользователей и уведомляйте их о долгом отсутствии.

Например, можно отправлять email напоминания с помощью WP-Cron перед удалением аккаунта.

Выводы и практический совет

Автоматическое удаление неактивных пользователей помогает поддерживать чистоту базы, повышает безопасность и улучшает производительность сайта на WordPress. Используйте собственный код с WP-Cron для максимального контроля или готовые решения на базе плагинов, таких как Clearfy Pro.

Не забывайте предварительно делать резервные копии базы данных перед автоматическим удалением пользователей — это поможет избежать потери важных данных.

Как добавить динамические метаданные в WordPress по условию
31.03.2026
Как избежать конфликтов между плагинами WordPress
10.03.2026
Как использовать хук filter pre_get_posts для автоматической фильтрации записей в WordPress
02.03.2026
Как удалить удалённых пользователей из базы данных WordPress
10.12.2025
Как автоматизировать создание и удаление записей через WP-Cron в WordPress
08.01.2026

Возникли задачи по WP? Вы можете задать свой вопрос на FAQwp.com Либо обратиться к специалистам поддержки.