Что такое кэш?
Кэш (кэширование, caching) — это временное хранение копий данных ближе к тому, кто ими пользуется, чтобы не запрашивать их заново. Для сайта это означает: вместо того чтобы собирать страницу заново на каждый визит, система отдаёт заранее подготовленную копию.
Кэширование работает на всех уровнях пути от посетителя до сервера, и в продуманной связке эти уровни дают большую часть выигрыша в скорости:
- кэш браузера: браузер хранит статику (картинки, CSS, JS, шрифты) и не скачивает её повторно при следующих визитах;
- кэш страниц на сервере: готовый HTML страницы сохраняется и отдаётся без сборки; вместо десятых долей секунды на генерацию страница отдаётся за уровень статики;
- кэш CDN: копии статики и страниц лежат на узлах ближе к посетителю;
- кэш DNS: домен уже переведён в адрес, первый шаг соединения пропускается.
Как кэш ускоряет сайт
Самая дорогая часть загрузки страницы — её сборка: запросы к базе данных, работа темы и плагинов. Кэш страниц устраняет её целиком. Практический пример: сборка страницы без кэша занимает 0,13–0,37 секунды, а отдача готовой копии через nginx занимает 0,15 секунды, как у простой картинки. На фоне этого выигрывает и время ответа сервера, а за ним время до отрисовки и LCP.
Кэш браузера и CDN снимают нагрузку с сервера: повторные визиты и часть запросов вообще до него не доезжают.
Когда кэш вредит
Кэш отдаёт копию, а не живую страницу, поэтому его главная ловушка: посетитель видит устаревшее. Типичные ситуации:
- правку статьи внёс, а на сайте она не появилась: копия в кэше осталась старой;
- страницу удалили, а её копия продолжает отдаваться из кэша (проверяйте и удалённые страницы, не только отредактированные);
- обновили файл стиля или скрипта, но браузеры посетителей держат старую версию из своего кэша: решается версией в адресе файла (?ver=);
- служебные и некэшируемые страницы (корзина, личный кабинет, результаты оплаты) в кэш не должны попадать, иначе чужой человек увидит чужие данные.
Отсюда рабочее правило: любое изменение на сайте заканчивается сбросом кэша. После правки одной страницы достаточно сбросить её копию; после правки меню или шаблона, которые видны на всех страницах, сбрасывают кэш сайта целиком и заново прогревают предзагрузкой.
Как управлять кэшем
- срок жизни (TTL): сколько живёт копия; для страниц подбирается баланс между скоростью и свежестью;
- заголовки Cache-Control: браузеру указывают, что и сколько хранить; статике задают срок в год с версией в адресе файла, HTML держат коротко;
- предзагрузка: сборщик кэша заранее готовит копии всех страниц, и первый посетитель тоже получает быстрый ответ;
- исключения: корзина, оплата, поиск и вход пользователей не кэшируются никогда;
- проверка: отдаётся страница из кэша или собирается заново, видно по заголовкам ответа (X-Cache) и комментариям в HTML.
Связь кэша с другими показателями
Кэш лежит в основании всей цепочки скорости: он снижает время ответа сервера, приближает первую отрисовку и LCP, разгружает сервер и работает в паре с CDN. На конверсию влияние опосредованное: чем быстрее первый экран, тем меньше посетителей теряется до контента.
Итоги
Кэш это копия данных рядом с пользователем: в браузере, на сервере, в CDN и в DNS. Сайт ускоряется кэшем страниц сильнее, чем любой другой настройкой, но копия требует дисциплины: сброс после правок и исключения для служебных страниц. Настроили, прогрели, проверили заголовки, и скорость работает на вас.