Заголовки ответа и кэш: самая дешевая часть скорости
Настройка кэширования и HTTP-заголовков – это работа со конфигурацией сервера, а не со страницей: включаем сжатие ответа, задаем правила кэша отдельно для разметки и отдельно для статики, объявляем защищенное соединение. Шаблон и код при этом не трогаем вообще. Деталь, которую путают чаще всего: no-cache и no-store – разные вещи. Первое означает «храни, но каждый раз переспрашивай», второе — «не храни нигде», и второе стоит на половине страниц, которые потом считают медленными.
сжатие, версию протокола, правила кэша для HTML и статики, срок транспортной защиты
Наш замер
01.08.2026
Измеренный эффект сжатия
143,6 КБ разметки приходят как 22,5 КБ – разница в 6,4 раза, магазин систем полива, измерение 01.08.2026
Чего заголовки не делают
не уменьшают саму страницу: 554 КБ разметки категории останутся 554 КБ до сжатия
Показатели сняты нашим замером на живых сайтах соответствующего масштаба.
после бесплатного аудита
Стоимость
30
Гарантия
дней после подписания акта
сжатие, версию протокола, правила кэша для HTML и статики, срок транспортной защиты
Что читаем в первую очередь
143,6 КБ
Измеренный эффект сжатия
разметки приходят как 22,5 КБ – разница в 6,4 раза, магазин систем полива, измерение 01.08.2026
2–10
Срок работ
рабочих дней; длинный край — когда запрет кэша ставит сама CMS
бесплатная проверка заголовков, 1–2 рабочих дня, доступа не требуется
Перед сметой
не уменьшают саму страницу: 554 КБ разметки категории останутся 554 КБ до сжатия
Чего заголовки не делают
позиций и рост конверсии – это уборка лишних байтов, а не создание спроса
Чего не обещаем
Что входит
Полный перечень работ и того, что вы получаете на выходе
Включаем сжатие и проверяем его отдельно на разметке, стилях, сценариях и шрифтах – браузер тянет кратно меньше байтов при той же странице
Переводим сайт на HTTP/2, если сервер поддерживает его: ресурсы идут параллельно одним соединением, а не очередью по одному
Задаем правила кэша отдельно для разметки и отдельно для статики — страница каждый раз проверяется, файлы со стабильным именем лежат в браузере месяцами
Снимаем запрет кэширования там, где его поставили на всякий случай и забыли
Оставляем без кэша то, что действительно кэшировать нельзя: корзина, оформление, личный кабинет, персональные цены
Настраиваем проверку актуальности через ETag и Last-Modified – обновления доходят до посетителя без ручного сброса кэша
Добавляем версию в названия файлов статики: обновленный файл имеет новый адрес, и устаревшая копия физически не может быть показана
Объявляем строгую транспортную защиту с разумным сроком — браузер перестает делать первый незащищенный запрос
Ставим базовый набор заголовков безопасности: он не стоит ничего и убирает часть типичных рисков.
Меряем до и после на тех же страницах и отдаем разницу в байтах и миллисекундах вместе с готовым фрагментом конфигурации.
Когда эта услуга не подходит
Что не входит в работу — чтобы не было сюрпризов на сдаче
Настройка внешних кэш-сервисов как отдельной инфраструктуры
Оптимизация кода CMS
Перенос на другой хостинг
Работа с содержимым страниц
Кому подходит
Ситуации, в которых эта услуга даёт результат
Сценарий 1 из 5
Страница открывается долго, а с кодом все хорошо.
Классическая ситуация, когда сервер отдает разметку без сжатия. В магазине полива тот же документ весит 143,6 КБ в сыром виде и 22,5 КБ в сжатом — шесть с половиной раз разницы, полученные галочкой в конфигурации, а не переработкой шаблона.
Разберём вашу ситуацию на бесплатном аудите
Сценарий 2 из 5
Повторный визит такой же медленный, как первый
Статика приходит без срока хранения: логотип, стили и сценарии тянутся снова на каждой странице. Это самый дешевый из всех видимых выигрышей – правило пишется один раз и работает на весь сайт.
Сценарий 3 из 5
Каталог большой, страницы категорий тяжелые
Именно там сжатие дает больше всего. В том же магазине страница категории со 100 товарами весит 554 КБ разметки – в таком объеме разница между сжатым и несжатым ответом ощущается пальцами, а не приборами.
Сценарий 4 из 5
Цены обновили, а часть людей видит старые
Кэш без механизма проверки актуальности. Браузер считает, что файл еще свеж и не спрашивает сервер. Лечится ревалидацией для разметки и версией имени файла для статики: обновленный файл получает новый адрес, и вопрос устаревшей копии исчезает.
Сценарий 5 из 5
Надо закрыть базовую техническую гигиену перед проверкой
Строгая транспортная защита, современный протокол, набор заголовков безопасности. В магазине садового инструмента мы зафиксировали корректный срок в год. Честно: это не делает сайт безопасным – там же работает PHP 7.3.33 без поддержки с декабря 2021 года.
Бесплатная проверка заголовков ответа
Заголовки — это то, что сервер говорит браузеру о каждой странице: сжимать или нет, кэшировать или нет, требовать защищенное соединение или нет. Проверяются они через минуты, а эффект от исправления бывает больше, чем от переработки страниц.
Что мы измеряем
Сжатие ответаИли включено и какое. Измеренный пример: страница на 143,6 КБ в сжатом виде занимает 22,5 КБ – шестикратная разница, полученная настройкой сервера.
Версия протоколаРаботает ли современная версия с параллельной передачей ресурсов. В измеренной выборке она есть не везде.
Правила кэшированияЧто сервер говорит о повторном визите. Страница с полным запретом кэширования перегружается каждый раз с нуля – мы встречали это на главном большом магазине.
Кэширование статикиИмеют ли изображения, стили и сценарии долгий срок хранения. Это самый дешевый способ ускорить повторные визиты.
Требование защищенного соединенияОбъявлена ли строгая транспортная защита и на какой период. В выборке мы фиксировали корректное значение в год.
Заголовки безопасностиБазовый набор, который не стоит и убирает часть рисков.
Что вы получаете
Таблица текущих заголовков по типам ресурсов с объяснением, что каждый означает на практике.
Готовый набор правил под ваш сервер.
Оценка, сколько байтов и времени дает каждая смена.
Короткий разговор по находкам.
Срок: 1–2 рабочих дня
Почему это бесплатно
Потому что проверка занимает минуты, а часть поправок ваш администратор внесет сам по нашему перечню. Продавать часы там, где достаточно конфигурации, мы не будем.
Что дальше
Если все настроено – скажем прямо. Если нет – назовем работы; обычно это несколько дней, включая проверку, что ничего не сломалось.
Короткая форма: контакт и адрес сайта
Договор, акт и гарантия 30 дней
На каждый проект письменный договор: объём, сроки, сумма, порядок приёмки. После сдачи — акт и счёт, затем 30 календарных дней гарантии.
ФОП и безналичный расчёт
Исполнитель — зарегистрированный ФОП. Оплата на счёт с закрывающими документами.
Права и доступы — ваши
Код, дизайн и материалы переходят к вам после полной оплаты. Домен, хостинг, репозиторий оформляем на вас.
Портал клиента вместо переписки
Во время работы вы получаете доступ к порталу: договоры, счета, акты и статус проекта в одном месте.
Заказчики из Европы
Среди работ — проекты для Норвегии, Болгарии, Молдовы и Испании.
Цифры, которые можно проверить
Каждый кейс в портфолио — со ссылкой на живой сайт и техническим замером.
Сначала аудит, потом сумма
Прайса на сайте нет намеренно: объём одной и той же работы у двух клиентов отличается кратно.
Говорим «нет», когда не уверены
Если задача не наша или срок нереальный — скажем сразу.
Что влияет на стоимость
Почему две одинаковые на вид задачи считаются по-разному
Кто именно ставит заголовокКонфигурация сервера – правка на несколько минут. Заголовок, который дописывает модуль CMS или внешний слой перед сайтом, сначала нужно найти: именно этот поиск, а не редактирование, съедает основную часть срока.
Есть ли доступ к конфигурацииСвой сервер – делаем сами. Дешевый шаред-хостинг часто дает лишь часть директив, и тогда мы пишем список для поддержки хостера, а срок начинает зависеть от очереди ответов.
Сколько страниц нельзя кэшироватьМагазин с корзиной и кабинетом – это несколько исключений. B2B-каталог, где цена зависит от договора покупателя, требует разбора каждого типа страницы в отдельности, потому что ошибка здесь показывает чужую цену.
Наличие слоя перед сайтомCloudflare или другой прокси имеют свои правила и переписывают часть заголовков. Работа удваивается: согласовать конфигурацию сервера с правилами слоя и проверить, что оба говорят одно и то же.
Состояние статикиФайлы со стабильными именами кэшируются долго и без риска. Если же стили и сценарии перезаписываются поверх старых имен, сначала нужно ввести версионирование — иначе длинный кэш раздаст людям старую верстку.
Кейсы
Задачи и результат в цифрах — все показатели сняты нашим замером
магазин систем автоматического и капельного полива, каталог 300 позиций в 40 категориях
Задача
Проверить, насколько эффективно сервер отдает страницы и где теряются байты.
Решение
Чтение заголовков на главной, в категории и карточке товара, пять замеров первого ответа с медианой, сравнение веса документа со сжатием и без.
Результат
Сжатие brotli включено: 143,6 КБ разметки главной приходят в браузер как 22,5 КБ — в 6,4 раза меньше без правки в шаблоне. Сервер nginx с HTTP/2, первый ответ 235 мс по медиане из пяти замеров при разбросе 226-238 мс, полный документ - 262 мс; карта товара отдает первый байт за 186 мс. Незащищенный адрес отдает постоянный переход на защищенный. Чего сжатие не делает: страница категории со 100 товарами весит 554 КБ разметки, и это уже задача шаблона. Рядом нашлись дефекты другого слоя: /sitemap.xml отдает код 200 и ноль байтов, блоков структурированных данных на сайте нет ни одного, адрес из www доступен без перехода на основной домен. Измерение 01.08.2026.
интернет-магазин официального продавца садового инструмента
Задача
Проверьте транспортные настройки магазина с валидным сертификатом.
Решение
Чтение заголовков на нескольких типах страниц, проверка срока строгой транспортной защиты и версии протокола, замер первого ответа и вес разметки.
Результат
Строгая транспортная защита объявлена со сроком 31 536 000 секунд — ровно год, в течение которого браузер будет ходить на сайт только защищенным соединением, даже если человек набрал адрес без него. Работает HTTP/2, мобильный viewport задан. Первый ответ 625 мс, полный документ 752,5 мс при весе разметки 350,4 КБ – и здесь потолок уже не в заголовках: на сервере PHP 7.3.33, без поддержки с декабря 2021 года. Заглавие года защиты не делает сайт безопасным, он только убирает незащищенный первый запрос. Отдельно в карте сайта 1,18 МБ и 4 236 записей на 1 300 уникальных адресов – слой, которого заголовки не касаются вообще. Измерение 31.07.2026.
Не нашли свой случай?
Опишите, как это устроено у вас, — ответим, подходит ли «HTTP-заголовки и кэширование» и что это значит в вашей ситуации. Без брифа и без звонка: один вопрос, один ответ.
Этапы работы
Прозрачные этапы с согласованием на каждом шагу
Общий срок:2–10 дней
1
Чтение текущих заголовков
1 рабочий день
Снимаем ответы на главной, в категории, в карточке и статике. На выходе таблица: что приходит сейчас, что значит для браузера и сколько байтов стоит. Доступов на этом шаге не требуется.
2
Поиск источника заголовка
1–2 рабочих дня
Выясняем, кто ставит каждый заголовок: сервер, модуль CMS или прокси перед сайтом. Шаг пропускают чаще всего – и затем правят конфигурацию, которую перебивает слой сверху.
3
Сжатие и версия протокола
1–2 рабочих дня
Включаем сжатие для текстовых типов, проверяем его на каждом из них отдельно и переходим на HTTP/2, если сервер готов. Здесь же фиксируем вес до и после по каждому типу страницы.
4
Правила кэша
1–3 рабочих дня
Разметка – коротко и с проверкой актуальности, статика – надолго, персональные страницы – без кэша совсем. Вместе с версионированием имен файлов, без которого длительный срок хранения небезопасен.
5
Транспортная защита и безопасность
1 рабочий день
Строгую транспортную защиту включаем с растущим сроком, а не сразу в год. Рядом ставим базовый набор заголовков безопасности и проверяем, что ни один из них не ломает виджеты и платежные формы.
6
Повторные замеры и передачи
1 рабочий день
Те же страницы, тот же метод, разница в байтах и миллисекундах. Отдаем фрагмент конфигурации тексту, чтобы при переезде на другой сервер его можно было просто перенести.
Технологии и интеграции
На чём строим и с чем это соединяется
Стек
gzip и brotli – сжатие текста на лету. Разметку и стили давит кратно, а фото и видео уже сжаты: там это бесполезный расход процессора
HTTP/2 – параллельные потоки в одном соединении. Медленный сервер он не лечит: первый ответ останется таким же, каким был
Cache-Control – главный рычаг. Управляет браузером и прокси, но не внутренним кэшем вашей CMS: это два разных слоя, которые легко перепутать
ETag и Last-Modified – краткий ответ «не изменился» вместо полного файла. Nginx при сжатии на лету делает ETag слабым, и часть прокси перестает его учитывать
HSTS – требование защищенного соединения вперед. Снимается только сроком: ложный год придется ждать год
Nginx, Apache, Cloudflare – места, где заголовок рождается. Если сверху стоит Cloudflare, последнее слово за ним, а не за вашим конфигом
Интеграции
Cloudflare
Google Search Console
GA4
хостинг-панель
Заголовки на сервере против модуля кэширования в админке
Чем этот вариант отличается от альтернативы
Модуль кэширования в CMSНаш подход
Где живет результатв базе и файлах движка – взлетает вместе с обновлением или конфликтом модулейв конфигурации сервера – переживает обновление CMS и переезд на другой хостинг
Что ускоряетсборку страницы на сервере – нужно другое, и оно тоже нужно, но это другая задачапередачу: меньше байтов в пути и меньше повторных загрузок при втором визите
Риск ошибкизакешированная страница с чужой корзиной или чужой ценой для авторизованного покупателяневерный срок на статике; лечится версионированием имен файлов
Что видно на проверкегалочка в админке, которая может быть включена и при этом ничего не делатьзаголовок в ответе - читается извне, без доступов, за секунды
Что нужно от вас
Без этого не начнём — лучше подготовить заранее
1Адрес сайта для предварительной проверки – доступов для него не требуется.
2Доступ к конфигурации сервера или изменяющий контакт администратора.
3Список страниц, которые нельзя кэшировать по логике бизнеса: корзина, оформление, кабинет, персональные цены.
4Разрешение на краткий тестовый период: правила кэша проверяются на живом сайте, а не на копии.
5Ответ, стоит ли перед сайтом внешний прокси – от этого зависит, где именно править.
Если чего-то из этого нет — скажите, подскажем, как собрать или сделаем сами отдельной задачей.
Частые вопросы
Что спрашивают чаще всего — с конкретными ответами
Насколько заметно сжатие?
Кратно и именно на тексте. В измеренном магазине полива главная весит 143,6 КБ в сыром виде и 22,5 КБ в сжатом — разница в 6,4 раза, полученная настройкой сервера, а не переработкой шаблона. На чем выигрыша не будет: фотографии, видео и архивы уже сжаты внутри, и повторное сжатие только потратит процессор. Поэтому включаем его выборочно – для разметки, стилей, сценариев и шрифтов.
No-cache и no-store – это одно и то же?
Нет, и путаница здесь стоит дороже всего. No-cache означает «сохрани копию, но перед показом переспроси сервер, актуальна ли она» — сервер соответствует коротким «не изменилось», и страница рисуется с диска. No-store означает «не храни нигде вообще» – каждый визит собирает страницу с нуля. Второе ставят, когда хотят первое, и потом удивляются, почему повторный визит не быстрее первого.
Какие страницы нельзя кэшировать?
Те, где контент зависит от конкретного человека: корзина, оформление заказа, личный кабинет, а в B2B – страницы с договорной ценой. Все остальное кэшировать можно и нужно. Самая частая ошибка – запретить кэш на всем сайте на всякий случай. Мы встречали большой магазин, у которого главная отдавалась с полным запретом кэширования и при этом была медленной страницей сайта.
Как обновления дойдут до посетителя, если все закэшено?
Двумя способами, и они разные для разметки и статики. Разметка кэшируется с проверкой актуальности: браузер спрашивает сервер, изменилась ли страница, и получает краткий ответ вместо полной загрузки. Статику подписываем версией в имени файла – стили, сценарии, изображения. Обновленный файл получает новый адрес, а старая копия просто перестает требоваться, поэтому срок хранения можно ставить долгий без риска.
Или включать HSTS сразу в год и добавлять preload?
Наша рекомендация: срок наращивать, preload не торопиться. Сначала ставим несколько минут, убеждаемся, что весь сайт и все поддомены действительно работают по защищенному соединению, потом неделя, год. Причина проста: название снимается только временем. Если вы объявили год, а через неделю нашелся поддомен без сертификата, браузеры посетителей все равно откажутся его открывать. В измеренном магазине садового инструмента стоит корректный год – это нормальное конечное значение, но приходить к нему лучше по лестнице. Preload – это список в самом браузере; выйти из него дольше, чем зайти.
У нас стоит Cloudflare – заголовки все равно настраивать на сервере?
Да, и в двух местах одновременно. Прокси перед сайтом имеет свои правила и часть заголовков переписывает, поэтому конфигурация сервера и правила слоя должны говорить одно и то же, иначе вы правите то, что все равно будет перебито. Первый шаг работы именно таков: выяснить, откуда приходит каждое название. И отдельно: внешний кэш-сервис поверх ненастроенного сервера – это платить дважды, сначала имеет смысл выжать то, что уже есть.
Это поднимет позиции?
Позиции никто не обещает, и мы не станем. Механизм здесь другой: ушедший человек, не дождавшись страницы, не увидел ни товара, ни цены — его невозможно конвертировать ни одним предложением. Заголовки убирают техническую потерю, спроса они не создают: если цена выше рынка, скорая страница просто скорее покажет причину уйти. И еще один предел: то, что мы меряем, – серверная часть. Время полной готовности страницы у реального посетителя зависит еще от его телефона, сети и веса изображений.
Сколько длится работа и от чего зависит срок?
От двух дней, если заголовки ставит сервер и доступ к конфигурации есть. Дольше бывает в двух случаях: запрет кэширования вшит в логику CMS или перед сайтом стоит слой, который переписывает ответы. Тогда основное время идет не на правку, а на поиск того, кто ставит заголовок. Верхняя граница в нашей практике — десять рабочих дней, и в них входит проверка, что после перемен не сломались корзина, формы и виджеты.
Отправьте адрес сайта — заголовки читаются извне, доступов не требуется.
В ответ – таблица текущих заголовков по типам ресурсов, оценка в байтах и миллисекундах по каждому изменению и готовый набор правил под ваш сервер. Если все уже настроено, скажем это первым же письмом.
Из измеренных кейсовСжатие brotli включено: 143,6 КБ разметки главной приходят в браузер как 22,5 КБ
Прайса на сайте нет намеренно: объём той же работы у двух клиентов отличается в разы, и цифра «от» в этом случае ничего не объясняет. Сначала бесплатный аудит — считаем ваши страницы, дубли и скорость, — потом называем сумму и срок и фиксируем их в договоре.