Оптимизация загрузки сайта на WordPress — одна из ключевых задач для повышения скорости, улучшения пользовательского опыта и SEO. Хуки WordPress (actions и filters) — мощный инструмент, позволяющий вставлять или изменять функциональность без правки ядра. В этой статье разберём, как с помощью хуков оптимизировать загрузку и уменьшить время отклика сайта.
Что такое хуки в WordPress и почему они важны для оптимизации
Хуки — это точки подключения кода, которые позволяют разработчикам добавлять или менять поведение WordPress без изменения исходных файлов. С помощью хуков можно:
- Отключать ненужные скрипты и стили;
- Изменять приоритет загрузки ресурсов;
- Удалять лишние запросы к базе данных;
- Оптимизировать загрузку медиа и контента.
Правильное использование хуков уменьшает количество запросов и объём загружаемых данных, что напрямую влияет на скорость.
Отключение ненужных скриптов и стилей через хуки WordPress
Частая проблема — загрузка плагинами и темами скриптов и стилей, которые не используются на всех страницах. Их отключение уменьшит вес страницы и ускорит загрузку.
Для этого используем хук wp_enqueue_scripts с функцией удаления через wp_dequeue_script и wp_dequeue_style. Пример:
function wordpresses_dequeue_unused_scripts() {
if ( !is_page('kontakt') ) { // отключаем скрипты на всех страницах, кроме 'kontakt'
wp_dequeue_script('contact-form-7');
wp_dequeue_style('contact-form-7');
}
}
add_action('wp_enqueue_scripts', 'wordpresses_dequeue_unused_scripts', 100);Здесь мы отключаем скрипты плагина Contact Form 7 на всех страницах, кроме страницы контактов. Аналогично можно поступить с любыми другими плагинами или скриптами.
Пример отключения Emoji
WordPress по умолчанию загружает скрипты для поддержки Emoji, которые не всегда нужны. Отключим их:
function wordpresses_disable_emojis() {
remove_action('wp_head', 'print_emoji_detection_script', 7);
remove_action('wp_print_styles', 'print_emoji_styles');
}
add_action('init', 'wordpresses_disable_emojis');Это уменьшит количество загружаемых скриптов и стилей, что положительно скажется на скорости.
Оптимизация загрузки медиа с помощью хуков
Изображения — самый тяжёлый ресурс на странице. WordPress умеет создавать несколько размеров изображений, но можно дополнительно оптимизировать загрузку.
Например, с помощью фильтра wp_lazy_loading_enabled можно включить или отключить ленивую загрузку изображений:
function wordpresses_disable_lazy_loading($default, $image, $context) {
if (is_admin()) {
return false; // отключаем ленивую загрузку в админке
}
return $default; // по умолчанию включено
}
add_filter('wp_lazy_loading_enabled', 'wordpresses_disable_lazy_loading', 10, 3);Также с помощью хука intermediate_image_sizes_advanced можно отключить создание лишних размеров, если они не нужны:
function wordpresses_remove_default_image_sizes($sizes) {
unset($sizes['medium']);
unset($sizes['large']);
return $sizes;
}
add_filter('intermediate_image_sizes_advanced', 'wordpresses_remove_default_image_sizes');Это уменьшит количество файлов изображений и сэкономит место на сервере.
Удаление лишних мета-тегов и скриптов из для ускорения
WordPress добавляет много мета-тегов и скриптов в <head>, не всегда нужных. Их можно убрать с помощью хуков:
function wordpresses_cleanup_head() {
remove_action('wp_head', 'wp_generator'); // убирает версию WP
remove_action('wp_head', 'wlwmanifest_link'); // убирает ссылку Windows Live Writer
remove_action('wp_head', 'rsd_link'); // убирает Really Simple Discovery
remove_action('wp_head', 'rest_output_link_wp_head'); // убирает REST API ссылку
}
add_action('init', 'wordpresses_cleanup_head');Это уменьшит размер страницы и повысит безопасность.
Оптимизация запросов к базе данных с помощью хуков
Избыточные запросы снижают производительность. Можно оптимизировать запросы через хук posts_request или фильтры, влияя на SQL.
Например, отключим загрузку ревизий постов для уменьшения запросов:
function wordpresses_disable_post_revisions() {
return 0;
}
add_filter('wp_revisions_to_keep', 'wordpresses_disable_post_revisions', 10, 2);Или ограничим количество постов, загружаемых в админке, чтобы быстрее формировался список:
function wordpresses_limit_admin_posts_per_page($query) {
if (is_admin() && $query->is_main_query()) {
$query->set('posts_per_page', 20);
}
}
add_action('pre_get_posts', 'wordpresses_limit_admin_posts_per_page');Использование плагинов для оптимизации загрузки на основе хуков
Есть плагины, которые используют хуки для оптимизации сайта. Например, Clearfy Pro позволяет отключать ненужные скрипты и стили, управлять мета-тегами, оптимизировать базу данных.
Плагин WPCommunity помогает оптимизировать работу форумов и компонентов, минимизируя нагрузку за счёт правильного использования хуков.
Использование таких решений вместе с собственными хуками даёт отличный результат.
Резюме и рекомендации
Правильное использование хуков — залог эффективной оптимизации загрузки сайта на WordPress. Важно анализировать, какие скрипты и стили действительно нужны, отключать лишнее, оптимизировать медиа и запросы к базе. Комбинируйте собственные решения с проверенными плагинами, например, Clearfy Pro или WPCommunity.
Следуя приведённым в статье примерам и рекомендациям, вы сможете значительно сократить время загрузки сайта, улучшить производительность и сделать ресурс более комфортным для пользователей.