Кеширование сайта
Что такое Кеширование сайта?
Кеширование сайта — это многоуровневый механизм сохранения готовых копий HTML-страниц, статических ресурсов и результатов SQL-запросов, который исключает повторную генерацию контента при последующих идентичных запросах.
С ключевым KPI на 2026 год — Time to First Byte (TTFB) для закэшированной страницы не должен превышать 100 миллисекунд на выделенном VPS при 95-м процентиле запросов. Снижение TTFB с типичных 700–800 мс до этого порога одномоментно переводит оценку Core Web Vitals в «зелёную» зону для всего сайта.
Как это работает?
Браузер или промежуточный сервер сохраняет результирующий ответ, проверяет валидность по заголовкам Cache-Control/Expires и, не обращаясь к серверу приложений, мгновенно отдаёт копию. На серверном уровне обработанный PHP-скрипт записывается в быстрое хранилище (RAM или SSD) и выдаётся без запуска интерпретатора. Объектный кэш помещает результаты запросов к базе данных в оперативную память, сокращая взаимодействие с MySQL до единичных обращений. Параллельно OPcache хранит предварительно скомпилированный байт-код PHP, снимая фазу парсинга.
Метрики и стандарты
Помимо целевого TTFB ≤100 мс, коэффициент попадания (hit ratio) объектного кэша Redis должен быть выше 95%, а доля промахов — менее 5%. Для CDN-кэширования эффективным считается hit ratio от 90% и выше. Тайминг жизни (TTL) для HTML-страниц, кэшируемых на сервере, рекомендуется выставлять в диапазоне 600–1800 секунд, для статики с версионированием через хэш — 1 год (максимальное значение max-age=31536000). Валидация актуальности кэша после обновления контента должна выполняться автоматически через хуки WordPress.
Почему это важно для бизнеса?
Кеширование напрямую определяет скорость загрузки сайта, воздействуя на ключевой фактор ранжирования Page Experience и конверсию. Ускорение ответа сервера на каждые 100 мс даёт прирост мобильной конверсии на 1–2% в электронной торговле. Отсутствие кэша при пиковых нагрузках ведёт к исчерпанию ресурсов PHP-FPM, таймаутам и потере заказов, тогда как эффективное кэширование позволяет тому же серверу выдерживать 10-кратное увеличение трафика.
Пример применения
Новостной портал на WordPress после публикации вирусного материала столкнулся с падением сайта при 300 одновременных посетителях — TTFB достигал 4200 мс, процессор утилизировался на 100%. Внедрение полностраничного кэширования через Nginx FastCGI Cache совместно с WP Rocket и прогрев кэша снизило TTFB до 75 мс, а нагрузка CPU упала до 12%. Количество одновременно обслуженных сессий выросло в 15 раз, органический трафик увеличился на 22% за счёт возврата страниц в индекс после нормализации LCP.
Как это реализуется в WordPress?
Используются комбинации уровней. Плагины (WP Rocket, FlyingPress, LiteSpeed Cache) реализуют страничный кэш и браузерное кэширование, автоматически исключая динамические страницы корзины, чекаута и админ-панели. Объектный кэш активируется drop-in-файлом object-cache.php и подключением Redis через Redis Object Cache. На сервере Nginx настраивается fastcgi_cache с разделением зон, а при использовании LiteSpeed Enterprise — встроенный LSCache с той же логикой исключений. Чистка кэша при публикации или обновлении записи выполняется через хук save_post. Мониторинг попаданий и времени ответа ведется через Query Monitor, New Relic и отчёт Core Web Vitals в Google Search Console.
Распространённые ошибки
Глобальное кэширование страниц для авторизованных пользователей без фрагментного кэширования выдаёт персонализированные данные (имя, корзину) всем посетителям. Кэширование страниц оформления заказа и корзины разрушает сессионную логику WooCommerce и приводит к показу нулевых или чужих товаров. Отсутствие автоматического сброса кэша после обновления статьи оставляет посетителям устаревший контент на часы.
Связанные понятия
- Page Cache (Страничный кэш) — сохранение полного HTML ответа для анонимных пользователей.
- Object Cache (Объектный кэш) — хранение произвольных данных и результатов запросов в оперативной памяти.
- CDN (Content Delivery Network) — географически распределённая сеть доставки контента с кэшем на граничных узлах.
- TTL (Time to Live) — период актуальности кэшированной копии.
- Cache Invalidation (Инвалидация кэша) — механизм принудительного удаления устаревших данных.
- OPcache — кэш байт-кода PHP, ускоряющий выполнение скриптов без повторной компиляции.
