Кэш и CDN: когда они нужны небольшому сайту

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

Ниже о том, как это работает, что даёт небольшому сайту и где кэш может навредить.

Кэш простыми словами

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

Для посетителя это значит, что вторая и следующие страницы открываются заметно быстрее, а для сервера меньше нагрузки, особенно когда людей много одновременно.

Что такое CDN

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

Многие CDN заодно защищают от простых атак на доступность и сами выдают сертификат для HTTPS, поэтому их подключают не только ради скорости.

Когда это действительно нужно

  • Посетители из разных регионов или стран, а хостинг в одном месте
  • На сайте много фотографий, видео или тяжёлых файлов
  • Бывают всплески посещаемости, например после рассылки или рекламы
  • Сайт собирается на сервере при каждом запросе, и страницы отвечают долго

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

Ошибки, из-за которых не видно обновлений

Главная жалоба на кэш звучит так: «я поменял текст, а на сайте всё по-старому». Обычно это значит, что старая копия хранится слишком долго и её никто не сбросил. Правильная настройка выглядит так:

  • Файлы стилей и скриптов получают в названии метку версии, и при каждом обновлении браузер скачивает новый файл
  • Сами страницы кэшируются коротко или с проверкой, не изменились ли они
  • После публикации кэш CDN сбрасывается автоматически, а не вручную по памяти
  • Личные страницы, корзина и формы вообще не попадают в общий кэш

Последний пункт важен для безопасности: ошибка в настройке может показать одному посетителю данные другого.

С чего начать

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

Настройка кэша, CDN и ускорение сайта входят в услугу скорость и SEO. Если хотите разобраться, что тормозит именно ваш сайт, напишите через контакты.