В WordPress часто возникает проблема избыточной загрузки скриптов и стилей, что замедляет работу сайта. В этой статье мы подробно разберём, как оптимизировать подключение библиотек, чтобы повысить скорость загрузки страниц и улучшить пользовательский опыт на сайте.
Почему важно оптимизировать загрузку библиотек в WordPress
WordPress и большинство плагинов используют множество CSS и JS файлов. Если все они загружаются на каждой странице без разбора, это приводит к:
- Увеличению времени загрузки страницы;
- Потере баллов в SEO;
- Повышенной нагрузке на сервер и пропускной способности;
- Плохому пользовательскому опыту.
Оптимизация загрузки библиотек позволяет загружать только необходимые ресурсы, уменьшать количество HTTP-запросов и улучшать производительность сайта.
Как определить, какие библиотеки грузятся и где
Для начала нужно понять, какие именно скрипты и стили подключены на странице. Для этого используйте инструменты браузера (например, вкладку Network в Chrome DevTools) или плагины:
- Query Monitor — показывает все загружаемые скрипты и стили, их зависимости и места подключения;
- Asset CleanUp — позволяет отключать ненужные библиотеки на отдельных страницах.
Как отключить ненужные скрипты и стили вручную
Для отключения скриптов и стилей WordPress предоставляет функции wp_dequeue_script и wp_dequeue_style. Рекомендуется делать это в хуке wp_enqueue_scripts с приоритетом после основного подключения.
Пример кода, который отключает загрузку библиотеки jQuery UI на страницах, где она не нужна:
function wpstudy_dequeue_unnecessary_assets() {
if ( !is_page('contact') ) { // Например, отключаем на всех страницах кроме контактов
wp_dequeue_script('jquery-ui-core');
wp_dequeue_style('jquery-ui-style');
}
}
add_action('wp_enqueue_scripts', 'wpstudy_dequeue_unnecessary_assets', 100);
Обратите внимание, что важно знать точные идентификаторы скриптов и стилей, которые вы хотите отключить. Их можно найти в исходном коде темы или плагинов, либо через Query Monitor.
Условная загрузка библиотек по страницам и типам записей
Оптимально загружать ресурсы только там, где они действительно нужны. Например, если плагин слайдера используется лишь на главной странице, подключайте его скрипты и стили только там:
function wpstudy_conditional_enqueue() {
if ( is_front_page() ) {
wp_enqueue_script('slick-slider', get_template_directory_uri() . '/js/slick.min.js', array('jquery'), '1.8.1', true);
wp_enqueue_style('slick-style', get_template_directory_uri() . '/css/slick.css');
}
}
add_action('wp_enqueue_scripts', 'wpstudy_conditional_enqueue');
Такой подход значительно снижает нагрузку на остальные страницы.
Использование плагинов для управления загрузкой ресурсов
Если вы не хотите писать код, можно использовать специализированные плагины, которые помогают контролировать загрузку скриптов и стилей на сайте:
- Asset CleanUp — позволяет отключать или включать ресурсы на отдельных страницах;
- WP Rocket — коммерческий плагин для кэширования и оптимизации, в том числе умеет объединять и откладывать загрузку скриптов;
- Autoptimize — объединяет и минимизирует CSS и JS файлы.
Например, с Asset CleanUp вы можете вручную отключить ресурсы плагинов, которые загружаются на всех страницах, но нужны только в админке или на одной странице.
Оптимизация популярных библиотек: jQuery, FontAwesome и других
Часто на сайтах WordPress загружается jQuery в полной версии, хотя не всегда это необходимо. Также многие темы и плагины подключают FontAwesome со всех иконками, что увеличивает вес CSS.
Решения:
- Заменить jQuery на более лёгкие аналоги или отключать там, где он не нужен;
- Подключать FontAwesome только с нужным набором иконок, например, через кастомный сборщик на сайте FontAwesome;
- Использовать SVG-иконки вместо библиотек иконок для снижения размера.
Пример функции для оптимизации FontAwesome в WordPress
Если вы используете FontAwesome, но хотите загружать только необходимые стили, можно отключить стандартное подключение и подключить кастомный CSS:
function wpstudy_optimize_fontawesome() {
// Отключаем стандартный FontAwesome плагина или темы
wp_dequeue_style('fontawesome');
// Подключаем оптимизированный CSS с нужными иконками
wp_enqueue_style('wpstudy-fontawesome-custom', get_stylesheet_directory_uri() . '/css/fontawesome-custom.css', array(), '6.4.0');
}
add_action('wp_enqueue_scripts', 'wpstudy_optimize_fontawesome', 20);
Так вы уменьшите нагрузку и ускорите загрузку сайта.
Кэширование и отложенная загрузка скриптов
Кроме отключения ненужных ресурсов, ускорить сайт помогает отложенная загрузка скриптов (defer) и асинхронная загрузка (async). В WordPress это можно реализовать через добавление атрибутов к тегам <script>.
Пример функции для добавления атрибута defer к нужным скриптам:
function wpstudy_add_defer_attribute($tag, $handle) {
$scripts_to_defer = array('jquery', 'slick-slider');
if (in_array($handle, $scripts_to_defer)) {
return str_replace(' src', ' defer src', $tag);
}
return $tag;
}
add_filter('script_loader_tag', 'wpstudy_add_defer_attribute', 10, 2);
Это позволяет браузеру загружать скрипты параллельно с остальным содержимым страницы, не блокируя её отображение.
Выводы и рекомендации
Оптимизация загрузки библиотек — важный этап ускорения WordPress сайта. Следуйте этим рекомендациям:
- Используйте инструменты для анализа подключённых скриптов и стилей;
- Отключайте ненужные ресурсы на страницах, где они не требуются;
- Подключайте библиотеки условно, только на нужных страницах;
- Используйте плагины для управления ресурсами, если не хотите писать код;
- Применяйте отложенную загрузку и минимизацию скриптов.
Для дополнительной оптимизации можно рассмотреть плагины с сайта WPSHOP.RU, например, Clearfy Pro, который помогает убрать лишние загрузки и оптимизировать работу сайта.