Кэширование
Что такое Кэширование?
Кэширование — это механизм временного хранения копий веб-страниц, файлов или результатов запросов на промежуточных уровнях (в браузере пользователя, на сервере или между ними), чтобы при повторном запросе отдавать данные из быстрого кеша, а не генерировать их заново, в отличие от работы без кеша, где каждый запрос выполняет полный цикл обработки (PHP → MySQL → HTML).
Метрики и стандарты
Ключевой KPI эффективности кэширования — Cache Hit Ratio (процент запросов, обслуженных из кеша). Бенчмарк 2026: для статических ресурсов (CSS, JS, изображения) норма 85–95%, для HTML-страниц (серверный кеш) — 70–85% для информационных сайтов, 50–70% для интернет-магазинов с персонализацией. TTFB (Time To First Byte) при попадании в кеш должен быть ниже 30 мс, без кеша — 150–500 мс. Время жизни кеша (TTL) — для статики (браузерный кеш) рекомендуется 1 год (файлы с хешем в имени), для HTML-страниц — от 5 минут до 24 часов. Эффективность сжатия — кешированные страницы должны отдаваться в сжатом виде (Brotli или Gzip), экономя трафик на 60–80%. Инвалидация кеша — после обновления контента старый кеш должен очищаться за <30 секунд для CMS.
Как это работает?
Браузерный кеш (клиентский): при первом запросе файла сервер добавляет HTTP-заголовки (Cache-Control, Expires). Браузер сохраняет файл локально. При повторном посещении браузер проверяет, не истёк ли срок, и загружает файл из диска, минуя сеть. Для динамических страниц браузер может отправить условный запрос с If-Modified-Since — сервер отвечает 304 Not Modified, если страница не менялась, экономя трафик. Серверное кэширование делится на: кеш страниц (сохраняется готовый HTML), кеш объектов (результаты SQL-запросов), кеш Opcache (скомпилированный PHP-код), кеш CDN (геораспределённые копии). В WordPress серверный кеш чаще всего реализуется через плагины, генерирующие статические HTML-файлы на диске, которые веб-сервер отдаёт без запуска PHP.
Почему это важно для бизнеса?
Кэширование напрямую влияет на скорость загрузки сайта — один из трёх Core Web Vitals (LCP, FID, CLS). При отключённом кеше время генерации страницы WordPress может достигать 1–3 секунд, с кешем — 30–100 мс. Ускорение на 0,5 секунды повышает конверсию на 10–15% и снижает отказы на 20%. Браузерный кеш снижает нагрузку на сервер и экономит трафик посетителей (особенно на мобильных сетях). Без серверного кеша даже мощный VPS захлебнётся при 1000 одновременных пользователей (например, после публикации в соцсетях или во время распродажи). Кэширование также снижает затраты на хостинг: сайт с эффективным кешем может работать на сервере в 2–3 раза дешевле.
Пример применения
Интернет-магазин подарков на WooCommerce без кеша: страница товара генерировалась за 1,8 секунды (TTFB), сервер на 2 vCPU утилизировался на 80% при 300 посетителях в час. Включили кеш страниц через LiteSpeed Cache (серверное кеширование) и настроили браузерный кеш для CSS/JS/изображений с TTL 1 год. TTFB упал до 80 мс, нагрузка на сервер снизилась до 15%. При той же мощности сайт выдержал 1200 посетителей в час в пик распродажи. Конверсия выросла с 1,7% до 2,2% за счёт скорости. Отдельно настроили очистку кеша при изменении цены или остатка.
Как это реализуется в WordPress
В WordPress кэширование управляется на трёх уровнях: плагины, настройки сервера и браузерные заголовки. Серверное кеширование страниц лучше всего реализуется плагином LiteSpeed Cache (если сервер LiteSpeed) — он создаёт статические HTML-файлы, управляет их TTL и очисткой. Для Nginx или Apache — WP Rocket (платный) или W3Total Cache (бесплатный, сложный). Кеш объектов (SQL-запросы) настраивается через подключение Redis или Memcached: плагин Redis Object Cache (бесплатный) сохраняет результаты запросов в оперативной памяти. Кеш браузера задаётся через правила в .htaccess (Apache/LiteSpeed) или конфигурации Nginx — плагины кеширования (LiteSpeed Cache, WP Rocket) добавляют эти заголовки автоматически для статических файлов. Opcache (кеш скомпилированного PHP) настраивается только на сервере (через php.ini), но его наличие проверяет плагин Health Check &Troubleshooting. Для CDN-кеширования (геораспределённого) используются плагины Cloudflare (бесплатный) или Bunny.net. Критическая настройка: исключение из кеша страниц корзины, оформления заказа и страницы «Мой аккаунт» для WooCommerce (во избежание показа чужих данных). В LiteSpeed Cache это делается через «Не кешировать страницы с URI». Мониторинг эффективности кеша — плагин Query Monitor показывает, был ли запрос обслужен из кеша, а LiteSpeed Cache отдаёт заголовок X-LiteSpeed-Cache: hit/miss. Внешний мониторинг — Google PageSpeed Insights (анализирует заголовки кеширования).
Связанные понятия
- Cache Hit — запрос, обслуженный из кеша.
- Cache Miss — запрос, не обслуженный из кеша (пришлось генерировать страницу заново).
- TTL (Time To Live) — время жизни кешированной копии до её удаления или обновления.
- Инвалидация кеша (Cache Invalidation) — принудительная очистка кеша при изменении контента.
- КешCDN (Content Delivery Network) — копирование статики на сервера по всему миру для ускорения доставки.
- Кеш объектный (Object Cache) — хранение результатов SQL-запросов в памяти (Redis, Memcached) для ускорения повторных вызовов.
