11 Июл

Вредные плагины для WordPress

Как избежать засорения базы данных и перегрузки сервера

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

Крупные плагины, засоряющие базу данных

WooCommerce и его расширения

WooCommerce – самый популярный плагин для создания интернет-магазинов, но он создает огромное количество записей в базе данных:

  • Таблицы: Добавляет более 20 новых таблиц в базу данных
  • Записи: Каждый товар создает множество мета-записей (цена, вес, размеры, галерея)
  • Сессии: Хранит данные корзины для каждого посетителя
  • Логи: Ведет подробные логи всех действий

Проблемы:

  • База данных может увеличиться в 5-10 раз
  • Медленные запросы при большом количестве товаров
  • Накопление «мусорных» данных от сессий

Для создания интернет-магазина существуют более специализированные и простые решения — OpenCart, PrestaShop Webasyst Shop-Script…

Yoast SEO и All in One SEO Pack

Несмотря на популярность, Yoast SEO и All in One SEO Pack создают значительную нагрузку:

  • Добавляют по 10-15 мета-записей к каждому посту
  • Создают индексные таблицы для внутренних ссылок
  • Хранят данные о читаемости и SEO-анализе
  • Генерируют множество записей автозагрузки

Альтернативы: RankMath, SEOPress (более легковесные решения)

Elementor Page Builder

Elementor – мощный конструктор страниц, но очень ресурсозатратный:

  • Сохраняет CSS каждой страницы в базе данных
  • Создает множество мета-записей для каждого элемента
  • Хранит историю изменений (ревизии)
  • Добавляет тяжелые скрипты и стили

Contact Form 7 с дополнениями

Базовый Contact Form 7 относительно легкий, но с дополнениями становится проблемным:

  • Плагины для сохранения заявок в БД
  • Расширения для интеграций
  • Антиспам дополнения

MailPoet — емэйл маркетинг, рассылка писем

  • Создаёт очень много записей в базе данных
  • Очень много записей с автозагрузкой
  • Нагрузка на сервер

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

1. Плагины электронной коммерции

Не устанавливайте без необходимости:

  • WooCommerce
  • Easy Digital Downloads
  • WP eCommerce

Почему вредно для блога:

  • Создают десятки ненужных таблиц
  • Добавляют сложную логику обработки платежей
  • Загружают тяжелые скрипты на каждой странице

2. Тяжелые конструкторы страниц

Избегайте для простых блогов:

  • Elementor Pro
  • Divi Builder
  • Visual Composer

Проблемы:

  • Генерируют избыточный HTML-код
  • Создают зависимость от плагина
  • Замедляют загрузку страниц

3. Комплексные SEO-решения

Для простого блога избыточны:

  • Yoast SEO Premium
  • SEMrush SEO Writing Assistant
  • All in One SEO Pack

Лучше использовать: Простые решения типа RankMath или встроенные возможности темы.

4. Плагины социальных сетей с виджетами

Проблемные плагины:

  • Social Media Share Buttons
  • Instagram Feed
  • Facebook Like Box

Проблемы:

  • Загружают внешние скрипты
  • Создают множество HTTP-запросов
  • Замедляют загрузку страниц

Плагины, создающие нагрузку на сервер

1. Плагины резервного копирования

Тяжелые решения:

  • UpdraftPlus (при частом копировании)
  • BackWPup
  • Duplicator

Проблемы:

  • Создают высокую нагрузку на CPU
  • Потребляют много дискового пространства
  • Могут блокировать сайт во время работы

Рекомендация: Используйте решения на уровне хостинга или настройте копирование в ночное время.

2. Плагины кэширования (при неправильной настройке)

Потенциально проблемные:

  • W3 Total Cache (сложная настройка)
  • WP Super Cache (устаревший)
  • WP Rocket (при избыточных настройках)

Проблемы при неправильной настройке:

  • Конфликты с другими плагинами
  • Избыточное потребление памяти
  • Создание множества временных файлов

3. Плагины мониторинга и аналитики

Ресурсозатратные:

  • Jetpack (полная версия включает множество функций, таких как статистика, защита от спама и социальные сети, что может привести к большому количеству записей в базе данных и увеличению нагрузки на сервер.)
  • MonsterInsights
  • Wordfence Security

Проблемы:

  • Постоянные запросы к внешним API
  • Сбор и обработка статистики в реальном времени
  • Создание больших лог-файлов

4. Плагины оптимизации изображений

Тяжелые для сервера:

  • Smush Pro
  • ShortPixel
  • Optimole

Проблемы:

  • Высокое потребление CPU при обработке
  • Создание множественных копий изображений
  • Блокировка других процессов

Способы отключения автозагрузки параметров

Далее информация для опытных пользователей. Если вы не разбираетесь в SQL, то для отключения автозагружаемых опции воспользуйтесь плагином Advanced Database Cleaner.

Перед внесением изменений, сделайте резервную копию!

1. Анализ автозагружаемых опций через MySQL

Проверьте, какие данные автозагружаются:

SELECT option_name, LENGTH(option_value) as option_value_length 
FROM wp_options 
WHERE autoload = 'yes' 
ORDER BY option_value_length DESC 
LIMIT 20;

2. Отключение автозагрузки через SQL

Для отключения автозагрузки конкретной опции:

UPDATE wp_options 
SET autoload = 'no' 
WHERE option_name = 'название_опции';

3. Использование плагинов для оптимизации

Рекомендуемые плагины:

  • Query Monitor (для анализа)
  • WP-Optimize (для очистки)
  • Advanced Database Cleaner (для отключения автозагружаемых опций)

4. Программное отключение автозагрузки

В файле functions.php темы:

// Отключение автозагрузки для конкретных опций
add_action('init', function() {
    $heavy_options = [
        'elementor_css_print_method',
        'yoast_migrations_free',
        'woocommerce_meta_box_errors'
    ];

    foreach($heavy_options as $option) {
        wp_cache_delete($option, 'options');
        update_option($option, get_option($option), 'no');
    }
});

Как избежать засорения базы данных

1. Регулярная очистка базы данных

Что нужно очищать:

  • Ревизии постов (оставляйте максимум 3-5)
  • Спам-комментарии и корзину комментариев
  • Неиспользуемые мета-данные
  • Транзиенты (временные данные)
  • Логи плагинов

SQL-запросы для очистки:

-- Удаление старых ревизий (оставляем последние 3)
DELETE FROM wp_posts 
WHERE post_type = 'revision' 
AND ID NOT IN (
    SELECT * FROM (
        SELECT ID FROM wp_posts 
        WHERE post_type = 'revision' 
        ORDER BY post_date DESC 
        LIMIT 3
    ) AS temp
);

-- Очистка транзиентов
DELETE FROM wp_options 
WHERE option_name LIKE '_transient_%' 
AND option_name NOT LIKE '_transient_timeout_%';

-- Удаление осиротевших мета-данных
DELETE pm FROM wp_postmeta pm
LEFT JOIN wp_posts p ON p.ID = pm.post_id
WHERE p.ID IS NULL;

2. Ограничение ревизий

В wp-config.php добавьте:

// Ограничение количества ревизий
define('WP_POST_REVISIONS', 3);

// Или полное отключение
define('WP_POST_REVISIONS', false);

3. Настройка автоматической очистки

Создайте задачу cron для регулярной очистки:

// В functions.php
add_action('wp', 'setup_database_cleanup');

function setup_database_cleanup() {
    if (!wp_next_scheduled('daily_database_cleanup')) {
        wp_schedule_event(time(), 'daily', 'daily_database_cleanup');
    }
}

add_action('daily_database_cleanup', 'perform_database_cleanup');

function perform_database_cleanup() {
    global $wpdb;

    // Удаление старых транзиентов
    $wpdb->query("
        DELETE FROM {$wpdb->options} 
        WHERE option_name LIKE '_transient_timeout_%' 
        AND option_value < UNIX_TIMESTAMP()
    ");

    // Очистка спама
    $wpdb->query("
        DELETE FROM {$wpdb->comments} 
        WHERE comment_approved = 'spam' 
        AND comment_date < DATE_SUB(NOW(), INTERVAL 30 DAY)
    ");
}

4. Мониторинг размера базы данных

Регулярно проверяйте размер таблиц:

SELECT 
    table_name AS "Table",
    ROUND(((data_length + index_length) / 1024 / 1024), 2) AS "Size (MB)"
FROM information_schema.TABLES 
WHERE table_schema = 'your_database_name'
ORDER BY (data_length + index_length) DESC;

Рекомендации по выбору плагинов

1. Принципы выбора

  • Необходимость: Устанавливайте только действительно нужные плагины
  • Активность разработки: Выбирайте регулярно обновляемые плагины
  • Репутация: Изучайте отзывы и рейтинги
  • Совместимость: Проверяйте совместимость с вашей версией WordPress

2. Альтернативы тяжелым плагинам

Тяжелый плагин Легкая альтернатива
Yoast SEO RankMath, SEOPress
Elementor Gutenberg + блоки
Contact Form 7 WPForms Lite
Jetpack Отдельные специализированные плагины
WooCommerce Easy Digital Downloads (для цифровых товаров)

3. Оптимизация существующих плагинов

  • Отключайте неиспользуемые функции
  • Настройте кэширование
  • Ограничьте частоту обновлений
  • Используйте CDN для статических файлов

Заключение

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

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

Поделиться записью

Добавить комментарий