В Hueman и похожих классических темах jQuery Migrate часто остается включенным ради совместимости со старыми скриптами. Проблема в том, что на живом сайте это может давать лишние предупреждения в консоли и добавлять ненужный слой совместимости, который мешает нормально оценивать состояние фронтенда. Если у вас уже есть подозрение, что сайт тянет старые скрипты, сначала нужно понять, кто именно зависит от Migrate, а уже потом отключать его.
Когда отключение jQuery Migrate вообще имеет смысл
Отключать его стоит не «для ускорения ради ускорения», а когда вы видите один из типичных сценариев:
- в консоли браузера появляются предупреждения вида
jQuery.fn.live is not a function,.size() is deprecatedили похожие сообщения; - на сайте есть старые плагины или кастомный JS, написанный под старые версии jQuery;
- нужно убрать предупреждения, чтобы быстрее найти реальные ошибки фронтенда;
- вы уже проверили тему и плагины на совместимость с актуальным jQuery.
Если сайт давно не обновлялся, отключение Migrate без проверки может сломать меню, слайдеры, вкладки, AJAX-формы и любые элементы, завязанные на старый код. Поэтому здесь важна не скорость, а диагностика.
Диагностика проблемы: что проверить до правки кода
Сначала откройте сайт в браузере и посмотрите консоль разработчика. Если там есть предупреждения, связанные с устаревшими методами jQuery, это уже сигнал. Но одного сообщения недостаточно: нужно понять, какой файл его вызывает.
Проверка в браузере
Откройте DevTools и выполните базовую проверку:
- вкладка Console — есть ли ошибки после полной загрузки страницы;
- вкладка Network — загружается ли
jquery-migrate.min.js; - вкладка Sources — какие скрипты подключены на странице.
Если после отключения Migrate что-то ломается, обычно это видно сразу: перестают работать клики, выпадающие меню, карусели или AJAX-элементы.
Проверка на стороне WordPress
Полезно временно включить режим отладки в wp-config.php, если вы работаете на staging-копии:
define( 'WP_DEBUG', true );
define( 'WP_DEBUG_LOG', true );
define( 'WP_DEBUG_DISPLAY', false );Так вы не будете показывать ошибки посетителям, но сможете посмотреть лог в wp-content/debug.log. Если после отключения Migrate в логах появляются ошибки JavaScript не увидите, но PHP-ошибки и предупреждения по подключению скриптов отловить можно.
Пошаговое решение: как отключить jQuery Migrate в Hueman
Самый безопасный путь — не править ядро и не лезть в файлы темы, а добавить небольшой код в дочернюю тему или в собственный мини-плагин. Так изменения не потеряются после обновления Hueman.
Вариант через wp_default_scripts
Этот способ убирает Migrate из стандартной связки jQuery на фронтенде. Подходит, если вы уверены, что старые зависимости уже не нужны.
add_action( 'wp_default_scripts', function( $scripts ) {
if ( is_admin() ) {
return;
}
if ( isset( $scripts->registered['jquery'] ) ) {
$jquery = $scripts->registered['jquery'];
if ( ! empty( $jquery->deps ) ) {
$jquery->deps = array_diff( $jquery->deps, array( 'jquery-migrate' ) );
}
}
} );Что делает этот код: он не удаляет jQuery полностью, а только убирает зависимость jquery-migrate у стандартного скрипта jquery.
Если нужен более точечный контроль
Иногда лучше сначала проверить, где именно Migrate подключается, и только потом отключать его. Для этого можно временно вывести список зависимостей в лог:
add_action( 'wp_default_scripts', function( $scripts ) {
if ( is_admin() ) {
return;
}
if ( isset( $scripts->registered['jquery'] ) ) {
error_log( 'jQuery deps: ' . implode( ', ', $scripts->registered['jquery']->deps ) );
}
} );После этого откройте страницу и посмотрите debug.log. Если среди зависимостей есть jquery-migrate, вы увидите это явно. Такой подход удобен на staging, когда нужно понять, не тянет ли тема или плагин старую связку.
Сравнение подходов
| Подход | Когда использовать | Плюсы | Минусы |
|---|---|---|---|
| Плагин для отключения Migrate | Когда нужен быстрый тест без кода | Просто включить и проверить | Лишняя зависимость, не всегда прозрачно |
Код через wp_default_scripts | Когда нужен контролируемый и повторяемый результат | Без стороннего плагина, легко откатить | Нужна базовая проверка совместимости |
| Ничего не менять | Если сайт на старых скриптах и есть риск поломки | Безопасно для совместимости | Остаются предупреждения и лишняя нагрузка |
Проверка результата после внедрения
После добавления кода не ограничивайтесь визуальной проверкой главной страницы. Нужно пройтись по тем местам, где обычно всплывают проблемы:
- главная страница и шаблон записи;
- меню и мобильное меню;
- формы поиска и подписки;
- слайдеры, табы, аккордеоны;
- страницы WooCommerce: каталог, карточка товара, корзина, оформление заказа.
Что именно проверить:
- Откройте консоль браузера и убедитесь, что старые предупреждения исчезли.
- Проверьте, что
jquery-migrate.min.jsбольше не загружается в Network. - Пройдитесь по интерактивным элементам сайта и убедитесь, что они работают как раньше.
- Если есть кэш-плагин или серверный кэш, очистите его и повторите тест.
Если после отключения Migrate что-то перестало работать, не пытайтесь «лечить» это повторным включением без разбора. Сначала найдите конкретный скрипт, который использует устаревший метод.
Частые ошибки и как их исправить
Отключили Migrate в теме, но забыли про плагин
Иногда проблема не в Hueman, а в плагине, который подключает старый JS. В этом случае отключение Migrate только проявит ошибку, а не создаст ее. Решение — обновить плагин, заменить его или переписать проблемный скрипт.
Проверяли только главную страницу
На главной все может быть нормально, а на странице товара или в корзине WooCommerce — уже нет. Проверяйте все шаблоны, где есть динамика и AJAX.
Правили файл темы напрямую
Это типичная ошибка. После обновления Hueman изменения пропадут. Используйте дочернюю тему или мини-плагин.
Отключили Migrate на продакшене без теста
Так делать не стоит. Сначала staging, потом проверка, потом перенос на боевой сайт. Если staging нет, хотя бы сделайте резервную копию и подготовьте быстрый откат.
Практические советы по безопасности и производительности
Отключение jQuery Migrate само по себе не решает все проблемы скорости. Но это хороший повод проверить фронтенд на лишние зависимости. Если у вас в Hueman уже есть старые скрипты, имеет смысл:
- обновить плагины, которые используют устаревший jQuery;
- убрать неиспользуемые скрипты и стили на страницах, где они не нужны;
- не подключать собственный JS через
wp_headвручную, если можно использоватьwp_enqueue_script; - проверить, не дублируется ли jQuery через тему и плагин одновременно.
Если вам нужно системно чистить сайт от лишнего технического мусора, можно посмотреть в сторону инструментов вроде Clearfy Pro: он помогает убирать часть дублей и упрощает техническую настройку WordPress. Но отключение Migrate все равно лучше делать и проверять отдельно, а не «в комплекте» с кучей других правок.
Когда лучше не отключать jQuery Migrate
Если сайт поддерживает старый кастомный код, а у вас нет времени на аудит, отключение Migrate может создать больше проблем, чем пользы. В таких случаях разумнее оставить совместимость включенной и постепенно обновлять скрипты по одному. Это особенно актуально для сайтов, где несколько лет подряд добавляли код вручную без единого стандарта.
Практический ориентир простой: если после теста на staging у вас не осталось предупреждений и не сломались интерактивные элементы, можно отключать Migrate на продакшене. Если же ошибки появляются сразу после отключения, сначала чините источник, а не сам механизм совместимости.