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

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

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

Что такое кэш

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

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

Уровни кэширования

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

  • Кэш браузера. Картинки, стили и скрипты сохраняются на компьютере посетителя, чтобы не качать их повторно. Поэтому второй визит на сайт всегда быстрее первого.
  • Кэш страниц на сервере. Готовый HTML страницы хранится в памяти или на диске. Именно его включают плагины вроде WP Super Cache, и именно он даёт ускорение в 5–10 раз.
  • Кэш базы данных и объектов. Результаты тяжёлых запросов запоминаются в Redis или Memcached. Важен для магазинов с большими каталогами.
  • CDN. Копии страниц и файлов разбросаны по серверам по всему миру, посетитель получает их с ближайшего.

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

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

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

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

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

Правильно настроенный кэш сбрасывается сам, когда вы сохраняете страницу или товар. Но бывают сценарии, когда он этого не делает: цену изменили через импорт из 1С, а не через админку; сменили картинку, не поменяв её имя, и браузер посетителя показывает старую; включён кэш на уровне хостера или CDN, о котором вы не знаете.

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

Как настроить, чтобы не было больно

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

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

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

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

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