Заголовки відповіді й кеш: найдешевша частина швидкості
Налаштування кешування і 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 календарних днів гарантії: помилки з нашої вини усуваємо безоплатно. Усне з дзвінка дублюємо письмово того ж дня — домовленість, якої немає в тексті, не рахується.
ФОП і безготівковий розрахунок
Виконавець — зареєстрований ФОП. Оплата на рахунок із закривними документами, які бухгалтерія проведе як витрати. Курс для гривневої оплати фіксується договором, а не з’ясовується постфактум.
Права й доступи — ваші
Код, дизайн і матеріали переходять до вас після повної оплати. Домен, хостинг, репозиторій, аналітику й рекламні кабінети оформлюємо на вас — щоб сайт не залежав від підрядника. NDA підписуємо на запит, після завершення свої доступи видаляємо самі.
Портал клієнта замість переписки
На час роботи ви отримуєте доступ до порталу: договори, рахунки, акти й стан проєкту в одному місці. Документи формуються з даних угоди, тому реквізити й суми в них не розходяться, а про оплати й дедлайни нагадує система, а не пам’ять менеджера.
Замовники з Європи
Серед робіт — проєкти для Норвегії, Болгарії та Іспанії: болгарський магазин трьома мовами з кур’єрською доставкою, іспанський з оплатою карткою й переказом, норвезький сайт клініки. Це видно в портфоліо, а не тільки в описі.
Цифри, які можна перевірити
Кожен кейс у портфоліо — з посиланням на живий сайт і технічним виміром: швидкість відповіді, вага сторінки, обсяг каталогу, знайдені дефекти. Ці цифри можна зняти самому й звірити з нашими.
Спершу аудит, потім сума
Прайсу на сайті немає навмисно: обсяг тієї самої роботи у двох клієнтів відрізняється в рази, і цифра «від» нічого не пояснює. Спершу безкоштовний розбір — рахуємо ваші сторінки, дублі й швидкість, — потім називаємо суму й строк і фіксуємо їх у договорі.
Кажемо «ні», коли не впевнені
Якщо задача не наша, строк нереальний або послуга вам просто не потрібна — скажемо це першим листом, а не після передоплати. Гарантій позицій у пошуку не даємо: їх не дає ніхто, а обіцянка без механізму — це продаж, а не робота.
NDA підписуємо на запит. Після завершення співпраці наші доступи до ваших сервісів видаляємо самі й повідомляємо про це.
Що впливає на вартість
Чому дві однакові на вигляд задачі рахуються по-різному — і що саме ми міряємо на аудиті
Хто саме ставить заголовокКонфігурація сервера — правка на кілька хвилин. Заголовок, який дописує модуль 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Наш підхід
Де живе результату базі й файлах движка — злітає разом з оновленням або конфліктом модуліву конфігурації сервера — переживає оновлення 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 або перед сайтом стоїть шар, який переписує відповіді. Тоді основний час іде не на правку, а на пошук того, хто саме ставить заголовок. Верхня межа в нашій практиці — десять робочих днів, і в них входить перевірка, що після змін не зламались кошик, форми й віджети.
Надішліть адресу сайту — заголовки читаються ззовні, доступів не потрібно.
У відповідь — таблиця поточних заголовків по типах ресурсів, оцінка в байтах і мілісекундах по кожній зміні й готовий набір правил під ваш сервер. Якщо все вже налаштовано, скажемо це першим же листом.
Прайса на сайті немає навмисно: обсяг тієї самої роботи у двох клієнтів відрізняється в рази, і цифра «від» у такому разі нічого не пояснює. Спершу безкоштовний аудит — рахуємо ваші сторінки, дублі й швидкість, — потім називаємо суму й строк і фіксуємо їх у договорі.