wpurok.ru wordpress WPUrok

Решение проблемы замедления отображения библиотеки jQuery в WordPress

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

Почему замедляется загрузка jQuery в WordPress: основные причины

WordPress по умолчанию включает библиотеку jQuery, которая загружается из своей папки и зачастую в не минифицированном виде, либо в неподходящем месте шаблона. Это приводит к следующим проблемам:

  • Блокировка рендеринга страницы: если jQuery загружается в <head> без атрибута defer или async, браузер ждет загрузки скрипта, прежде чем продолжить отображение;
  • Конфликты с другими плагинами: некоторые плагины подключают собственные версии jQuery, что вызывает дублирование и замедляет загрузку;
  • Отсутствие отложенной загрузки: jQuery загружается сразу, хотя может понадобиться только на определенных страницах или для определенных функций;
  • Некорректное использование сторонних CDN: если CDN недоступен или медленен, это тоже тормозит загрузку.

Все эти факторы суммируются и приводят к заметному ухудшению скорости и пользовательского опыта.

Как выявить проблему с jQuery и проверить ее влияние на сайт

Для начала важно убедиться, что именно jQuery является узким местом. Для этого:

  • Используйте инструменты разработчика в браузере (Chrome DevTools, Firefox Developer Tools) и откройте вкладку Network. Отфильтруйте по скриптам и посмотрите время загрузки jquery.js.
  • Проверьте, где именно в HTML выводится скрипт: в <head> или перед </body>. Если в <head>, это может блокировать рендеринг.
  • Протестируйте сайт с отключенными плагинами по одному, чтобы выявить, какой из них может подключать дополнительную или устаревшую версию jQuery.
  • Используйте PageSpeed Insights или GTmetrix для анализа влияния jQuery на скорость загрузки.

Практические способы оптимизации загрузки jQuery в WordPress

Далее рассмотрим несколько проверенных способов, которые помогут ускорить загрузку jQuery и снизить ее негативное влияние.

1. Перенос загрузки jQuery в подвал сайта с атрибутом defer

По умолчанию WordPress подключает jQuery в wp_head, что блокирует рендеринг. Перенос скрипта в конец страницы и добавление атрибута defer позволит браузеру сначала отобразить контент, а потом загрузить скрипт.

Для этого можно добавить следующий код в файл functions.php вашей темы:

function wpurok_defer_jquery_loading() {
    if (!is_admin()) {
        wp_deregister_script('jquery');
        wp_register_script('jquery', includes_url('/js/jquery/jquery.js'), array(), null, true);
        add_filter('script_loader_tag', 'wpurok_add_defer_attribute', 10, 3);
    }
}
add_action('wp_enqueue_scripts', 'wpurok_defer_jquery_loading');

function wpurok_add_defer_attribute($tag, $handle, $src) {
    if ('jquery' !== $handle) {
        return $tag;
    }
    return '<script src="' . $src . '" defer></script>';
}

Этот код отменяет стандартное подключение jQuery в head, регистрирует его с загрузкой в подвал (true в wp_register_script) и добавляет defer.

2. Использование CDN с локальным запасным вариантом

Подключение jQuery через CDN Google или jQuery CDN ускоряет загрузку за счет кеша в браузерах пользователей, но есть риск недоступности. Чтобы этого избежать, можно настроить локальную загрузку при падении CDN.

Вот пример функции для functions.php:

function wpurok_jquery_cdn_fallback() {
    if (!is_admin()) {
        wp_deregister_script('jquery');
        wp_register_script('jquery', 'https://ajax.googleapis.com/ajax/libs/jquery/3.6.0/jquery.min.js', array(), null, true);
        wp_enqueue_script('jquery');
        add_action('wp_footer', function() {
            echo "\n<script>window.jQuery || document.write('<script src=\"" + '" . includes_url('/js/jquery/jquery.js') . "\"><\/script>')</script>\n";
        });
    }
}
add_action('wp_enqueue_scripts', 'wpurok_jquery_cdn_fallback');

Таким образом, сначала загружается jQuery с CDN, если он недоступен — браузер загрузит локальную версию.

3. Удаление jQuery на страницах, где он не нужен

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

Пример кода:

function wpurok_conditional_jquery_loading() {
    if (!is_admin()) {
        if (!is_page('kontakt') && !is_singular('product')) { // пример страниц
            wp_dequeue_script('jquery');
            wp_deregister_script('jquery');
        }
    }
}
add_action('wp_enqueue_scripts', 'wpurok_conditional_jquery_loading', 100);

Замените is_page('kontakt') и is_singular('product') на условия, соответствующие вашим страницам с использованием jQuery.

Полезные плагины для оптимизации jQuery и скриптов в WordPress

Если вы хотите ускорить сайт без ручного кода, рекомендуем обратить внимание на следующие плагины:

  • Clearfy Pro — плагин для оптимизации производительности, в том числе умеет управлять подключением скриптов и отключать ненужные библиотеки;
  • ABC Pagination — улучшает пагинацию без лишних загрузок, снижая зависимости от jQuery;
  • My Popup — современный плагин для всплывающих окон, который может работать без jQuery, что сокращает нагрузку.

Итог: комплексный подход к ускорению jQuery в WordPress

Чтобы эффективно решить проблему замедленной загрузки jQuery, рекомендуем комбинировать несколько методов:

  1. Переносить загрузку jQuery в подвал с атрибутом defer;
  2. Подключать jQuery через надежный CDN с локальным fallback;
  3. Отключать jQuery на страницах, где он не нужен;
  4. Использовать оптимизационные плагины, например, Clearfy Pro;
  5. Проверять конфликтующие плагины и обновлять их до последних версий.

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

×

AI-плагин

WPGPT
Сам создает статьи для вашего сайта WordPress

SEO и мета-теги

Парсинг конкурентов

Изображения

Комментарии

Подробнее