
Кэширование (caching) - это технология временного хранения часто запрашиваемых данных в быстром промежуточном хранилище (кэше), чтобы при повторных запросах отдавать их без повторного выполнения тяжелых операций. Без кэширования каждый посетитель заставлял бы сервер заново генерировать страницу, выполнять запросы к базе данных и обрабатывать статические файлы. Это приводит к высоким задержкам (latency), нагрузке на CPU и памяти, а также к ухудшению Core Web Vitals - показателей, влияющих на ранжирование в поисковых системах.
Чуть ниже детально разберем, как работает кэширование на разных уровнях: от браузера пользователя до серверных решений (Redis, Varnish), CDN и кэша баз данных. Вы узнаете, какие HTTP-заголовки управляют кэшированием, как настроить кэш для WordPress, OpenCart или 1С-Битрикс, и как избежать проблем с "свежестью" контента. Материал содержит технические примеры, расшифровки терминов и практические рекомендации.
Кэш (cache) - это временное хранилище данных, которые были запрошены ранее, с целью более быстрого доступа к ним при повторном запросе. В веб-технологиях кэш может располагаться на разных уровнях: в оперативной памяти сервера, на диске, в браузере пользователя, на промежуточных узлах CDN. Основная идея: вместо того чтобы каждый раз выполнять тяжелую работу (генерировать HTML-страницу, выполнять SQL-запрос, читать файл с диска), мы один раз сохраняем результат и затем многократно его отдаем.
Как выглядит процесс без кэширования (классическая схема):
Время ответа (TTFB, Time To First Byte) в такой схеме может составлять 300–1000 мс (и более), а полная загрузка страницы - 2–5 секунд. При высоком трафике сервер начинает "задыхаться", так как каждый запрос требует полного цикла обработки.
Как работает кэширование:
Результат: TTFB при cache hit может составлять всего 1–10 мс, а время полной загрузки страницы сокращается в 3–10 раз. Процессор и память сервера почти не нагружаются, что позволяет обслуживать в сотни раз больше одновременных посетителей.
Техническая аналогия: В программировании кэш часто реализуют как ассоциативный массив (ключ → значение). Ключом может быть URL страницы, а значением - HTML-код. При запросе система делает $html = cache_get($url); if ($html) { echo $html; exit; } else { $html = generate_page(); cache_set($url, $html, 3600); echo $html; }
Какие данные можно кэшировать?
Что такое "горячий" и "холодный" кэш?
Метрики эффективности кэша:
Для мониторинга используются логи веб-сервера (заголовок X-Cache: HIT/MISS), а также специализированные инструменты (Varnishstat, Redis INFO).
Почему кэширование не всегда применимо?
Для таких случаев существуют гибридные стратегии: кэширование для неавторизованных, Edge Side Includes (ESI), ленивая загрузка динамических блоков через AJAX.
Кэширование можно разделить на несколько уровней, каждый из которых решает свою задачу. Для максимальной скорости их комбинируют.
Основные виды кэша:
Браузерный кэш управляется специальными заголовками, которые сервер добавляет в ответ. Понимание этих заголовков необходимо для правильной настройки.
Ключевые заголовки кэширования:
Пример правильной настройки для статики (CSS, JS, изображения): Cache‑Control: public, max-age=31536000 (год), immutable. Это говорит браузеру кэшировать файл на год и не перепроверять. Для HTML страниц, которые обновляются чаще, можно указать max-age=600 и добавить валидацию по ETag или Last‑Modified.
Даже если браузерный кэш пуст или страница не кэшируется на клиенте, серверный кэш может отдать заранее сгенерированную копию, не запуская PHP или другой интерпретатор. Это самый эффективный способ снизить нагрузку на бэкенд.
Nginx: Встроенный микро-кэш. Достаточно добавить в конфиг: proxy_cache_path /var/cache/nginx levels=1:2 keys_zone=mycache:10m max_size=1g; proxy_cache mycache;. Nginx будет хранить ответы от вышестоящего сервера и отдавать их из кэша по ключу (обычно $scheme$proxy_host$request_uri). Время жизни кэша задается директивой proxy_cache_valid 200 1h;.
Apache: Модули mod_cache, mod_cache_disk, mod_cache_socache. Включаются и настраиваются через .htaccess или vhost.
Varnish Cache: Специализированный reverse-proxy кэш с собственным языком конфигурации VCL. Varnish может хранить миллионы объектов в памяти, поддерживает "горячую" инвалидацию (очистку) кэша по тегам (purge / ban). Идеален для высоконагруженных проектов (интернет-магазины, новостные порталы).
Базы данных - частое узкое место. Кэширование запросов позволяет избежать повторного выполнения сложных SELECT, JOIN, GROUP BY.
Популярные in-memory хранилища:
Пример типового кэша в приложении на PHP: перед выполнением запроса к БД проверяется наличие ключа в Redis, например, "user_123_profile". Если есть - берется из кэша, если нет - выполняется SQL, результат сериализуется и сохраняется в Redis на 10 минут. Это снижает количество запросов к БД в 10-100 раз.
MySQL ранее имел Query Cache, но он был удален в версии 8.0 из-за проблем с инвалидацией. Современный подход - кэширование на уровне приложения с помощью Redis/Memcached.
Статические файлы (CSS, JS, шрифты, изображения) не меняются между запросами. Их кэширование должно быть максимально агрессивным. Дополнительно их можно раздать через CDN - сеть серверов по всему миру, которая кэширует контент на edge-узлах.
Как работает CDN: пользователь из Владивостока запрашивает картинку с вашего сайта. DNS направляет его на ближайший узел CDN (например, в Новосибирске). Если там есть копия - отдается мгновенно. Если нет - узел скачивает оригинал с вашего сервера (в Москве), кэширует и отдает пользователю. Следующие запросы будут уже из кэша. При этом время загрузки сокращается с сотен миллисекунд до 10-30 мс. CDN также умеет сжимать изображения автоматически, оптимизировать CSS, минифицировать JS.
Для каждой CMS существуют готовые решения, упрощающие настройку кэша без ручного редактирования конфигов сервера.
WordPress:
OpenCart:
1С-Битрикс:
Обратная сторона кэширования - устаревший контент. Если вы изменили статью или товар, а кэш продолжает отдавать старую версию, пользователи видят неактуальные данные. Инвалидация кэша - процесс удаления или обновления устаревших записей.
Стратегии инвалидации:
Core Web Vitals (основные веб-показатели) - это набор метрик, разработанный Google для оценки пользовательского опыта взаимодействия со страницей. С 2021 года они являются частью алгоритмов ранжирования в поисковой выдаче (наравне с мобильной адаптацией и безопасным соединением).
Рассмотрим каждую метрику подробно, с примерами и практическими советами.
Что такое LCP: Это время (в миллисекундах) от начала загрузки страницы до момента, когда основной контент становится видимым. Обычно LCP-элементом является крупное изображение, видео-постер, блок текста или фоновый элемент. Google считает хорошим LCP ≤ 2,5 секунды, требует улучшения при значении 2,5-4 секунды и плохим - >4 секунды.
Как кэширование ускоряет LCP:
Пример оптимизации: Типичный интернет-магазин до кэширования имел LCP 3,8 секунды (из-за большого изображения-баннера и медленного TTFB). После включения кэша страниц в Nginx (proxy_cache), установки CDN и долгого кэширования изображений LCP сократился до 1,9 секунды.
Что такое FID: Это время между первым действием пользователя (клик по ссылке, нажатие на кнопку, касание экрана) и моментом, когда браузер начинает обрабатывать соответствующий обработчик события. Google рекомендует FID ≤ 100 мс. Задержка возникает, если основной поток браузера занят загрузкой и выполнением JavaScript, CSSOM, обработкой логов аналитики.
Как кэширование помогает:
Пример: На странице новостного портала загружалось 2 МБ JavaScript, включая аналитику, видеоплеер и соц. виджеты. Без кэша FID составлял 250 мс. После добавления Cache‑Control: max-age=31536000 для статики и настройки Service Worker кэша, при втором визите FID упал до 50 мс.
Что такое CLS: Это сумма всех неожиданных сдвигов элементов на странице в процессе её загрузки. Например, когда вы читаете статью, и внезапно подгружается рекламный баннер, сдвигая текст вниз - это и есть layout shift. Google требует CLS ≤ 0,1. Хорошее значение - ниже 0,1; плохое - выше 0,25. CLS портит пользовательский опыт и увеличивает процент отказов.
Как кэширование влияет на CLS:
Важное замечание: CLS почти не зависит от кэширования напрямую, но совместное использование кэша страниц и указание атрибутов ширины/высоты для изображений делает сайт стабильным. Google PageSpeed Insights часто рекомендует кэшировать ресурсы именно для улучшения LCP и FID, а CLS лечится вёрсткой и резервированием места.
Хотя TTFB (Time To First Byte) и FCP (First Contentful Paint) не входят в Core Web Vitals, они тоже влияют на восприятие скорости и коррелируют с LCP.
Современные SEO-инструменты (Google PageSpeed Insights, Lighthouse, Web Vitals JavaScript API) измеряют реальные значения метрик для реальных пользователей (field data) и лабораторные (lab data). Кэширование - один из немногих методов, который одновременно улучшает и лабораторные, и полевые показатели.
Важно также регулярно мониторить покрытие кэша (hit ratio) через заголовки (X-Cache, CF-Cache-Status) и логи. Низкий hit ratio (<80%) означает, что кэш настроен неправильно или контент слишком динамичен - тогда стоит пересмотреть TTL или стратегии инвалидации.
Рассмотрим три типовых сценария, чтобы закрепить понимание.
Блог (WordPress): Установлен WP Rocket, включена опция кэширования страниц, оптимизация CSS/JS и Lazy Load. Дополнительно настроен кэш браузера через .htaccess (ExpiresActive On). Время загрузки главной падает с 1.8 с до 0.4 с.
Интернет-магазин (OpenCart + Varnish): Varnish кэширует категории и карточки товаров для неавторизованных пользователей. При добавлении товара в корзину (динамическая часть) кэш отключается для этих страниц через ESI (Edge Side Includes). Благодаря Redis кэшируются сессии и запросы к БД. Скорость страницы повышается с 2.5 с до 0.7 с.
Корпоративный портал на 1С-Битрикс: Включен композитный режим, кэш CDN через NGENIX, memcached для кэша 1С-Битрикс. При использовании композита страница сначала показывает кэшированный HTML, а затем догружает персонализированные блоки (корзина, имя пользователя). Это снижает нагрузку на сервер в 10 раз.
Неправильное кэширование может принести больше вреда, чем пользы. Перечислим типичные ошибки.
Ошибки и решения:
Кэширование - не панацея, но без него современный высоконагруженный проект невозможен. Оптимальная стратегия включает комбинацию:
Рекомендуем начать с измерения текущей скорости (Google PageSpeed Insights, Lighthouse, WebPageTest), затем внедрить CDN и кэш страниц, далее - кэш объектов. После каждого шага замеряйте улучшения. Помните: кэширование должно быть прозрачным для пользователей и не приводить к показу устаревших данных. Регулярно мониторьте логи кэша (hit ratio, miss ratio) и корректируйте TTL.
Использование описанных подходов позволит ускорить ваш сайт в 3-10 раз, снизить расходы на хостинг и улучшить позиции в поисковых системах.
Cloudflare окончательно заблокирован в РФ ещё летом 2025 года.
Функцию фильтрации ботов Cloudflare взял на себя российский антибот Killbot.
Принцип работы отличается от привычного, отслеживаются не знакомые всем при настройке других антибот решений параметры (входящие IP адреса, AS подсети ботов, User Agent и прочее, всё это легко подделывается), а уникальные для каждого набора браузеров слепки.
По отличию оригинального браузера от модифицированного, тот или иной заход определяется либо как заход реального посетителя, либо как заход бота.
Чтобы не повторяться - расписывал более подробно в статьях:
Попробовать бесплатно. При регистрации в Killbot введите промокод
promo13
и получите месяц тестирования платного тарифа Killbot (фильтрация трафика, 1000 руб) и Ads (отключение показа рекламы поведенческим ботам, 1000 руб) в качестве бонуса. Этого вам хватит на то, чтобы понять, подходит вам данное решение, или нет. На данный момент - в Рунете нет более достойной альтернативы, по соотношению цена-качество. Срок действия промокода ограничен по времени, куда-то записывать его нет смысла. В следующий раз промокод уже будет другой, поэтому использовать его нужно сейчас, когда вы читаете этот текст. Промокод действует только в форме регистрации. Если аккаунт уже создан - создайте новый, на другой почте, и при регистрации в последнем поле введите промокод.
Подпишитесь на Telegram канал / MAX для того, чтобы всегда быть в курсе последних новостей и обновленных настроек для защиты от ботов, а также оперативно получать новые материалы, выходящие на antibot24.ru

Автор статей: Сергей (AntiBot24). Эксперт в области фильтрации поведенческого трафика, настройки антибот систем. Высший рейтинг на Kwork, более 680 отзывов, 100% заказов успешно сдано, 56% повторных заказов. Пишу подробные статьи, инструкции по фильтрации ботов в своем блоге antibot24.ru
Всегда нужно иметь в виду, что те советы, которые вы прочли в статьях - это лишь часть настроек, которые я делаю при профессиональной экспертной настройке фильтрации поведенческих ботов. Все остальное - это непубличные профессиональные секреты. Любая информация, становящаяся общедоступной - достаточно быстро устаревает и перестает быть эффективной.
Если вы столкнулись с повышенной роботностью в Яндекс метрике, увеличением числа прямых заходов, увеличением количества отказов - вы всегда можете заказать у меня настройку Killbot.