Вредные плагины для 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-сайта и избежать проблем, связанных с засорением базы данных и перегрузкой сервера.
