Конфликт плагинов WordPress: как найти причину и исправить сайт

Автор:vkuzyomko

Конфликт плагинов WordPress: как найти причину и исправить сайт

Краткий ответ: конфликт плагинов WordPress возникает, когда два плагина, тема, кеш, версия PHP или кастомный код мешают друг другу. Чтобы найти причину, сделайте backup, включите debug.log, отключите плагины безопасным способом, проверьте сайт на стандартной теме, затем включайте плагины по одному и фиксируйте, после какого действия ошибка возвращается.

Причина

Конфликт плагинов WordPress — это ситуация, когда один плагин ломает работу другого плагина, темы, админки, WooCommerce, формы, редактора, кеша, REST API или фронтенда сайта.

Проблема не всегда выглядит как явная ошибка. Иногда сайт открывается, но не работает кнопка, форма не отправляется, корзина WooCommerce зависает, админка становится медленной, стили ломаются, появляется ошибка 500, белый экран или критическая ошибка WordPress.

Если после обновления сайт сразу сломался, полезно дополнительно проверить инструкцию Сайт WordPress сломался после обновления: что делать. Там важен порядок действий: не обновлять всё подряд, а найти точную причину.

Почему плагины конфликтуют

  • два плагина подключают разные версии одной JavaScript-библиотеки;
  • плагин кеша объединяет или откладывает JS, который должен работать сразу;
  • два SEO-плагина управляют sitemap, canonical или meta-тегами;
  • security-плагин блокирует admin-ajax.php, REST API или wp-login.php;
  • плагин использует устаревший PHP-код;
  • плагин несовместим с текущей версией WordPress;
  • плагин несовместим с текущей версией PHP;
  • плагин WooCommerce конфликтует с оплатой, доставкой или кешем;
  • тема переопределяет шаблоны плагина;
  • кастомный код в functions.php вмешивается в хуки плагина;
  • один плагин меняет права пользователей, а второй ожидает стандартные роли;
  • плагин грузит свои скрипты на всех страницах админки и ломает чужие экраны.

Диагностика

Главная задача — не просто отключить проблемный плагин, а понять, какая связка вызывает сбой. Иногда плагин сам по себе работает нормально, но ломается только вместе с конкретной темой, кешем, PHP-версией или другим плагином.

Симптом Возможная причина Где проверять
Белый экран сайта PHP Fatal error в плагине или теме debug.log, error_log, последние обновления
Критическая ошибка WordPress сломанный плагин, несовместимость PHP, ошибка класса или функции debug.log, режим восстановления, FTP
Не работает админка плагин безопасности, кеш, admin hook, JS-ошибка Console, Network, /wp-admin/, debug.log
Не отправляется форма конфликт Contact Form 7, SMTP, reCAPTCHA, кеша или JS Console, Network, SMTP-лог, форма
Ломается WooCommerce кеш корзины, конфликт оплаты, доставки, шаблонов или AJAX WooCommerce logs, checkout, cart fragments
Сайт стал медленным тяжёлый плагин, конфликт кеша, cron, запросы к базе Query Monitor, логи, cron, база
Ошибка только на одной странице шорткод, блок, виджет, page builder или шаблон контент страницы, шаблон, JS, PHP-лог

Что проверить первым

  • что именно перестало работать;
  • после какого действия появилась ошибка;
  • какие плагины обновлялись последними;
  • менялась ли версия PHP;
  • менялась ли тема;
  • добавлялся ли код в functions.php;
  • есть ли ошибки в debug.log;
  • есть ли ошибки в Console браузера;
  • работает ли сайт без кеша;
  • повторяется ли ошибка в режиме инкогнито.

Решение

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

1. Сделайте резервную копию

Перед отключением плагинов сохраните файлы и базу данных. Это особенно важно для WooCommerce, LMS, CRM, сайтов с заявками, оплатами, личными кабинетами и подписками.

Минимально сохраните:

  • базу данных;
  • папку wp-content;
  • wp-config.php;
  • .htaccess;
  • список активных плагинов;
  • активную тему и дочернюю тему;
  • логи ошибок.

2. Включите debug.log

Если конфликт вызывает PHP-ошибку, debug.log часто сразу показывает файл и строку. Это быстрее, чем угадывать по названию плагина.

Например, ошибка может выглядеть так:

PHP Fatal error: Uncaught Error: Call to undefined function plugin_function()
in /wp-content/plugins/example-plugin/example-plugin.php on line 125

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

3. Отключите кеш и оптимизацию

Перед проверкой конфликтов временно отключите кеш, минификацию, объединение JavaScript, defer, delay JS и CDN-кеш. Иначе можно искать проблему в плагинах, хотя сайт продолжает отдавать старый кешированный код.

Особенно часто кеш ломает:

  • формы;
  • корзину WooCommerce;
  • личный кабинет;
  • страницы оплаты;
  • фильтры товаров;
  • AJAX-запросы;
  • редактор Gutenberg;
  • админские страницы плагинов.

4. Проверьте конфликт через Health Check

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

Логика проверки:

  • включить troubleshooting mode;
  • оставить активной стандартную тему;
  • включить только проверяемый плагин;
  • проверить проблему;
  • включать остальные плагины по одному;
  • после каждого включения снова проверять проблему;
  • зафиксировать связку, после которой ошибка вернулась.

5. Если админка недоступна — отключите плагины через FTP

Если сайт показывает критическую ошибку или белый экран, зайдите через FTP или файловый менеджер хостинга.

Путь:

/wp-content/plugins/

Переименуйте папку проблемного плагина или всю папку plugins.

Например:

plugins
plugins-off

После этого WordPress временно отключит обычные плагины. Если сайт заработал, верните папке имя plugins и отключайте плагины по одному.

6. Проверьте тему

Иногда кажется, что конфликтуют плагины, но реальная причина в теме. Тема может переопределять шаблоны WooCommerce, подключать старый jQuery, менять хуки, стили и поведение редактора.

Проверьте сайт на стандартной теме WordPress. Если проблема исчезла, конфликт находится между темой и одним из плагинов.

7. Включайте плагины по одному

Не включайте все плагины сразу. Так вы потеряете точку, где ошибка вернулась.

Правильный порядок:

  • включили один плагин;
  • очистили кеш;
  • проверили проблемную страницу;
  • проверили Console и Network;
  • проверили debug.log;
  • записали результат;
  • перешли к следующему плагину.

8. Проверяйте связки, а не только один плагин

Частая ошибка — считать виновником последний включённый плагин. Иногда проблема появляется только в связке: например, форма работает, SMTP работает, но вместе с reCAPTCHA и кешем форма перестаёт отправляться.

Фиксируйте такие связки:

  • плагин формы + кеш;
  • WooCommerce + кеш + оплата;
  • SEO-плагин + плагин sitemap;
  • security-плагин + REST API;
  • page builder + тема;
  • мультиязычность + кеш;
  • LMS + роли пользователей;
  • SMTP + Contact Form 7.

Код

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

Включить debug.log в wp-config.php

Куда вставлять: wp-config.php, перед строкой /* That’s all, stop editing! Happy publishing. */.

define('WP_DEBUG', true);
define('WP_DEBUG_LOG', true);
define('WP_DEBUG_DISPLAY', false);
@ini_set('display_errors', 0);

После повторения ошибки проверьте файл:

/wp-content/debug.log

Отключить все плагины через WP-CLI

Куда запускать: SSH в корневой папке сайта.

wp plugin deactivate --all

Включить один плагин через WP-CLI

Замените plugin-folder на папку нужного плагина.

wp plugin activate plugin-folder

Показать список активных плагинов

wp plugin list --status=active

Проверить версию PHP и окружение WP-CLI

wp --info

Проверить ошибки синтаксиса в PHP-файле

Куда запускать: SSH. Укажите файл, который фигурирует в debug.log.

php -l wp-content/plugins/plugin-folder/plugin-file.php

Временно отключить плагины через базу данных

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

В phpMyAdmin найдите таблицу wp_options и параметр active_plugins. Можно временно очистить значение, чтобы отключить обычные плагины.

option_name: active_plugins
option_value: a:0:{}

Если у сайта другой префикс таблиц, вместо wp_options будет свой вариант, например abc_options.

Логировать ошибки отправки почты, если конфликт связан с формами

Куда вставлять: functions.php дочерней темы или отдельный мини-плагин.

add_action('wp_mail_failed', function ($wp_error) {
    if (!is_wp_error($wp_error)) {
        return;
    }

    error_log('WP Mail Failed: ' . $wp_error->get_error_message());

    $error_data = $wp_error->get_error_data();

    if (!empty($error_data)) {
        error_log('WP Mail Failed Data: ' . print_r($error_data, true));
    }
});

Результат

После правильной диагностики вы должны получить не просто “сайт заработал”, а точное понимание, какой плагин или какая связка вызывает проблему.

Хороший результат выглядит так:

  • известен конкретный плагин или связка плагинов;
  • ошибка воспроизводится при включении проблемного элемента;
  • debug.log не показывает новых критических ошибок;
  • админка открывается стабильно;
  • формы, оплата, корзина и личный кабинет работают;
  • кеш не ломает динамические страницы;
  • плагин заменён, обновлён, откатан или настроен правильно;
  • обновления можно продолжать безопасно.

Если конфликт уже привёл к критической ошибке, дополнительно используйте инструкцию Критическая ошибка WordPress: что делать и как восстановить сайт.

Дополнительные способы

Проверка через staging-копию

Лучший вариант для коммерческого сайта — проверять конфликт на staging-копии. Это копия сайта, где можно отключать плагины, менять тему, обновлять PHP и тестировать ошибки без риска для посетителей.

На staging удобно проверять:

  • обновления плагинов;
  • обновления темы;
  • новую версию PHP;
  • конфликты WooCommerce;
  • формы и SMTP;
  • кеш и оптимизацию;
  • новые сниппеты кода.

Откат плагина

Если конфликт появился после обновления конкретного плагина, временный откат может быстро вернуть сайт в рабочее состояние. Но откат — это не финальное решение. Нужно проверить совместимость, журнал изменений и причину конфликта.

Замена плагина

Если плагин давно не обновлялся, конфликтует с PHP, ломает админку или создаёт тяжёлые запросы, иногда быстрее заменить его на другой инструмент, чем постоянно чинить последствия.

Проверка JavaScript-конфликтов

Если визуально сайт открывается, но не работают кнопки, модальные окна, формы, вкладки, фильтры или корзина, откройте DevTools.

  • Console покажет JavaScript-ошибки.
  • Network покажет 403, 404, 500, admin-ajax.php и REST API.
  • Sources поможет понять, какой файл JS вызывает ошибку.

Проверка WooCommerce

WooCommerce особенно чувствителен к конфликтам. Нельзя кешировать корзину, checkout, личный кабинет и некоторые AJAX-запросы как обычные страницы.

Если проблема связана с магазином, проверьте также как ускорить WooCommerce без поломки корзины и оформления заказа.

Проверка форм

Если конфликт связан с отправкой писем или формами, проверьте SMTP, From Email, Reply-To, reCAPTCHA, кеш и REST API. Для Contact Form 7 есть отдельная инструкция: Contact Form 7 не отправляет письма: причины и как исправить.

Частые ошибки

Отключать плагины на рабочем сайте без backup

Так можно сломать оплату, формы, личный кабинет, мультиязычность, SEO-разметку или доступ пользователей. Сначала backup, потом диагностика.

Включать все плагины сразу

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

Не очищать кеш после теста

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

Игнорировать тему

Не все проблемы создают плагины. Тема может конфликтовать с WooCommerce, page builder, Gutenberg, полями ACF, JS-библиотеками и шаблонами.

Не проверять версию PHP

Старые плагины могут ломаться на новых версиях PHP, а новые плагины могут требовать более свежую версию PHP. Проверяйте совместимость.

Оставлять ненужные плагины

Каждый лишний плагин — это дополнительный код, запросы, хуки, обновления и потенциальный конфликт. Удаляйте то, что не используется.

Считать, что если ошибка исчезла, проблема решена

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

Диагностика проблем

Конфликт после обновления плагина

  • Сделайте backup текущего состояния.
  • Включите debug.log.
  • Отключите обновлённый плагин.
  • Проверьте сайт.
  • Если сайт заработал, проверьте changelog плагина.
  • Проверьте совместимость с WordPress, PHP и темой.
  • Протестируйте обновление на staging.

Конфликт между плагином и темой

  • Временно включите стандартную тему WordPress.
  • Проверьте проблему.
  • Если ошибка исчезла, проверьте functions.php темы.
  • Проверьте переопределённые шаблоны WooCommerce.
  • Проверьте подключение JS и CSS в теме.
  • Проверьте кастомные хуки и сниппеты.

Конфликт плагина кеша

  • Очистите кеш.
  • Отключите минификацию JS и CSS.
  • Отключите defer и delay JS.
  • Исключите страницы корзины, checkout, формы и личный кабинет.
  • Проверьте admin-ajax.php и REST API.
  • Проверьте сайт в режиме инкогнито.

Конфликт security-плагина

  • Проверьте, не блокируется ли wp-login.php.
  • Проверьте REST API.
  • Проверьте admin-ajax.php.
  • Проверьте логи блокировок.
  • Проверьте WAF и правила firewall.
  • Временно отключите отдельные модули защиты, а не весь плагин сразу.

Конфликт в админке WordPress

  • Откройте Console в браузере.
  • Проверьте ошибки JavaScript.
  • Проверьте Network-запросы.
  • Отключите плагины, которые добавляют админские панели.
  • Проверьте debug.log.
  • Проверьте режим восстановления WordPress.

Конфликт с WooCommerce

  • Проверьте корзину.
  • Проверьте checkout.
  • Проверьте оплату тестовым заказом.
  • Проверьте WooCommerce → Status → Logs.
  • Отключите кеш для динамических страниц.
  • Проверьте плагины доставки и оплаты.
  • Проверьте переопределённые шаблоны в теме.

Краткие AI-friendly ответы

Что такое конфликт плагинов WordPress?

Это ситуация, когда один плагин мешает работе другого плагина, темы, WordPress, WooCommerce, формы, кеша, REST API или админки.

Как найти конфликт плагинов WordPress?

Сделайте backup, включите debug.log, отключите плагины, включите стандартную тему, затем активируйте плагины по одному и проверяйте, после какого плагина ошибка возвращается.

Как отключить плагины, если админка не открывается?

Через FTP переименуйте папку /wp-content/plugins/ в plugins-off или отключите плагины через WP-CLI командой wp plugin deactivate –all.

Почему конфликт появляется после обновления?

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

FAQ

Можно ли искать конфликт плагинов на рабочем сайте?

Можно, но аккуратно. Лучше использовать staging-копию или troubleshooting mode, чтобы посетители не видели отключение плагинов. На коммерческом сайте обязательно сделайте backup.

Как понять, что виноват именно плагин?

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

Что делать, если конфликтуют два нужных плагина?

Проверьте настройки, обновления, документацию, совместимость PHP и исключения кеша. Если конфликт не решается, один из плагинов лучше заменить или доработать кодом.

Может ли конфликт плагинов сломать админку?

Да. Плагин может вызвать PHP Fatal error, JS-ошибку, блокировку REST API, admin-ajax.php или wp-login.php. В таком случае используйте FTP, WP-CLI и debug.log.

Почему после отключения плагина сайт выглядит сломанным?

Плагин мог отвечать за дизайн, шорткоды, формы, блоки, WooCommerce-функции или page builder. Отключение помогает диагностировать конфликт, но потом нужно вернуть или заменить функционал.

Нужно ли удалять конфликтующий плагин?

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

Может ли конфликт быть из-за PHP?

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

Как избежать конфликтов в будущем?

Используйте staging, обновляйте плагины по одному, удаляйте лишнее, не ставьте несколько плагинов с одинаковыми функциями, проверяйте совместимость с PHP и делайте регулярные backup.

Нужна помощь?

Если после обновления или установки плагина сайт сломался, не работает админка, формы, WooCommerce или появилась критическая ошибка, лучше сначала провести диагностику конфликта, а не отключать всё наугад.

Вывод

Конфликт плагинов WordPress нужно искать не наугад, а по шагам: backup, debug.log, отключение кеша, проверка темы, отключение плагинов, включение по одному, анализ ошибок и фиксация связки, после которой проблема возвращается. Так можно не просто временно “оживить” сайт, а найти настоящую причину и безопасно исправить её.

Об авторе

vkuzyomko administrator