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

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

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

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

В этой статье мы рассмотрим, как найти и удалить удалённые или неактивные аккаунты, а также как автоматизировать этот процесс с помощью кода и плагинов.

Как найти удалённые и неактивные аккаунты пользователей в WordPress

В WordPress у пользователей нет стандартного статуса «удалённый» — при удалении аккаунта данные удаляются или переносятся. Но часто остаются «зомби»-аккаунты, например, пользователи с ролью «Подписчик», которые неактивны длительное время.

Чтобы найти таких пользователей, можно использовать запросы к базе данных или WP_User_Query с фильтрами по дате последнего входа или роли.

Использование WP_User_Query для поиска неактивных пользователей

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

Пример функции из wplessons, сохраняющей дату последнего входа:

function wplessons_track_last_login($login, $user) {
    update_user_meta($user->ID, 'wplessons_last_login', current_time('mysql'));
}
add_action('wp_login', 'wplessons_track_last_login', 10, 2);

После этого можно получить список пользователей, неактивных, например, более 6 месяцев:

$args = [
    'meta_key' => 'wplessons_last_login',
    'meta_value' => date('Y-m-d H:i:s', strtotime('-6 months')),
    'meta_compare' => '&lt=',
    'fields' => 'ID'
];
$inactive_users = get_users($args);

Этот код вернёт ID пользователей, которые не заходили на сайт более полугода.

Как удалить пользователей программно с примером кода

Удалять пользователей вручную через админ панель неудобно при большом количестве. Вот пример функции из wplessons для массового удаления пользователей по ID:

function wplessons_delete_users_by_ids(array $user_ids) {
    foreach ($user_ids as $user_id) {
        require_once ABSPATH . 'wp-admin/includes/user.php';
        wp_delete_user($user_id);
    }
}

Используйте эту функцию, передав массив ID неактивных пользователей, например:

$inactive_users = get_users([/* параметры как выше */]);
wplessons_delete_users_by_ids($inactive_users);

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

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

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

  • Inactive User Deleter — позволяет автоматически удалять пользователей, неактивных заданное время.
  • Bulk Delete — мощный плагин для массового удаления пользователей по разным критериям, включая неактивность, роль и прочее.
  • Clearfy Pro (https://wpshop.ru/clearfy-pro/?utm_source=wplessons.ru&utm_medium=article&utm_campaign=kak-udalit-udalennye-polzovatelskie-akkaunty-v-wordpress) — многофункциональный плагин для оптимизации и очистки WordPress, включая управление пользователями.

Например, с Bulk Delete можно настроить удаление подписчиков, которые не заходили на сайт более 3 месяцев, через удобный интерфейс.

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

Для регулярного удаления неактивных пользователей можно использовать WP-Cron и написать собственный планировщик задач.

Пример кода из wplessons для автоматического удаления пользователей старше 6 месяцев без входа:

function wplessons_cron_delete_inactive_users() {
    $inactive_users = get_users([
        'meta_key' => 'wplessons_last_login',
        'meta_value' => date('Y-m-d H:i:s', strtotime('-6 months')),
        'meta_compare' => '&lt=',
        'fields' => 'ID'
    ]);
    wplessons_delete_users_by_ids($inactive_users);
}

if (!wp_next_scheduled('wplessons_delete_inactive_users_event')) {
    wp_schedule_event(time(), 'monthly', 'wplessons_delete_inactive_users_event');
}
add_action('wplessons_delete_inactive_users_event', 'wplessons_cron_delete_inactive_users');

Этот код создаёт ежемесячное задание, которое будет удалять пользователей, не заходивших более 6 месяцев.

Если у вас сайт с большим количеством пользователей, это существенно облегчит администрирование.

Рекомендации по безопасности и резервному копированию перед удалением пользователей

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

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

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

Как отключить автовыделение и автозагрузку изображений в WordPress
02.04.2026
Как автоматически удалить товар из заказов WooCommerce после отмены или возврата
18.04.2026
Как автоматизировать создание резервных копий в WordPress
27.11.2025
Как создать уникальный фильтр по пользовательским мета-полям в WordPress
18.02.2026
Как настроить OTP в формах WordPress для повышения безопасности
29.03.2026