В процессе разработки и настройки сайта на WordPress часто возникает необходимость удалить определённые скрипты из <head>, чтобы повысить скорость загрузки, устранить конфликты с другими плагинами или улучшить SEO. В этой статье мы подробно рассмотрим, как убрать скрипты из заголовка с помощью кода и плагинов, а также покажем примеры, которые помогут вам быстро решить эту задачу.
Почему важно контролировать скрипты в заголовке WordPress
Каждый подключаемый скрипт и стиль влияют на скорость загрузки страницы. Лишние или устаревшие скрипты могут замедлять отображение контента, вызывать конфликты JavaScript и снижать удобство пользователей. Особенно это актуально для мобильных устройств и сайтов с большим трафиком.
По умолчанию WordPress и плагины автоматически добавляют скрипты в <head>. Но не всегда все они нужны на каждой странице. Удаление ненужных скриптов позволяет оптимизировать работу сайта.
Основные способы удаления скриптов из заголовка
В WordPress для управления скриптами используется очередь скриптов (enqueue). Каждый скрипт регистрируется с уникальным идентификатором (handle). Чтобы удалить скрипт, нужно просто отменить его регистрацию или выгрузить из очереди.
Удаление скрипта через wp_dequeue_script и wp_deregister_script
Самый распространённый метод — использовать хук wp_enqueue_scripts с приоритетом позже, чтобы отменить регистрацию скрипта. Например, удалим скрипт с handle jquery из заголовка:
add_action('wp_enqueue_scripts', 'wppremium_remove_jquery', 100);
function wppremium_remove_jquery() {
wp_dequeue_script('jquery');
wp_deregister_script('jquery');
}Этот код нужно добавить в файл functions.php вашей темы или в собственный плагин. Таким образом, скрипт jQuery не будет загружаться на фронтенде.
Удаление скрипта плагина по его handle
Чтобы определить handle скрипта, можно посмотреть исходный код страницы или найти регистрацию скрипта в коде плагина. Например, плагин подключает скрипт с handle contact-form-7. Чтобы убрать его скрипт с определённых страниц, используем условные теги:
add_action('wp_enqueue_scripts', 'wppremium_remove_cf7_scripts', 100);
function wppremium_remove_cf7_scripts() {
if (!is_page('contact')) { // Оставляем скрипт только на странице "Контакты"
wp_dequeue_script('contact-form-7');
wp_deregister_script('contact-form-7');
}
}Так можно выбирать на каких страницах подключать скрипты, а где они не нужны.
Удаление inline-скриптов и стилей из заголовка
Иногда плагины вставляют inline-скрипты прямо в <head> или в футер через wp_add_inline_script или wp_head. Чтобы убрать такие скрипты, придётся использовать буферизацию вывода или фильтры.
Пример удаления inline-скрипта с помощью буферизации вывода
Этот метод более сложный, но позволяет отфильтровать лишние скрипты. Пример кода:
add_action('template_redirect', 'wppremium_start_buffer');
function wppremium_start_buffer() {
ob_start('wppremium_filter_head_scripts');
}
function wppremium_filter_head_scripts($buffer) {
// Удаляем скрипт по уникальной строке, например 'some-inline-script'
$buffer = preg_replace('/<script>.*some-inline-script.*<\/script>/isU', '', $buffer);
return $buffer;
}Этот способ помогает, если inline-скрипт нельзя удалить другими методами.
Плагины для управления скриптами в WordPress
Если не хотите копаться в коде, можно использовать плагины для управления скриптами:
- Asset CleanUp — позволяет отключать скрипты и стили на выбранных страницах через удобный интерфейс.
- Perfmatters — платный плагин с возможностью отключения ненужных скриптов, оптимизации загрузки.
- Clearfy Pro (https://wpshop.ru/plugins/clearfy-pro/?utm_source=wppremium.ru&utm_medium=article&utm_campaign=kak-udalit-skript-iz-zagolovka-wordpress) — комплексный инструмент для оптимизации, в том числе отключения скриптов.
Эти решения экономят время и снижают риск ошибок.
Практические советы по удалению скриптов и оптимизации
1. Всегда делайте бэкап перед изменениями
Изменение загрузки скриптов может повлиять на работу сайта. Создайте резервную копию файлов и базы данных.
2. Определяйте handle скриптов тщательно
Чтобы не сломать функционал, точно узнайте, какой handle у нужного скрипта. Это можно сделать через инструменты разработчика в браузере или просмотром кода плагина.
3. Используйте условные теги для выборочной загрузки
Отключайте скрипты только там, где они не нужны. Например, формы не нужны на главной, значит отключайте там их скрипты.
4. Тестируйте сайт после изменений
Проверьте работу всех функций, особенно динамических элементов, после удаления скриптов.
Заключительный пример: удаление скриптов WooCommerce на страницах без товаров
Если вы используете WooCommerce, но хотите убрать его скрипты со страниц, где нет товаров, используйте такой код:
add_action('wp_enqueue_scripts', 'wppremium_remove_woocommerce_scripts', 99);
function wppremium_remove_woocommerce_scripts() {
if (!is_woocommerce() && !is_cart() && !is_checkout()) {
wp_dequeue_script('wc-cart-fragments');
wp_dequeue_script('woocommerce');
wp_dequeue_script('wc-add-to-cart');
wp_dequeue_script('wc-checkout');
wp_dequeue_script('wc-single-product');
wp_dequeue_script('wc-cart');
}
}Это существенно снизит нагрузку на страницы, где функционал WooCommerce не нужен.
Таким образом, удаление скриптов из заголовка — это эффективный способ оптимизации WordPress-сайта. Используйте приведённые методы и инструменты, чтобы ускорить загрузку и улучшить пользовательский опыт.