Кэш — это временное хранилище данных, в котором сохраняются часто запрашиваемые объекты для быстрой выдачи без повторного обращения к источнику.
Что такое кэш в вебе — это набор уровней хранения, через которые проходит каждая страница: браузерный кэш на стороне пользователя, серверный кэш на хостинге, CDN-кэш на промежуточных серверах сети доставки контента и кэш поисковика, где Google и Яндекс хранят последнюю просканированную копию страницы. Корректная настройка кэширования напрямую влияет на скорость загрузки сайта, расход полосы пропускания, нагрузку на сервер и метрики Core Web Vitals — три из пяти главных параметров, по которым Google оценивает скорость пользовательского опыта (LCP, FCP, TTFB), напрямую зависят от того, насколько эффективно работает кэш.
Для управления кэшем используются HTTP-заголовки Cache-Control, ETag и Last-Modified, а очистка кэша браузера выполняется через настройки браузера или принудительной перезагрузкой страницы с Ctrl+F5.
Что такое кэш
Кэш (от англ. cache — «тайник», «склад») — промежуточное хранилище, где система сохраняет копии часто запрашиваемых данных, чтобы при повторном обращении не пересчитывать или не перезагружать их заново. Кеширование как принцип появилось в архитектуре процессоров (кэш L1, L2, L3 между ядром CPU и оперативной памятью) и распространилось на все уровни компьютерных систем — от баз данных до сетей доставки контента.
В вебе кеш сайта используется на каждом этапе доставки страницы пользователю. Браузер кэширует загруженные ресурсы, чтобы не качать их при следующих визитах. CDN кэширует страницы на серверах, ближайших к пользователю географически. Веб-сервер кэширует результаты запросов к базе данных. Поисковик кэширует копии страниц для быстрого показа в выдаче. Корректная настройка каждого слоя кеширования снижает время загрузки сайта в 3–10 раз.
Главный компромисс кеша — баланс между скоростью и актуальностью. Чем дольше живёт кэш, тем быстрее работает сайт и тем выше риск показать пользователю устаревшую версию страницы. Настройка времени жизни кэша (TTL) — отдельная задача SEO-специалиста и веб-разработчика.
Уровни кэширования в вебе
От браузера до базы данных запрос проходит несколько слоёв кэша.
| Уровень | Что кэшируется | Кто управляет |
|---|---|---|
| Браузерный кэш | HTML, CSS, JS, изображения, шрифты — на стороне пользователя | Настраивается через HTTP-заголовки сервера |
| CDN-кэш | Статические файлы и иногда HTML на промежуточных серверах сети доставки | Cloudflare, BunnyCDN, Akamai, KeyCDN, Selectel CDN |
| Кэш реверс-прокси | Готовые HTML-страницы на уровне Nginx или Varnish перед PHP-приложением | Веб-разработчик через конфигурацию сервера |
| Кэш приложения (full-page) | Сгенерированный HTML страницы в файлах или памяти | CMS — плагины WP Super Cache, W3 Total Cache, LiteSpeed Cache |
| Кэш объектов | Результаты функций и переменные в оперативной памяти | Memcached, Redis, APCu |
| Кэш базы данных | Результаты SQL-запросов | MySQL Query Cache (устарел), Redis перед БД |
| Кэш OPcode | Скомпилированный байт-код PHP | OPcache (встроен в PHP 5.5+) |
| Кэш поисковика | Последняя просканированная копия страницы для выдачи | Google и Яндекс — закрытые системы |
На крупных сайтах одновременно работают все восемь уровней. На лендингах из 5 страниц достаточно настройки браузерного и CDN-кэша. На WordPress-сайте среднего размера типичный кеш сайта собирается из связки: браузерный кэш через .htaccess + полностраничный кэш через W3 Total Cache + CDN Cloudflare + OPcache на PHP.
Браузерный кэш
Браузерный кэш (browser cache) — самый близкий к пользователю уровень. Файлы хранятся на жёстком диске устройства и при повторном визите загружаются мгновенно без обращения к серверу. Управление browser cache осуществляется через HTTP-заголовки в ответе сервера.
Основные заголовки управления кэшированием:
- Cache-Control. Главный заголовок современного HTTP. Директивы:
max-age(время жизни в секундах),public/private(можно ли кэшировать на промежуточных серверах),no-store(не кэшировать вообще),must-revalidate(проверять актуальность перед использованием). - ETag. Уникальный идентификатор версии файла. Браузер при повторном запросе отправляет ETag — если файл не менялся, сервер отвечает 304 Not Modified без передачи тела ответа.
- Last-Modified. Дата последней модификации файла. Работает похоже на ETag, но менее точно из-за привязки к секунде.
- Expires. Устаревший заголовок из HTTP/1.0, указывает абсолютную дату истечения кэша. Современные сайты используют Cache-Control max-age вместо Expires.
Рекомендуемое время жизни кэша по типам ресурсов:
| Тип файла | Cache-Control max-age | Комментарий |
|---|---|---|
| HTML страницы | 0 или 300 (5 минут) | Контент может меняться, кэшировать на длительный срок опасно |
| CSS, JS с версионированием | 31536000 (1 год) | При наличии хеша в имени файла (style.abc123.css) |
| Изображения | 2592000 (30 дней) | Картинки обычно не меняются, можно кэшировать надолго |
| Шрифты | 31536000 (1 год) | Шрифты не меняются после загрузки на сайт |
| favicon | 604800 (7 дней) | Редко обновляется |
| Видео и крупные файлы | 2592000 (30 дней) | Высокий размер, длительный кэш экономит трафик |
Серверный кэш
Серверный кэш работает между веб-приложением и клиентом. На уровне CMS-движка (WordPress, 1С-Битрикс, OpenCart) кэширование реализуется через плагины и встроенные модули, которые сохраняют готовый HTML страницы вместо его генерации при каждом запросе.
Популярные решения серверного кэширования для WordPress:
- W3 Total Cache. Самое функциональное бесплатное решение. Полностраничный кэш, минификация CSS/JS, поддержка CDN.
- WP Super Cache. Простой плагин от Automattic. Кэширует страницы в статические HTML-файлы.
- LiteSpeed Cache. Работает только на серверах LiteSpeed Web Server. Самый быстрый вариант на совместимом хостинге.
- WP Rocket. Платный плагин (49 USD/год). Лучший пользовательский интерфейс, ленивая загрузка изображений, оптимизация шрифтов.
На уровне сервера полнопросторный кэш реализуется через Varnish — отдельный реверс-прокси, который стоит перед веб-сервером и отдаёт закэшированные страницы за миллисекунды. Используется на крупных СМИ и e-commerce проектах с миллионами просмотров в сутки.
Кэш объектов (object cache) — отдельный уровень для часто запрашиваемых данных: настройки CMS, результаты сложных запросов, сессии пользователей. Реализуется через Memcached или Redis, которые держат данные в оперативной памяти и отдают за микросекунды.
CDN-кэш
CDN (Content Delivery Network, сеть доставки контента) — это распределённая сеть серверов, расположенных по всему миру. Когда пользователь из Минска запрашивает сайт с американским хостингом, ближайший CDN-узел в Европе отдаёт ему закэшированную версию страницы за 20–50 мс вместо 200–400 мс прямого запроса в США.
Главные CDN-провайдеры для рынка СНГ:
- Cloudflare. Бесплатный план для базовой защиты и кэширования. Платные планы — от 20 USD/мес. Поддержка узла в Москве, ближайшие к Беларуси узлы — Варшава, Хельсинки, Берлин.
- BunnyCDN. Платный CDN с почасовой тарификацией. Стоимость трафика — от 0.005 USD/ГБ. Один из самых дешёвых вариантов для среднего сайта.
- Selectel CDN. Российский CDN с серверами в Москве и Санкт-Петербурге. Низкая задержка для русскоязычной аудитории.
- KeyCDN. Швейцарский провайдер, простая интеграция. Стоимость от 0.04 USD/ГБ.
CDN кэширует прежде всего статические ресурсы: изображения, CSS, JavaScript, шрифты, видео. Кэширование HTML возможно, но требует осторожности — устаревшая копия динамической страницы в CDN может показывать пользователю старые цены или несуществующие товары.
Кэш поисковика
Google и Яндекс хранят копии просканированных страниц. Эти копии используются для двух задач: показ в выдаче, когда оригинальный сайт временно недоступен, и анализ изменений между визитами краулера.
Доступ к кэшированной копии:
- Google. Оператор
cache:в поисковой строке:cache:cropas.by. Также раньше работала кнопка «Сохранённая копия» в трёх точках сниппета — Google планомерно убирает эту функцию в 2024 году. - Яндекс. Ссылка «Сохранённая копия» в стрелке вниз рядом с результатом поиска.
- Wayback Machine. Архив
archive.orgхранит исторические копии страниц на дату обхода — не настоящий кэш поисковика, а независимый сервис.
Управление кэшем поисковика осуществляется через мета-теги. Для запрета сохранения копии страницы:
<meta name="robots" content="noarchive">Эта директива не запрещает индексацию — страница остаётся в выдаче, но без ссылки на сохранённую копию. Используется на сайтах с регулярно меняющимся ценным контентом (СМИ за платным доступом, биржи, новостные ресурсы), где показ старой копии нежелателен.
Кэш и SEO
Кэширование влияет на SEO через несколько каналов:
- Скорость загрузки. Правильный кэш сокращает TTFB с 1500 мс до 50–200 мс, LCP с 4–6 секунд до 1.5–2.5 секунд. Это прямой фактор Core Web Vitals.
- Краулинговый бюджет. Быстрый ответ сервера позволяет Googlebot и YandexBot сканировать больше страниц за тот же временной интервал. Для крупных сайтов с миллионами URL это критично.
- Стабильность под нагрузкой. Сайт со включённым кэшем выдерживает наплыв трафика без падений. Падения и долгое ответ сервера приводят к понижению в выдаче — поисковики выводят из индекса страницы с длительной недоступностью.
- Поведенческие сигналы. Быстрая загрузка снижает показатель отказов, увеличивает глубину просмотра — оба сигнала косвенно влияют на ранжирование.
Антипаттерн — кэш HTML с длительным TTL на динамических страницах. Если в кэше CDN зафиксирована старая цена товара и она показывается пользователям несколько часов после обновления, это приводит к жалобам и потере доверия. Решение — короткий TTL на HTML (1–5 минут) с агрессивным кэшем для CSS/JS/изображений (от 30 дней до 1 года).
Очистка кэша
| Уровень кэша | Как очистить |
|---|---|
| Браузерный (на стороне пользователя) | Ctrl+F5 (Windows) или Cmd+Shift+R (macOS) — принудительная перезагрузка с обходом кэша |
| Браузерный (полная очистка) | Настройки браузера → История → Очистить данные просмотра → выбрать «кэшированные изображения и файлы» |
| Серверный (WordPress) | Панель плагина кэширования → кнопка «Empty Cache» или «Очистить кэш» |
| OPcache (PHP) | Перезапуск PHP-FPM или вызов функции opcache_reset() |
| CDN Cloudflare | Панель управления → Caching → Configuration → Purge Cache |
| Поисковик Google | Search Console → URL Inspection → Request Indexing после изменений |
| Поисковик Яндекс | Яндекс.Вебмастер → Индексирование → Переобход страниц |
Для разработчиков и SEO-специалистов удобно использовать комбинацию «Ctrl+F5» при тестировании изменений: эта комбинация обходит браузерный кэш, но не очищает кэш CDN или сервера. Для полной проверки изменений нужно последовательно очистить все уровни — начиная с серверного кэша и заканчивая браузером.
Часто задаваемые вопросы
Чем отличается «кэш» от «кеш»?
Это два варианта транслитерации одного и того же английского cache. По нормам русского языка корректнее «кеш» — однокоренное с «кешировать», без удвоения. На практике в IT-индустрии чаще используется «кэш» — особенно в технической литературе и интерфейсах. В одной статье или документации стоит выбрать один вариант и придерживаться его последовательно.
Может ли кэш навредить SEO?
Да, если настроен неправильно. Слишком длинный TTL на HTML страниц приводит к показу устаревшей информации, что вредит пользовательскому опыту. Кэш без правильных заголовков Vary может показывать одну версию страницы разным пользователям (мобильным и десктопным, авторизованным и гостям), искажая выдачу контента. Кэш поисковика, не обновлённый после правок страницы, приводит к разрыву между актуальным контентом и тем, что Google или Яндекс считают актуальным.
Сколько живёт кэш Google?
Зависит от частоты сканирования страницы. Для новостных сайтов с высоким приоритетом кэш обновляется каждые 1–6 часов. Для крупных коммерческих сайтов — 1–7 суток. Для редко обновляемых страниц — раз в месяц или реже. Принудительное обновление — через URL Inspection в Search Console с запросом переобхода.
Что такое HTTP-заголовок Vary?
Vary указывает, по каким признакам запросов нужно создавать отдельные версии кэша. Например, Vary: User-Agent заставляет сервер хранить разные кэшированные версии для мобильных и десктопных клиентов, Vary: Accept-Encoding — отдельные версии для клиентов с поддержкой gzip и без. Без Vary CDN может выдавать мобильную версию HTML десктопному пользователю.
Что делать, если плагин кэширования ломает сайт?
Стандартная последовательность диагностики: отключить плагин кэширования, проверить работу сайта без него, очистить кэш сервера и CDN, проверить совместимость плагина с версией CMS и других плагинов. Самые частые конфликты — плагины оптимизации CSS/JS, которые ломают вёрстку при минификации, и плагины полностраничного кэша, конфликтующие с динамическими элементами (корзина, личный кабинет).
Нужен ли CDN для сайта с белорусской аудиторией?
Зависит от текущей скорости и размера аудитории. Если сервер хостинга в Минске или Москве, а посетители — белорусы и россияне, прирост от CDN будет 50–200 мс — заметный, но не критичный. Если сервер в Европе или США, CDN даёт прирост в 300–800 мс и однозначно оправдан. Бесплатный план Cloudflare покрывает базовые потребности большинства белорусских сайтов без затрат.
Как проверить, что кэширование настроено правильно?
Через инструмент PageSpeed Insights (Google), Lighthouse (встроен в Chrome DevTools) или WebPageTest. Все три показывают, какие ресурсы кэшируются, какие нет, и сколько времени тратится на ожидание ответа сервера. Дополнительно — раздел Network в DevTools браузера: повторная загрузка страницы должна показывать пометку «from disk cache» или «from memory cache» рядом с большинством статических ресурсов.




