HTML-кэш
HTML-кэш — это сохранённая на сервере копия уже собранной страницы. Первый запрос сайт обрабатывает обычным порядком: достаёт данные, подставляет цены и тексты, складывает из этого разметку. Результат он откладывает и какое-то время отдаёт всем следующим посетителям готовым, не повторяя ту же работу заново.
Почему одну и ту же страницу сайт собирает заново для каждого гостя
Обычный сайт не хранит готовых страниц. Когда человек открывает раздел каталога, программа заново спрашивает у базы список товаров, подтягивает цены и остатки, считает фильтры, подставляет меню, баннеры и подвал — и только после этого начинает отдавать разметку в браузер. Для одной карточки это доли секунды, для раздела с сотнями позиций и десятком фильтров работа выходит заметно тяжелее.
Неприятность в том, что эта работа повторяется. Десять человек открыли один и тот же раздел — сервер десять раз проделал одно и то же и получил один и тот же результат. Пока посетителей мало, разницы не видно. В час пик, когда идёт рассылка или реклама, сервер начинает выстраивать запросы в очередь, и страница, которая обычно открывалась за секунду, открывается за пять.
Серверный кэш убирает именно это повторение. Первый посетитель оплачивает сборку своим ожиданием, остальные получают готовое. Важно понимать границу: кэш сокращает время, которое страница проводит на сервере, и не влияет на то, сколько браузер потом возится с картинками и скриптами. Если сайт тормозит уже в браузере, одним кэшем дело не закроют — слои разобраны в статье про скорость сайта и заявки.
Дальше начинается единственное серьёзное ограничение. Кэш безопасен ровно до тех пор, пока страница одинакова для всех. Как только на экране появляется что-то личное — счётчик корзины, имя в шапке, персональная цена, — готовая копия превращается в источник неприятных историй: человек видит чужие товары или ноль вместо своих трёх позиций. Поэтому список исключений составляют до включения, а не после первой жалобы.
Что не кладут в копию
- Корзина и её счётчик — иначе человек увидит чужой или пустой набор товаров.
- Оформление заказа и все шаги оплаты — там каждый экран индивидуален.
- Личный кабинет, избранное, история заказов — персональные данные.
- Поиск и запросы, которые подгружаются фоном, — ответ зависит от того, что ввели.
- Страницы с ценой по договору или скидкой для конкретного клиента.
Сколько копия должна жить
У каждой копии есть срок годности: сколько времени сервер считает её свежей. Слишком короткий срок обесценивает затею — копия протухает раньше, чем ей успевают воспользоваться. Слишком длинный превращает сайт в архив: данные в базе давно новые, а посетителю показывают прошлую неделю. Срок выбирают не по ощущениям, а по тому, как часто меняется содержимое конкретного типа страниц.
| Тип страницы | Разумный срок копии | На что смотреть |
|---|---|---|
| Раздел каталога | От получаса до нескольких часов | Как часто меняются цены и наличие |
| Карточка товара | Часы | Есть ли на ней остаток и персональная цена |
| Статья, страница услуги | Сутки и больше | Меняют редко, сброс делают руками при правке |
| Главная с акцией | Короткий, часы | Акция заканчивается по расписанию |
| Корзина, кабинет, поиск | Не кэшируют вовсе | Экран у каждого свой |
ОриентирЕсли прайс правят раз в неделю, суточная копия никого не подведёт. Если цены меняются вслед за курсом или поставщиком, срок делают коротким, а сброс — автоматическим, по факту изменения.
Главная претензия владельцев к кэшу звучит одинаково: «поправили цену, а на сайте старая». Почти всегда это не поломка, а отсутствие договорённости — никто не решил, что происходит с сохранённой копией в момент правки. Хорошая настройка снимает вопрос: контент-менеджер просто работает в админке, а копии нужных страниц исчезают сами.
Порядок сброса после правки
- Определить, какие правки обязаны немедленно сбрасывать копию: цена, остаток, заголовок, статус товара.
- Настроить автоматический сброс для этих событий — включая раздел, в котором товар показывается, а не только саму карточку.
- Оставить у администратора кнопку ручного сброса на случай массовых правок и импорта прайса.
- После любого сброса открыть страницу в режиме инкогнито: первый заход будет обычным по скорости, второй — уже быстрым.
- Договориться, кто и как проверяет сайт после загрузки нового прайса, и записать это в регламент.
ПроверкаБыстрая страница со вчерашней ценой хуже медленной с правильной: человек приезжает или звонит с одной суммой, а слышит другую. Разбор таких ситуаций — в статье про кэш и устаревшую цену. Рядом по смыслу читаются HIT / MISS — как понять, отдали копию или собрали страницу заново, и TTFB — сколько человек ждал начала ответа.
HTML-кэш: как применяют
Серверный кэш включают там, где страница выглядит одинаково для всех: разделы каталога, статьи, главная, посадочные. Корзину, оформление заказа, личный кабинет и поиск из копии не отдают — там у каждого свой экран. Отдельно договариваются про сброс: после правки цены, остатка или текста копию нужно удалить, иначе сайт будет быстро и уверенно показывать людям вчерашние данные. Перед включением полезно померить, сколько страница собирается без кэша, — иначе непонятно, что именно ускорили.
Частые вопросы
Что такое HTML-кэш?
Это готовая копия страницы, которую сервер сохранил после первой сборки. Следующие посетители получают её сразу, пока копия не устарела и пока её не сбросили.
HTML-кэш простыми словами?
Как заранее распечатанный прайс у кассы: пока цены не менялись, его просто дают в руки. Поменялись — старую пачку выбрасывают и печатают новую.
Чем HTML-кэш отличается от кэша браузера?
Кэш браузера лежит у конкретного человека на устройстве и помогает только ему при повторном заходе. Серверный кэш лежит на сайте и ускоряет ответ сразу всем, в том числе тем, кто пришёл впервые.
Что нельзя кэшировать на сайте?
Всё, что зависит от конкретного человека: корзину и её счётчик, оформление заказа, личный кабинет, избранное, результаты поиска, страницы с персональной ценой или скидкой.
Почему после правки цены на сайте видно старую?
Чаще всего жива прежняя копия страницы: цена в базе уже новая, а посетителю отдают сохранённый ранее вариант. Помогает сброс копии нужных адресов, после него проверяют экран в режиме инкогнито.
Кэш нужен ради поисковиков или ради людей
Ради обоих, но по-разному. Человек просто быстрее видит страницу и реже уходит, а поисковые системы получают сайт, который стабильно отвечает при обходе и не проваливается по скорости на мобильных.