BrandEvo

Скорость сайта

Минификация JS и CSS: что и как сжимать

Минификация — простая оптимизация, которая делает файлы стилей и скриптов компактнее без потери функциональности. Разбираем, что именно убирает минификатор, чем это отличается от сжатия и какие плагины помогают на WordPress.

МИНИФИКАЦИЯJSCSSHTMLСБОРКАWORDPRESSСКОРОСТЬМИНИФИКАЦИЯJSCSSHTMLСБОРКАWORDPRESSСКОРОСТЬ
минификация js и css

Минификация — это удаление из файла всего, что не нужно для исполнения: пробелов, переносов строк, комментариев, длинных имён переменных. Браузер прочитает «сжатый» файл так же, как и обычный, но он будет в полтора-два раза легче. Это базовая оптимизация ресурсов, без которой не имеет смысла говорить о скорости сайта.

01Что такое минификация и чем она отличается от сжатия

Минификация и сжатие — разные вещи, хотя часто работают вместе. Минификация — это изменение содержимого файла: переписывание его в более компактной форме. После минификации файл по-прежнему остаётся CSS или JavaScript, его можно открыть в редакторе и прочитать (хоть и с трудом).

Сжатие (Gzip, Brotli) — это упаковка любого файла на лету при передаче по сети. О сжатии мы писали в материале «Gzip или Brotli». Браузер распаковывает файл при получении и работает уже с распакованной версией.

Лучше всего эти два инструмента работают вместе. Сначала минификация уменьшает «исходник» в 1,5–2 раза, потом сжатие давит результат ещё в несколько раз. Вместе они дают самый компактный вариант.

02Что именно убирает минификатор

В CSS и HTML минификатор делает простые вещи:

  • Удаляет все пробелы, переносы строк и табы, которые нужны только для удобства чтения.
  • Убирает комментарии.
  • Сокращает значения (например, цвет #ffffff в #fff).
  • Объединяет одинаковые правила.
  • Опционально объединяет несколько файлов в один.

В JavaScript минификация устроена сложнее. Помимо удаления пробелов и комментариев, минификаторы переименовывают переменные и функции в максимально короткие имена. Длинная productCardImage становится a, а calculateDiscountForUserb. Это сильно уменьшает объём, но делает код нечитаемым — что не страшно, ведь его теперь читает только браузер.

Современные минификаторы умеют и больше: вырезать «мёртвый» код, который никогда не исполняется (tree shaking), и упрощать выражения (constant folding). Это уже часть так называемой «оптимизации сборки».

03Сколько в реальности выигрывают сайты

На типичном CSS объёмом 100 КБ минификация даёт примерно 20–35% уменьшения. На JS обычно больше — 30–50%, потому что в коде много длинных идентификаторов и комментариев. На HTML выигрыш скромнее — 5–15%.

На больших проектах с десятками подключённых стилей и скриптов кумулятивный эффект ощутим: страница может «похудеть» на сотни килобайт без потери функциональности. Это сразу отражается на метриках Core Web Vitals и общем времени загрузки. Подробнее о других ускорениях — в статье «Как ускорить загрузку сайта».

Минификация — почти бесплатная оптимизация. Один раз настроенная, она работает автоматически и не требует поддержки.

04Где минификация делается на сайте

Минификацию можно подключить на нескольких уровнях:

На этапе сборки

Современные сборщики (Webpack, Vite, esbuild, Parcel) минифицируют JS, CSS и HTML по умолчанию в production-режиме. Программисту не нужно ничего настраивать — достаточно собрать проект командой npm run build. Это самый правильный способ: минификация делается один раз при сборке, а не каждый запрос.

В CMS «на лету»

На WordPress, Tilda и других CMS, где код пишут не вы, минификация подключается плагинами кэширования: WP Rocket, LiteSpeed Cache, W3 Total Cache, Autoptimize. Они умеют объединять CSS и JS, минифицировать их и сохранять результат в кэше.

На веб-сервере

Некоторые модули Nginx и Apache умеют делать минификацию HTML на лету. Это менее популярный путь, потому что нагружает CPU и не всегда даёт стабильный результат с современными фронтенд-фреймворками.

05Минификация на WordPress: что выбрать

На WordPress есть нюанс: плагины минификации иногда «ломают» сайт. Объединение и сжатие JS чужих плагинов может привести к конфликтам и битым скриптам, особенно если на сайте установлен Elementor, WooCommerce и пяток других плагинов с собственной логикой.

Что обычно работает хорошо:

  • WP Rocket. Самый аккуратный плагин с тонкой настройкой исключений. Платный.
  • LiteSpeed Cache. Бесплатный, на хостингах с LiteSpeed работает «из коробки» и редко ломает сайт.
  • Autoptimize. Бесплатный, давно проверенный, простой.

О сравнении кэширующих плагинов мы писали отдельно — «Плагины кэширования WordPress». Главное правило: всегда тестируйте сайт после включения минификации. Открывайте формы, корзину, личный кабинет, проверяйте, что ничего не «отвалилось».

06Типичные ошибки и проверка результата

Что часто ломает минификация:

  • Inline-скрипты внутри плагинов. Если они полагаются на определённый порядок исполнения, объединение может его нарушить.
  • jQuery-плагины со старым синтаксисом. Минификатор может неправильно понять конструкции, не соответствующие современному стандарту.
  • Шрифты с относительными путями в CSS. После объединения файлов пути могут ломаться.
  • Аналитика и пиксели. Иногда после минификации перестают отправляться события — обязательно проверьте в Яндекс.Метрике.

Проверить, что минификация действительно включена, можно прямо в DevTools: открыть любой CSS или JS файл и посмотреть содержимое. Если код в одну длинную строку без пробелов — всё работает. Если по-прежнему отформатированный с переносами — минификации нет. Дополнительно PageSpeed Insights в разделе «Возможности» подскажет, какие именно файлы стоит минифицировать.

// Как это работает в BrandEvo

Базовая оптимизация — без отдельных счетов

При разработке сайта и в подписке мы настраиваем минификацию вместе со сжатием и кэшированием. Проверяем, что после неё сайт работает корректно, и не «ломаемся» после обновлений плагинов.

Официальная документация по теме — Справка Яндекс.Вебмастера.

Сайт тормозит?

Проверим минификацию, кэш, сжатие и хостинг — и включим то, чего не хватает, без переделки сайта.


Частые вопросы

Подходит ли подписка BrandEvo моему бизнесу?

Подписка работает для малого и среднего бизнеса в России. Тариф «Старт» — 200 000 ₽/год для услуг и небольших проектов, «E-commerce» — 400 000 ₽/год для интернет-магазинов. Подробное сравнение — на странице тарифов.

Что входит в подписку маркетинга?

Полный цикл: SEO, контекстная реклама, контент-маркетинг, email-рассылки, дизайн, веб-аналитика и разработка под задачу. Не отдельные услуги, а одна команда под результат.

Можно ли начать, если у меня ещё нет сайта?

Да. Если сайта нет — в первый месяц делаем посадочную страницу или лендинг. Если есть — проводим аудит и улучшаем. Создание и поддержка сайта входят в подписку.

Смотреть тарифы →
Карта блога — все статьи