Сегодня мы разберем одну из ключевых тем для повышения производительности веб-проектов, это оптимизацию статических ресурсов через CDN. Я расскажу о современных методах сжатия (Brotli, AVIF), приведу примеры кода, сравню CDN-решения и поделюсь личным опытом внедрения этих технологий. Если вы хотите ускорить загрузку сайта на 30-50%, то эта статья для вас.
CDN и оптимизация статики
CDN (Content Delivery Network) это сеть серверов, распределенных географически, которые кэшируют контент и доставляют его пользователям из ближайшей локации. Но даже с CDN можно упустить важные возможности, если не использовать современные форматы сжатия и предзагрузку.
Лично я столкнулся с этим, когда аудит одного из проектов показал, что 70% трафика «съедали» изображения в PNG и JS-файлы без эффективного сжатия. После перехода на Brotli и AVIF размер ресурсов сократился в 2-3 раза, а TTFB (Time To First Byte) упал до 100 мс.
Давайте разбираться, как этого добиться.
Современные методы сжатия: Brotli vs. Gzip
Что такое Brotli?
Brotli алгоритм сжатия от Google, представленный в 2015 году. Он обеспечивает на 20-26% лучшее сжатие, чем Gzip, особенно для текстовых ресурсов (HTML, CSS, JS).
Как включить Brotli на сервере?
Пример настройки для Nginx:
# Установите модуль ngx_brotli (через apt или из исходников) sudo apt-get install libnginx-mod-brotli # Конфигурация в nginx.conf brotli on; brotli_comp_level 6; brotli_types text/plain text/css application/javascript application/json image/svg+xml;
Для Apache используйте модуль mod_brotli:
# Включение модуля LoadModule brotli_module modules/mod_brotli.so # Настройка в .htaccess AddOutputFilterByType BROTLI_COMPRESS text/html text/plain text/css application/javascript
Проверка сжатия
Убедитесь, что сервер возвращает заголовок Content-Encoding: br. Используйте инструменты:
- curl:
curl -H 'Accept-Encoding: br' -I https://ваш-сайт.com - Lighthouse: раздел «Use text compression».
AVIF: новый король оптимизации изображений
AVIF (AV1 Image File Format) формат, обеспечивающий на 50% лучшее сжатие, чем WebP, при сохранении качества. Поддерживает прозрачность, HDR и анимацию.
Конвертация изображений в AVIF
- Через командную строку (avifenc):
avifenc --min 0 --max 63 -a end-usage=q -a cq-level=30 -a tune=ssim input.jpg output.avif
- Онлайн-инструменты: Squoosh.app, Convertio.ru.
Подключение AVIF с fallback
Используйте тег <picture> для поддержки старых браузеров:
<picture> <source srcset="image.avif" type="image/avif"> <source srcset="image.webp" type="image/webp"> <img src="image.jpg" alt="Пример"> </picture>
Сравнение CDN: Яндекс, Selectel, G-Core
| Параметр | Яндекс CDN | Selectel CDN | G-Core Labs |
|---|---|---|---|
| Поддержка Brotli | ✅ | ✅ | ✅ |
| Поддержка AVIF | ❌ | ✅ (по запросу) | ✅ |
| Предзагрузка | ✅ (API) | ✅ (GUI) | ✅ (GUI) |
| Стоимость за 1 ГБ | от $0.08 | от $0.09 | от $0.07 |
| Гео-покрытие | 20+ точек | 15+ точек | 140+ точек |
Для проектов с аудиторией в СНГ выбирайте Яндекс CDN или G-Core. Для глобального охвата G-Core.
Предзагрузка контента: как это работает?
Предзагрузка позволяет браузеру заранее загружать критические ресурсы (шрифты, стили, изображения). Пример для preload:
<link rel="preload" href="font.woff2" as="font" type="font/woff2" crossorigin> <link rel="preload" href="critical.css" as="style">
Не злоупотребляйте! Предзагружайте только то, что нужно для первого рендера.
Мои рекомендации
- Обновите стек. Перейдите на Brotli + AVIF.
- Выберите CDN с поддержкой современных технологий.
- Настройте предзагрузку для критических ресурсов.
- Тестируйте изменения через Lighthouse и WebPageTest.
Если есть вопросы, пишите в комментарии ниже.
Поддержка автора осуществляется с помощью специальной формы ниже, предоставленной сервисом «ЮMoney». Все платёжные операции выполняются на защищённой странице сервиса, что обеспечивает их корректность и полную безопасность.


