Как удалить или заблокировать доступ по IP в WordPress

Управление доступом к сайту — важная задача для поддержания безопасности и стабильной работы проекта на WordPress. Часто возникает необходимость удалить или заблокировать доступ по IP-адресам: например, чтобы ограничить доступ спамерам, ботам или подозрительным посетителям. В этой статье разберём, как эффективно реализовать блокировку IP в WordPress с помощью кода и готовых плагинов, а также рассмотрим, как удалить IP из списка блокировок.

Почему стоит блокировать IP адреса в WordPress

Блокировка IP — это простое и эффективное средство борьбы с нежелательным трафиком. Вот основные причины:

  • Предотвращение спама в комментариях и формах;
  • Защита от DDoS-атак и ботов, которые нагружают сервер;
  • Ограничение доступа для вредоносных пользователей;
  • Снижение нагрузки на сайт и улучшение производительности.

Однако важно не забывать, что IP-адреса могут быть динамическими, и блокировка должна быть продуманной, чтобы не заблокировать легитимных пользователей.

Методы блокировки IP в WordPress

1. Блокировка через .htaccess

Самый быстрый способ ограничить доступ — добавить правила в файл .htaccess, который находится в корне сайта. Пример:

# Блокировка IP-адреса
<RequireAll>
    Require all granted
    Require not ip 123.45.67.89
</RequireAll>

Или для старых версий Apache:

Order Allow,Deny
Allow from all
Deny from 123.45.67.89

Этот метод эффективен и не нагружает WordPress, так как блокировка происходит на уровне сервера.

2. Использование функций WordPress для блокировки IP

Можно реализовать блокировку на уровне кода, добавив проверку IP в файл functions.php активной темы или в отдельный плагин:

function wpdir_block_ip() {
    $blocked_ips = array('123.45.67.89', '98.76.54.32');
    $user_ip = $_SERVER['REMOTE_ADDR'];
    if (in_array($user_ip, $blocked_ips)) {
        wp_die('Доступ с вашего IP заблокирован.');
        exit;
    }
}
add_action('init', 'wpdir_block_ip');

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

3. Блокировка через плагины

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

  • IP Blacklist — простой плагин для блокировки IP с возможностью добавлять и удалять адреса;
  • Wordfence Security — мощный комплексный плагин безопасности с функцией блокировки IP;
  • Clearfy Pro — оптимизационный плагин с возможностью блокировки IP и управления безопасностью.

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

Как удалить IP из списка блокировок

Если блокировка реализована через файл .htaccess, просто удалите или закомментируйте соответствующую строку с IP:

# Deny from 123.45.67.89

Если используется код в функции, уберите IP из массива $blocked_ips или настройте динамическое управление списком, например, через опции:

function wpdir_block_ip() {
    $blocked_ips = get_option('wpdir_blocked_ips', array());
    $user_ip = $_SERVER['REMOTE_ADDR'];
    if (in_array($user_ip, $blocked_ips)) {
        wp_die('Доступ с вашего IP заблокирован.');
        exit;
    }
}
add_action('init', 'wpdir_block_ip');

Через плагины удаление блокировки происходит в их интерфейсе — просто удалите IP из списка и сохраните изменения.

Пример создания простого плагина для управления блокировкой IP в WordPress

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

<?php
/**
 * Plugin Name: WPDir IP Blocker
 * Description: Простой плагин для блокировки доступа по IP.
 * Version: 1.0
 * Author: WPDir
 */

function wpdir_ip_blocker_init() {
    $blocked_ips = get_option('wpdir_blocked_ips', array());
    $user_ip = $_SERVER['REMOTE_ADDR'];
    if (in_array($user_ip, $blocked_ips)) {
        wp_die('Доступ с вашего IP заблокирован.');
        exit;
    }
}
add_action('init', 'wpdir_ip_blocker_init');

function wpdir_ip_blocker_menu() {
    add_options_page('WPDir IP Blocker', 'IP Блокировка', 'manage_options', 'wpdir-ip-blocker', 'wpdir_ip_blocker_settings');
}
add_action('admin_menu', 'wpdir_ip_blocker_menu');

function wpdir_ip_blocker_settings() {
    if (!current_user_can('manage_options')) {
        wp_die('Недостаточно прав.');
    }

    if (isset($_POST['wpdir_ip'])) {
        $ip = sanitize_text_field($_POST['wpdir_ip']);
        $blocked_ips = get_option('wpdir_blocked_ips', array());
        if (!in_array($ip, $blocked_ips)) {
            $blocked_ips[] = $ip;
            update_option('wpdir_blocked_ips', $blocked_ips);
            echo '<div class="updated">IP добавлен.</div>';
        }
    }

    if (isset($_POST['remove_ip'])) {
        $ip = sanitize_text_field($_POST['remove_ip']);
        $blocked_ips = get_option('wpdir_blocked_ips', array());
        $key = array_search($ip, $blocked_ips);
        if ($key !== false) {
            unset($blocked_ips[$key]);
            update_option('wpdir_blocked_ips', $blocked_ips);
            echo '<div class="updated">IP удалён.</div>';
        }
    }

    $blocked_ips = get_option('wpdir_blocked_ips', array());
    ?>
    <div class="wrap">
        <h1>Управление блокировкой IP</h1>
        <form method="post">
            <input type="text" name="wpdir_ip" placeholder="Введите IP для блокировки" required />
            <input type="submit" value="Добавить IP" class="button button-primary" />
        </form>
        <h2>Заблокированные IP</h2>
        <ul>
        <?php foreach ($blocked_ips as $ip): ?>
            <li><?php echo esc_html($ip); ?> 
                <form method="post" style="display:inline;">
                    <input type="hidden" name="remove_ip" value="<?php echo esc_attr($ip); ?>" />
                    <input type="submit" value="Удалить" class="button button-link-delete" />
                </form>
            </li>
        <?php endforeach; ?>
        </ul>
    </div>
    <?php
}

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

Рекомендации по эффективной блокировке IP

  • Всегда делайте резервную копию файла .htaccess перед изменениями;
  • Используйте плагины для удобства и расширенного контроля, особенно если не уверены в работе с кодом;
  • Регулярно проверяйте списки заблокированных IP — чтобы не ограничивать доступ легитимным пользователям;
  • Подумайте о комплексных решениях безопасности, например, Clearfy Pro, которые объединяют блокировку IP с другими защитными функциями.
Как автоматизировать сборку данных с помощью AJAX в WordPress
04.04.2026
WooCommerce: автоматическое удаление заказов по неактивности и статусу
16.05.2026
Авто удаление записей и комментариев в WordPress через 7 дней
06.01.2026
WooCommerce: как автоматически удалять товары при нулевом остатке
23.05.2026
Как избежать проблем с кэширующими плагинами в WordPress
22.02.2026