Как удалить версию из URL JS и CSS в WordPress без потери кеширования

В WordPress при подключении файлов JavaScript и CSS к URL автоматически добавляется параметр ?ver=версия. Это делается для контроля кеша браузера и предотвращения загрузки устаревших файлов. Однако иногда возникает необходимость убрать этот параметр из URL, например, для улучшения SEO или из-за особенностей CDN, которые некорректно работают с параметрами в URL.

Почему WordPress добавляет параметр версии к JS и CSS

Когда вы подключаете скрипты и стили через функции wp_enqueue_script и wp_enqueue_style, WordPress автоматически добавляет параметр версии, который берется из версии темы, плагина или ядра, или указывается вручную.

Это помогает браузеру понимать, когда файл обновился, и сбрасывать кеш. Без этого параметра при обновлении сайта пользователи могут видеть старую версию скриптов и стилей.

Однако, бывают ситуации, когда версия в URL мешает работе сторонних сервисов, или вы хотите, чтобы URL были чище.

Удаление параметра версии из URL: основные варианты

Самый простой способ — использовать фильтр style_loader_src и script_loader_src для удаления параметра ver из URL при выводе.

Пример функции, которая удаляет версию из URL:

function wp_puzzle_remove_version_from_src($src) {
    if (strpos($src, 'ver=') !== false) {
        $src = remove_query_arg('ver', $src);
    }
    return $src;
}
add_filter('style_loader_src', 'wp_puzzle_remove_version_from_src', 9999);
add_filter('script_loader_src', 'wp_puzzle_remove_version_from_src', 9999);

Этот код нужно добавить в файл functions.php вашей темы или в собственный плагин.

Однако такой подход может привести к проблемам с кешированием. Браузер при обновлении сайта не поймет, что файл обновился, и будет использовать старую версию.

Как сохранить кеширование при удалении версии из URL

Чтобы сохранить преимущества кеширования, можно применить версионирование через имя файла — так называемый "cache busting". Например, переименовывать файл стилей и скриптов с указанием хэша или даты изменения.

Но WordPress по умолчанию не поддерживает такой механизм. Поэтому можно использовать плагины или реализовать собственное решение.

Пример решения с использованием filemtime

Мы можем динамически подставлять время последнего изменения файла как версию, но при этом не передавать параметр ?ver=, а вписывать время в имя файла через wp_enqueue_style и wp_enqueue_script.

Пример функции для подключения скрипта с временной меткой в имени файла (для локальных файлов):

function wp_puzzle_enqueue_script_with_timestamp() {
    $script_path = get_template_directory() . '/js/script.js';
    $script_url = get_template_directory_uri() . '/js/script.js';
    if (file_exists($script_path)) {
        $version = filemtime($script_path);
    } else {
        $version = false;
    }
    wp_enqueue_script('wp_puzzle_script', $script_url, array(), $version, true);
}
add_action('wp_enqueue_scripts', 'wp_puzzle_enqueue_script_with_timestamp');

В этом случае параметр ?ver=timestamp будет использоваться, но timestamp — это число, которое меняется при каждом обновлении файла, что оптимально для кеширования.

Удаление параметра версии и подмена URL через фильтр

Если вы хотите совсем убрать параметр ver, но добавить хэш в имя файла, можно использовать фильтр clean_url и самостоятельно генерировать URL с инлайновым хэшем в имени файла, но это сложнее и требует дополнительной настройки серверов и правил переписывания.

Плагины для управления версиями и кешированием JS и CSS

Если вы не хотите писать свой код, можно воспользоваться готовыми решениями. Например:

  • Clearfy Pro — плагин для оптимизации WordPress, который позволяет управлять версиями скриптов и стилей, удалять лишние параметры из URL и улучшать кеширование.
    Подробнее о Clearfy Pro на WpShop
  • Asset CleanUp — позволяет отключать ненужные скрипты и стили, а также управлять их кешированием и версиями.

Практические советы по безопасности и SEO при удалении параметра версии

Удаление параметра ver убирает информацию о версии плагинов и тем, что снижает риск атаки по известным уязвимостям. Но при этом может ухудшить производительность из-за проблем с кешированием.

Поэтому рекомендуется использовать подход с динамическим версионированием через filemtime или доверять плагинам, которые грамотно сбалансируют эти задачи.

Также стоит проверить работу CDN и кешей после внесения изменений, чтобы избежать сбоев в загрузке стилей и скриптов.

Итоговые рекомендации

  • Удаляйте параметр версии только если это действительно необходимо.
  • Используйте filemtime для контроля кеша, если работаете с локальными файлами.
  • Проверяйте сайт после изменений на ошибки в загрузке ресурсов.
  • Рассмотрите плагины Clearfy Pro или Asset CleanUp для удобного управления версиями и кешированием.

Добавь в закладки и поделись с друзьями:

⭐⭐⭐⭐⭐
WordPress: как удалить пустое место в меню и исправить пробелы между пунктами
08.12.2025
Как создать внешнюю интеграцию WordPress с внешним сервисом через REST API
01.04.2026
Как использовать Meta Box в WordPress для расширения функциональности
27.02.2026
WooCommerce: как настроить авторизацию пользователей через Telegram-бота с помощью webhook
28.04.2026
Как использовать собственные таблицы в базе данных WordPress: практическое руководство
02.01.2026
×

AI-плагин

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

SEO и мета-теги

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

Изображения

Комментарии

Подробнее