Перейти к содержимому
К
  • Главная
  • Блог
  • Кэширование сайта: как оно ускоряет страницы и к...
Хостинг

Кэширование сайта: как оно ускоряет страницы и когда мешает

Кэширование — это сохранение готового результата, чтобы не собирать его заново при каждом запросе. Сайт один раз формирует страницу, запоминает её и отдаёт следующим посетителям уже готовой: страницы открываются быстрее, а сервер выдерживает больше людей. Обратная сторона — устаревшие данные: если кэш не сбросить после правок, посетители видят старую версию. Ниже — какие бывают уровни кэша, что нельзя кэшировать, как его очищать и как настроить без сюрпризов.

«Мы поправили цену, а на сайте старая». «Разработчик говорит: очистите кэш». «После включения кэширования сайт стал летать, но корзина сошла с ума». Все три истории — про одно и то же явление, которое ускоряет большинство сайтов и одновременно вызывает больше всего непонимания.

Что такое кэш простыми словами

Каждый раз, когда посетитель открывает страницу, сайт собирает её заново: обращается к базе данных, вытаскивает товары, считает цены, подставляет шаблон. На это уходят десятые доли секунды и ресурсы сервера. Кэш — это готовый результат, сохранённый после первой сборки. Следующий посетитель получает уже собранную страницу, и сервер почти не работает.

Аналогия — кухня. Можно каждому гостю варить бульон с нуля, а можно сварить кастрюлю утром и разливать. Второе быстрее в разы, но если рецепт поменялся днём, гости до вечера будут получать старый бульон.

У любого кэша есть два параметра. Срок жизни — сколько времени сохранённая копия считается свежей. И правило сброса — событие, после которого копию выбрасывают досрочно: например, сохранение товара в админке. От того, как заданы эти два параметра, зависит, будет кэш помогать или мешать.

Какие бывают уровни кэширования

Кэш живёт в нескольких местах, и это главная причина путаницы. Когда вы «очистили кэш», а изменения не появились, обычно очищен один уровень, а старая версия лежит на другом.

УровеньЧто хранитГде находитсяКак сбросить
Кэш браузераКартинки, стили, скриптыНа устройстве посетителяCtrl+F5 или очистка данных браузера — только у себя
Кэш страницГотовый HTML страницыНа сервере: в памяти или на дискеКнопка в плагине, админке или панели хостинга
Кэш объектов и запросовРезультаты тяжёлых запросов к базеВ Redis или Memcached на сервереИз админки сайта или командой разработчика
Кэш кодаПодготовленный к выполнению код PHPВ памяти сервера (OPcache)Сбрасывается при обновлении файлов или перезапуске PHP
CDNКопии файлов, иногда страницНа серверах сети доставкиВ панели CDN-провайдера
  • Кэш браузера. Картинки, стили и скрипты сохраняются на компьютере посетителя, чтобы не качать их повторно. Поэтому второй визит на сайт всегда быстрее первого.
  • Кэш страниц на сервере. Готовый HTML страницы хранится в памяти или на диске. Именно его включают плагины вроде WP Super Cache, и именно он даёт ускорение в 5–10 раз.
  • Кэш базы данных и объектов. Результаты тяжёлых запросов запоминаются в Redis или Memcached — программах, которые держат данные в оперативной памяти. Важен для магазинов с большими каталогами.
  • CDN. Копии файлов разбросаны по серверам в разных городах, посетитель получает их с ближайшего. Подробно — в статье что такое CDN.

Что даёт кэширование сайту

  • Быстрый ответ сервера. Готовую страницу не нужно собирать — она отдаётся сразу. Это напрямую улучшает время до первого байта, с которого начинается загрузка.
  • Запас на всплески. Реклама, рассылка или сезон приводят сразу много людей. Сервер, который отдаёт страницы из кэша, выдерживает кратно больше посетителей на том же тарифе.
  • Экономия на хостинге. Часто включить кэш дешевле, чем переезжать на тариф выше. Если сервер тормозит, сначала проверяют именно это — порядок диагностики есть в статье о том, почему тормозит VPS.
  • Лучше показатели скорости. Быстрый ответ сервера помогает уложиться в нормы Core Web Vitals, которые учитывают поисковые системы.

Кэш не единственный способ ускорения и не заменяет остальные: тяжёлые картинки и лишние скрипты он не вылечит. Полный список мер — в чек-листе как ускорить сайт.

Что нельзя кэшировать

Всё, что зависит от конкретного человека: корзина, личный кабинет, страница оформления заказа, результаты поиска с фильтрами, админка. Если закэшировать корзину, один покупатель увидит товары другого. Звучит как страшилка, но мы разбирали и такой случай: магазин на WordPress включил агрессивное кэширование «на всё» и неделю получал жалобы, что в корзине чужие товары.

Хороший плагин или настройка кэша исключают такие страницы автоматически. Плохая — кэширует всё подряд, и внешне сайт выглядит быстрым ровно до первого заказа.

Отдельная история — блоки, которые меняются часто: остатки на складе, цены по акции, счётчик товаров в корзине в шапке сайта. Саму страницу при этом кэшировать можно, а такие блоки подгружают отдельным запросом уже после её открытия. Это задача разработчика, но владельцу полезно знать, что «быстро» и «актуально» совмещаются.

Почему после правок на сайте ничего не меняется

Правильно настроенный кэш сбрасывается сам, когда вы сохраняете страницу или товар. Но бывают сценарии, когда он этого не делает:

  • цену изменили через импорт из 1С, а не через админку, и сайт «не знает», что данные обновились;
  • сменили картинку, не поменяв её имя, и браузер посетителя показывает старую;
  • включён кэш на уровне хостера или CDN, о котором вы не знаете;
  • поправили стили или скрипты, а у файла остался прежний адрес — браузеры держат старую версию до конца срока хранения.

Рабочее правило: если не видите свои изменения, откройте сайт в режиме инкогнито. Если там всё новое — виноват кэш вашего браузера. Если и там старое — кэш сервера, и его нужно сбросить в админке или панели хостинга. Для магазинов с обменом это особенно важно: как устроена выгрузка цен и остатков, мы разбирали в статье про интеграцию магазина с 1С.

Как очистить кэш сайта: идём по уровням

  1. Откройте страницу в режиме инкогнито или нажмите Ctrl+F5 — это обновление страницы в обход кэша браузера. Если изменения появились, дальше идти не нужно: у новых посетителей всё уже в порядке.
  2. Сбросьте кэш страниц в админке сайта: в плагине кэширования или в настройках системы управления есть кнопка вроде «Очистить кэш» или «Сбросить кэш».
  3. Загляните в панель хостинга. У части хостеров есть собственное кэширование на уровне веб-сервера, и сбрасывается оно отдельной кнопкой.
  4. Если подключён CDN — очистите кэш в его панели: целиком или для изменённых файлов.
  5. Если старая версия держится только у отдельных посетителей, дело в кэше их браузеров. Исправляется сменой версии файла, а не просьбой «обновить страницу».

Сбрасывать всё подряд «для профилактики» не стоит. После полной очистки первые посетители получают страницы, собранные с нуля, и на нагруженном сайте это заметный провал в скорости.

Как настроить кэширование: пошагово

  1. Начните с кэша страниц для гостей, не вошедших в аккаунт. Это 90% пользы при минимуме риска.
  2. Убедитесь, что корзина, кабинет и оформление заказа исключены.
  3. Настройте автоматический сброс при обновлении контента и после обмена с 1С.
  4. Для картинок и стилей включите долгий кэш браузера, а при обновлении файлов меняйте их версию в имени.
  5. Если на сайте большой каталог или сложные фильтры, добавьте кэш объектов — для этого на сервере должен быть Redis или Memcached. На виртуальном хостинге он доступен не на каждом тарифе.
  6. Проверьте сайт после включения как покупатель: положите товар в корзину, оформите тестовый заказ.
  7. Проверьте сайт как редактор: измените цену или текст и убедитесь, что посетитель без авторизации видит новую версию.

На какой срок кэшировать разное содержимое

Что кэшируемРазумный срокКомментарий
Картинки, шрифтыОт месяца до годаМеняются редко; при замене меняйте имя файла
Стили и скрипты с версией в имениДо годаНовая версия получает новый адрес, и старый кэш не мешает
Страницы статей и услугЧасы или сутки со сбросом при сохраненииСодержимое одинаково для всех посетителей
Карточки товаров, каталогМинуты или часы со сбросом при обновлении цен и остатковЧем чаще меняются данные, тем короче срок
Корзина, кабинет, оформление заказа, админкаНе кэшироватьСодержимое своё у каждого человека

Сроки — ориентир, а не норма: точные значения подбирают под то, как часто меняется содержимое именно вашего сайта.

Как проверить, что кэш работает

Включить кэширование и убедиться, что оно действует, — разные вещи. Проверка занимает несколько минут.

  • Сравните время ответа. Откройте в браузере инструменты разработчика (клавиша F12), вкладку «Сеть», и обновите страницу дважды. Первая строка в списке — сама страница. При работающем кэше время ожидания ответа во второй раз заметно меньше.
  • Посмотрите заголовки ответа. В свойствах запроса видны служебные заголовки. Cache-Control показывает, на какой срок файл разрешено хранить, а многие плагины и серверы добавляют отметку о попадании в кэш — заголовок вроде X-Cache.
  • Проверьте как гость. Авторизованным пользователям и администраторам кэш страниц обычно не отдаётся, поэтому проверять нужно в режиме инкогнито.
  • Пройдите сценарий покупки с двух устройств. Корзины не должны пересекаться, а в шапке не должно появляться чужое имя.

Частые ошибки при настройке кэша

  • Включают несколько плагинов кэширования сразу. Они мешают друг другу, и понять, какой из них держит старую версию, становится невозможно. Нужен один инструмент на каждый уровень.
  • Кэшируют всё без исключений. Отсюда чужие корзины и формы, которые перестают отправляться.
  • Забывают про сброс после импорта. Цены обновились в базе, а на сайте старые до конца срока жизни кэша.
  • Ставят долгий кэш на файлы без версии. Обновили стили — и часть посетителей неделями видит сломанную вёрстку.
  • Кэшируют страницы с рекламными метками как отдельные. Каждый переход с уникальной меткой в адресе собирает страницу заново, и в момент запуска рекламы кэш не помогает. Это настраивается: метки исключают из ключа кэша.
  • Прикрывают кэшем медленный сайт. Если страница собирается пять секунд, первый посетитель после каждого сброса ждёт эти пять секунд. Кэш не отменяет оптимизацию кода и базы.

Чек-лист: кэш настроен правильно

  • Кэш страниц включён для неавторизованных посетителей.
  • Корзина, кабинет, оформление заказа и админка исключены из кэша.
  • Кэш сбрасывается автоматически при сохранении страниц и товаров.
  • Сброс срабатывает и после импорта или обмена с учётной системой.
  • Статические файлы отдаются с долгим сроком хранения и версией в имени.
  • Известно, на каких уровнях включён кэш и где он сбрасывается.
  • После настройки пройдена тестовая покупка и проверка правок глазами гостя.

Коротко

Кэш хранит готовые страницы и файлы, чтобы не собирать их при каждом визите. Уровней несколько — браузер, сервер, база, CDN, — и старая версия может застрять на любом. Кэшируйте то, что одинаково для всех, исключайте персональные страницы, настройте автоматический сброс и после каждой настройки проверяйте сайт как покупатель.

Кэширование — самый дешёвый способ ускорить сайт, часто дешевле, чем переезд на тариф выше. Но настраивать его должен человек, который понимает, что именно на вашем сайте нельзя запоминать. Мы в CasperLab включаем кэш на каждом проекте, который сдаём, и проверяем его тестовой покупкой. Если ваш сайт тормозит, а разработчик разводит руками, — приносите, посмотрим, где узкое место, и при необходимости подберём хостинг с нужными возможностями.

Подобрать хостинг в CasperLab

Поможем подобрать решение под вашу задачу и рассчитаем стоимость без обязательств.

Подобрать хостинг
Поделиться:
Как очистить кэш сайта?
Зависит от уровня. Кэш браузера — сочетанием Ctrl+F5 или в режиме инкогнито. Кэш сервера — кнопкой в плагине кэширования или в панели хостинга. Кэш CDN — в панели CDN-провайдера. Если не уверены, где застряла старая версия, попросите разработчика.
Может ли кэш сломать сайт?
При неправильной настройке — да: посетители видят чужие корзины, старые цены или несобранные стили. Поэтому кэш включают поэтапно, исключают персональные страницы и после настройки проходят сценарий покупки как обычный клиент.
Нужен ли кэш маленькому сайту-визитке?
Полезен и ему: страницы открываются быстрее, а сервер выдерживает всплески трафика с рекламы. Риска почти нет, потому что на визитке нет корзины и личных кабинетов. Обычно достаточно стандартного плагина или встроенного кэша хостинга.
Почему я вижу изменения на сайте, а клиенты — нет?
Администраторам и авторизованным пользователям страницы обычно отдаются без кэша, а гостям — из него. Поэтому вы видите свежую версию, а посетители — сохранённую. Сбросьте кэш страниц в админке или панели хостинга и проверьте результат в режиме инкогнито.
Чем кэш браузера отличается от кэша сервера?
Кэш браузера хранится на устройстве посетителя и ускоряет его повторные визиты: картинки и стили не скачиваются заново. Кэш сервера хранит готовые страницы на хостинге и ускоряет сайт для всех, включая тех, кто пришёл впервые. Сбрасываются они тоже по-разному и независимо друг от друга.
Влияет ли кэширование на SEO?
Напрямую — нет, но оно ускоряет ответ сервера и загрузку страниц, а скорость поисковые системы учитывают. Есть и риск: если кэш отдаёт роботу устаревшие страницы или ошибки, в поиск попадёт неактуальное содержимое. Поэтому важно, чтобы кэш сбрасывался при обновлении контента.