В WordPress, как правило, на сайте со временем накапливается множество скриптов, которые перестают быть актуальными или используются не на всех страницах. Это негативно сказывается на скорости загрузки и общем быстродействии сайта. В этой статье разберём, как реализовать автоматическое удаление нерабочих (ненужных) скриптов в WordPress, чтобы ускорить сайт и снизить нагрузку на сервер.
Почему важно удалять нерабочие скрипты в WordPress
Каждый подключённый скрипт — это дополнительные HTTP-запросы, которые увеличивают время загрузки страницы и расход ресурсов браузера посетителя. Особенно критично, если скрипты подключаются на всех страницах, а используются только в админке или на отдельных шаблонах.
Удаление неиспользуемых скриптов помогает:
- Уменьшить время загрузки страницы;
- Снизить нагрузку на сервер;
- Избавиться от потенциальных конфликтов между скриптами;
- Улучшить показатели Core Web Vitals и SEO.
Однако делать это вручную сложно, особенно при большом количестве плагинов и тем, поэтому автоматизация — лучший выбор.
Основные способы автоматического удаления нерабочих скриптов
1. Использование условных тегов WordPress
Первый и самый надёжный способ — это отключение скриптов с помощью условных тегов внутри функции, которая снимает регистрацию или подключение скриптов.
Пример функции wptricks_deregister_scripts(), которая удаляет скрипт jQuery на всех страницах, кроме админки:
function wptricks_deregister_scripts() {
if (!is_admin()) {
wp_deregister_script('jquery');
}
}
add_action('wp_enqueue_scripts', 'wptricks_deregister_scripts', 100);Но такой подход требует точного знания, какие скрипты и где нужны.
2. Фильтрация скриптов на основе URL страницы
Можно более тонко отключать скрипты, проверяя текущий URL или тип страницы. Например, если скрипт нужен только на страницах с формой обратной связи:
function wptricks_deregister_scripts_conditional() {
if (!is_page('contact')) {
wp_dequeue_script('contact-form-script');
wp_deregister_script('contact-form-script');
}
}
add_action('wp_enqueue_scripts', 'wptricks_deregister_scripts_conditional', 100);Такой метод работает, если вы уверены в структуре сайта и где нужен каждый скрипт.
3. Использование плагинов для оптимизации скриптов
Если хочется более простой и автоматизированный вариант, можно использовать специализированные плагины:
- Asset CleanUp — позволяет выключать скрипты и стили на отдельных страницах через удобный интерфейс;
- Clearfy Pro (ссылка https://wpshop.ru/clearfy-pro/) — помогает автоматизировать очистку и отключение ненужных функций, включая скрипты;
- Perfmatters — простой плагин для отключения скриптов, стилей, эмодзи и т.д.
Использование этих плагинов поможет быстро избавиться от лишних скриптов без погружения в код.
Как реализовать автоматическое удаление нерабочих скриптов с помощью CRON
Дополнительно можно настроить автоматический аудит и удаление скриптов, которые не используются, на основе логов или анализа активности. Для этого понадобится писать собственные функции, которые будут запускаться по расписанию через WP-Cron.
Пример функции, которая проверяет зарегистрированные скрипты и удаляет те, которые не были вызваны за последний месяц (условный пример):
function wptricks_cleanup_unused_scripts() {
global $wp_scripts;
$unused = [];
foreach ($wp_scripts->registered as $handle => $script) {
// Допустим, у нас есть способ проверить дату последнего использования
if (wptricks_is_script_unused_since($handle, 30)) {
wp_deregister_script($handle);
$unused[] = $handle;
}
}
if (!empty($unused)) {
error_log('Удалены неиспользуемые скрипты: ' . implode(', ', $unused));
}
}
add_action('wptricks_daily_cleanup', 'wptricks_cleanup_unused_scripts');
if (!wp_next_scheduled('wptricks_daily_cleanup')) {
wp_schedule_event(time(), 'daily', 'wptricks_daily_cleanup');
}Для работы функции wptricks_is_script_unused_since() нужно реализовать логику анализа использования скриптов, что достаточно сложно, но возможно при сборе статистики.
Советы по безопасному удалению скриптов
Удалять скрипты нужно аккуратно, чтобы не сломать функционал сайта. Вот несколько рекомендаций:
- Перед отключением скрипта проверьте, что он действительно не используется на целевых страницах;
- Тестируйте сайт в разных браузерах и на разных устройствах после удаления;
- Используйте режим отладки и логи для отслеживания ошибок;
- Создавайте резервные копии перед внесением изменений;
- Если скрипт подключается плагином, лучше отключить его через настройки плагина или заменить плагин на более лёгкий.
Пример комплексного решения: отключение скриптов на основе пользовательской роли
Иногда скрипты нужны только для администраторов или авторов. Тогда можно отключать их для посетителей:
function wptricks_dequeue_scripts_for_visitors() {
if (!current_user_can('edit_posts')) { // если пользователь не автор
wp_dequeue_script('admin-custom-script');
wp_deregister_script('admin-custom-script');
}
}
add_action('wp_enqueue_scripts', 'wptricks_dequeue_scripts_for_visitors', 100);Это позволяет убрать тяжелые скрипты с фронтенда для обычных посетителей, оставляя их доступными для редакторов и админов.
Выводы и рекомендации
Автоматическое удаление нерабочих скриптов — отличный способ ускорить сайт на WordPress. Для этого можно использовать:
- Ручное управление скриптами с помощью хуков и условных тегов;
- Плагины оптимизации, например, Clearfy Pro;
- Автоматические задачи на WP-Cron для регулярной очистки;
- Тщательное тестирование и мониторинг после изменений.
Эти методы помогут поддерживать чистоту и производительность сайта без лишних затрат времени.