Как настроить кеширование и CDN для ускорения сайта. Полное руководство по браузерному и серверному кешированию (Cache-Control, Redis, Nginx FastCGI Cache), настройке Cloudflare, выбору CDN-провайдера. Узнайте, как сократить TTFB с 2000 мс до 50 мс.
Введение: почему сервер отвечает 3 секунды, хотя может за 50 миллисекунд
Пользователь открывает сайт. Сервер думает 2 секунды. Генерирует страницу с нуля — запрос к базе данных, рендеринг шаблона, сборка. Отдаёт. Следующий пользователь — снова 2 секунды. И так для каждого запроса. Это всё равно что печь свежий хлеб для каждого покупателя, вместо того чтобы держать готовый на витрине.
Кеширование — это готовая витрина. Сервер не генерирует страницу заново для каждого посетителя, а отдаёт уже готовую копию. Результат: TTFB (время до первого байта) падает с 2000 мс до 50 мс. Пользователь видит страницу мгновенно. Поисковый робот обходит сайт быстрее. Сервер выдерживает в 100 раз больше посетителей.
В этом руководстве — всё о кешировании и CDN в 2026 году. От базовых настроек Cache-Control до продвинутой связки Nginx FastCGI Cache + Redis + Cloudflare. Вы узнаете, как работает каждый слой кеширования, как его настроить и как проверить, что всё работает.
Виды кеширования: слоёный пирог ускорения
Кеширование работает на нескольких уровнях. Каждый слой — дополнительное ускорение. Вместе они сокращают время загрузки в разы.
Слой 1: Браузерный кеш. Самый близкий к пользователю. Изображения, CSS, JavaScript, шрифты сохраняются прямо в браузере. При повторном заходе на сайт эти файлы загружаются с жёсткого диска, а не из интернета. Экономия: 80-100% времени загрузки статики при повторных визитах.
Слой 2: CDN (Content Delivery Network). Географически распределённая сеть серверов. Пользователь из Владивостока получает контент с сервера в Токио или Сингапуре, а не из Москвы. Расстояние меньше — задержка меньше. Экономия: 30-50% времени загрузки для удалённых пользователей.
Слой 3: Серверное кеширование. Готовая HTML-страница хранится на сервере. Вместо генерации (запрос к базе, рендеринг) — мгновенная отдача готового файла. Экономия: TTFB падает с 500-2000 мс до 10-50 мс.
Слой 4: Кеширование базы данных. Результаты частых запросов (например, «топ-10 товаров» или «последние статьи») сохраняются в оперативной памяти через Redis или Memcached. База данных не нагружается повторными запросами. Экономия: особенно заметна на высоконагруженных сайтах.
Все четыре слоя работают вместе. Пропуск любого из них — упущенная возможность ускорить сайт.
Браузерное кеширование: заголовок Cache-Control и как его настроить
Cache-Control — это HTTP-заголовок, который говорит браузеру: «Этот файл можно хранить у себя и не запрашивать заново в течение N секунд». Правильная настройка Cache-Control — самый простой и эффективный способ ускорить повторные заходы на сайт.
Для статических ресурсов (изображения, шрифты, CSS, JavaScript с версионированием) заголовок должен быть: Cache-Control: max-age=31536000, public, immutable. Это означает «кешировать на год, файл никогда не изменится». Для HTML-страниц: Cache-Control: max-age=0, no-cache. Это означает «всегда проверять актуальность страницы на сервере перед показом».
Настройка в .htaccess для Apache: для изображений и шрифтов — max-age=31536000, public, immutable; для CSS и JS — max-age=2592000, public (месяц, при условии версионирования через хеш в имени файла); для HTML — max-age=0, no-cache. Настройка в nginx: для изображений и шрифтов используется директива expires 1y с заголовком Cache-Control public, immutable; для CSS и JS — expires 30d.
Критически важно: если вы изменили CSS-файл, а он называется так же (style.css), браузер не узнает об изменении и будет показывать старую версию. Решение — версионирование статики: добавление хеша в имя файла (style.a3f8c2.css) или параметра версии (style.css?v=2.1). Современные сборщики (Webpack, Vite) делают это автоматически.
Серверное кеширование: Nginx FastCGI Cache и Redis
Серверное кеширование — это когда готовая HTML-страница сохраняется на сервере и отдаётся без генерации. Эффект: TTFB падает с 500-2000 мс до 10-50 мс. Разница между «сервер думает полсекунды» и «сервер отдал мгновенно» ощущается пользователем как совершенно другой уровень скорости.
Для WordPress самое популярное решение — плагины кеширования. WP Rocket (платный, лучший по соотношению цена/качество): включает страничное кеширование, сжатие CSS/JS, lazy loading, интеграцию с CDN. W3 Total Cache (бесплатный): мощный, но сложный в настройке. Flying Press: новый, лёгкий, с фокусом на Core Web Vitals. Для 1С-Битрикс: встроенный композитный кеш в админке (Настройки → Производительность → Композитный кеш). Для самописных сайтов на PHP: Nginx FastCGI Cache настраивается в конфигурации nginx, кеширует ответы PHP-FPM. Для высоконагруженных проектов: Redis или Memcached используются для кеширования результатов запросов к базе данных, сессий и других данных в оперативной памяти.
Важный принцип: кешировать можно только страницы, которые одинаковы для всех пользователей. Страницы корзины, оформления заказа, личного кабинета кешировать нельзя — каждый пользователь видит там свои данные. Большинство плагинов кеширования автоматически исключают такие страницы.
CDN: доставка контента со скоростью света
CDN (Content Delivery Network) — это сеть из десятков или сотен серверов по всему миру. Когда пользователь запрашивает файл (изображение, CSS, JS), CDN отдаёт его с ближайшего к пользователю сервера. Пользователь из Берлина получает контент с сервера во Франкфурте. Из Токио — с сервера в Сингапуре. Из Новосибирска — с сервера в Москве или Екатеринбурге. Расстояние, которое проходит сигнал, сокращается в разы — задержка (latency) падает пропорционально.
CDN также снижает нагрузку на основной сервер. Вместо 10 000 запросов к вашему хостингу, 9 500 обрабатывает CDN. Сервер не перегружается, работает стабильнее. Плюс большинство CDN предоставляют дополнительные функции: защиту от DDoS, сжатие изображений на лету, автоматическую конвертацию в WebP/AVIF, оптимизацию JavaScript.
Популярные CDN-провайдеры в 2026 году. Cloudflare — лидер рынка. Бесплатный тариф включает базовое кеширование, DDoS-защиту, HTTP/3, SSL. Минус: серверы в РФ ограничены, для российских пользователей скорость не максимальна. BunnyCDN — дешёвый, быстрый, с отличной географией покрытия и встроенной оптимизацией изображений (Bunny Optimizer). Минус: менее известен, меньше дополнительных функций. Yandex Cloud CDN — для проектов, где 90%+ аудитории в России. Серверы в Москве, СПб, Екатеринбурге, Новосибирске. Быстрее всех для РФ. CDNVideo — российский CDN-провайдер с фокусом на медиаконтент. Для сайтов с аудиторией только в РФ лучший выбор — Yandex Cloud CDN или CDNVideo. Для международных проектов — Cloudflare или BunnyCDN.
Как проверить, работает ли кеширование
Проверка браузерного кеша: откройте Chrome DevTools (F12) → вкладка Network → обновите страницу. Найдите статические файлы (CSS, JS, изображения) в списке. В колонке Size должно быть написано «disk cache» или «memory cache» — это означает, что файл взят из кеша, а не загружен с сервера. Если написано конкретное число (размер в байтах) — файл загружен заново, кеширование не работает.
Проверка серверного кеша: смотрите HTTP-заголовки ответа. Наличие X-Cache: HIT (или CF-Cache-Status: HIT для Cloudflare) означает, что страница отдана из кеша. MISS — промах, страница сгенерирована заново. X-Cache: HIT, TTFB 50 мс — кеширование работает отлично.
Проверка TTFB: PageSpeed Insights (показывает время ответа сервера), WebPageTest (детальная диаграмма waterfall), SerpMax (TTFB в рамках SEO-аудита), curl из командной строки: curl -o /dev/null -s -w '%{time_starttransfer} ' https://vashsite.ru.
Типичные ошибки при настройке кеширования
Ошибка 1: Кеширование HTML на длительный срок. Если установить Cache-Control: max-age=86400 для HTML-страниц, пользователи будут видеть устаревшую версию сутки. Обновили цену товара — посетители видят старую. Решение: для HTML всегда max-age=0, no-cache.
Ошибка 2: Отсутствие версионирования статики. Изменили style.css, но браузеры держат старую версию в кеше. Решение: style.css?v=2.1 или style.a3f8c2.css (хеш в имени).
Ошибка 3: Кеширование персонализированных страниц. Один пользователь видит данные другого, потому что серверный кеш отдал чужую страницу. Решение: исключить из кеша страницы с персональными данными.
Ошибка 4: Кеширование страниц корзины и оформления заказа. Заказы теряются, потому что сервер отдаёт закешированную пустую корзину. Решение: всегда исключать корзину и чек-аут из всех видов кеширования.
Ошибка 5: CDN кеширует страницы с ошибками 500. Сервер упал, отдал 500, CDN закешировал ошибку и показывает её всем. Решение: настроить CDN не кешировать ответы с HTTP-статусами 5xx.
Связка WordPress + WP Rocket + Cloudflare: идеальный рецепт
Для большинства сайтов на WordPress оптимальная связка выглядит так. WP Rocket (плагин кеширования) обеспечивает страничное кеширование, сжатие CSS и JS, lazy loading изображений, предзагрузку кеша, интеграцию с CDN. Cloudflare (бесплатный тариф) обеспечивает CDN, DDoS-защиту, HTTP/3, базовое кеширование статики на уровне сети. Вместе они закрывают все 4 слоя кеширования.
Настройка: установите и активируйте WP Rocket (включите страничное кеширование, сжатие CSS/JS, lazy loading), зарегистрируйтесь в Cloudflare, смените DNS на Cloudflare, в WP Rocket укажите данные Cloudflare (email и API-ключ) для автоматической очистки кеша CDN при обновлении контента. Результат: TTFB падает с 1-2 секунд до 50-150 мс, скорость загрузки по PageSpeed Insights растёт на 20-40 баллов, сервер выдерживает в 5-10 раз больше посетителей.
Часто задаваемые вопросы
Какой CDN выбрать для сайта на WordPress с аудиторией в РФ? Cloudflare (бесплатно) + WP Rocket (платный, от $59/год). Связка даёт кеширование на всех уровнях и стоит недорого. Если скорость из регионов РФ критична — Yandex Cloud CDN вместо Cloudflare.
Можно ли использовать CDN без серверного кеширования? Можно, но это только половина ускорения. CDN ускоряет доставку статики и снижает нагрузку на сервер. Серверное кеширование ускоряет генерацию страниц. Используйте оба.
Как часто нужно чистить кеш? При каждом изменении контента или дизайна. Плагины кеширования для WordPress делают это автоматически при публикации новой записи или обновлении страницы. При ручных правках кода — очищайте кеш вручную.
Замедляет ли Cloudflare сайт для пользователей из РФ? В 2026 году Cloudflare имеет точки присутствия в РФ (Москва, Санкт-Петербург), но их меньше, чем у Yandex Cloud CDN. Для большинства сайтов разница в скорости незаметна. Для проектов, где каждый миллисекунд важен — лучше Yandex Cloud CDN.
Как проверить, что CDN работает? Проверьте HTTP-заголовки ответа. Для Cloudflare: наличие заголовка CF-Cache-Status (HIT — из кеша, MISS — промах) и Server: cloudflare. Проверьте IP-адрес сайта: он должен принадлежать сети CDN, а не вашему хостингу.