Серверна оптимізація зображень, що завантажуються: WebP, AVIF, стиснення

Важкі зображення непомітно з'їдають швидкість сайту та конверсію, а відвідувачі йдуть, не дочекавшись завантаження. Ми налаштовуємо серверну оптимізацію зображень під ключ: підбираємо формати та режими віддачі, вибудовуємо кешування та регламенти. Віддача прискорюється в рази, а просідання на піковому навантаженні зникають.

Розробка та обслуговування будь-яких видів сайтів:

Інформаційні сайти або веб-програми
Сайти візитки, landing page, корпоративні сайти, онлайн каталоги, квіз, промо-сайти, блоги, ресурси новин, інформаційні портали, форуми, агрегатори
Сайти або веб-програми електронної комерції
Інтернет-магазини, B2B-портали, маркетплейси, онлайн-обмінники, кешбек-сайти, біржі, дропшиппінг-платформи, парсери товарів
Веб-програми для управління бізнес-процесами
CRM-системи, ERP-системи, корпоративні портали, системи управління виробництвом, парсери інформації
Сайти або веб-програми електронних послуг
Дошки оголошень, онлайн-школи, онлайн-кінотеатри, конструктори сайтів, портали надання електронних послуг, відеохостинги, тематичні портали

Це лише деякі з технічних типів сайтів, з якими ми працюємо, і кожен із них може мати свої специфічні особливості та функціональність, а також бути адаптованим під конкретні потреби та цілі клієнта.

Послуги, які ми пропонуємо
Показано 1 з 1Усі 2062 послуг
Серверна оптимізація зображень, що завантажуються: WebP, AVIF, стиснення
Середній
~2-3 дні
Часті запитання

Серверна оптимізація зображень: де ламається віддача

Важкі вихідники — найчастіша причина, через яку сайт «наче працює», але завантажується повільно. Фотогалерея, каталог із картками товарів, стрічка новин: файли залили один раз у вихідній роздільній здатності й відтоді віддають як є.

Браузер отримує знімок на кілька тисяч пікселів завширшки там, де вистачило б чверті, і тягне його навіть на екрані смартфона.

Час відповіді сервера при цьому залишається нормальним — вузьке місце не в бекенді, а у віддачі статики: сервер чесно й швидко надсилає мегабайти, які клієнту не потрібні.

Далі спрацьовує мобільний сценарій. У стільниковій мережі така сторінка дістається до першого рендерингу в рази довше, частина запитів обривається за таймаутом, і частка відмов на телефонах зростає швидше, ніж на десктопі.

Користувач не дочікується картинки й іде — конверсія падає на рівному місці, хоча функціонально все справно.

Серверна оптимізація зображень закриває це на рівні віддачі, а не верстки: сервер сам визначає відповідний формат за заголовками браузера, віддає сучасний кодек із запасним варіантом і масштабує під реальний розмір екрана. Вихідник залишається у сховищі недоторканим — змінюється лише те, що йде клієнту.

Розбираємо, як це влаштовано: де саме втрачається час, які формати і в якому порядку віддавати, як не зламати кеш і що робити з уже накопиченим архівом важких файлів.

Що дає серверна оптимізація зображень на практиці

Ефект рахується за чотирма метриками: частка стиснення відносно вихідного файлу, час формування відповіді на стороні сервера, поведінка під навантаженням і те, який клас відмов зникає.

На практиці перехід на сучасні формати й коректне нарізання розмірів дають скорочення ваги віддачі в 2-4 рази на фотоконтенті — при тому що візуально різниця не читається. Каталог із сотнею карток перестає віддавати мегабайти там, де вистачає десятків кілобайт.

Час формування відповіді змінюється не за рахунок «магії формату», а за рахунок того, що важка робота виїжджає із запиту. Варіанти кодуються один раз і кладуться в кеш — при повторному зверненні сервер віддає готовий файл, а не перетискає вихідний файл на кожен запит.

Звідси передбачувана затримка: перший прогін дорожчий, усі наступні дешеві. Якщо кодувати на льоту, під піком сервер починає витрачати ресурси на стиснення замість віддачі, і час відповіді зростає разом із чергою.

Стійкість під навантаженням — прямий наслідок. Менша вага відповіді — менше часу зайнятий канал і воркер, вища пропускна здатність на тому самому залізі. Знятий клас відмов тут конкретний: таймаути на мобільних мережах і обриви докачування великих файлів.

Коли картинка важить у рази менше, вона встигає дійти до клієнта з першого разу, і користувач не бачить «биту» плитку в каталозі.

Окремо закривається клас відмов, пов'язаний із зростанням сховища: якщо не обмежувати набір похідних розмірів, число файлів зростає швидше, ніж контент.

Політика на фіксований набір ширин і форматів тримає обсяг передбачуваним, а Sharp на стороні сервера закриває і нарізання, і кодування в одному проході — без ручної роботи контент-менеджера з кожним зображенням.

Формати та режими віддачі: порівняння підходів

Вибір формату — це компроміс між вагою файлу, якістю зображення та тим, які браузери його взагалі покажуть. Нижче — робочі варіанти, між якими реально обирають на проєктах, та їхні обмеження.

Варіант Коли підходить Обмеження
Класичні формати (JPEG, PNG) Максимальна сумісність, простий стек без перезбирання ассетів Вага в 2-4 рази вища за сучасні формати, немає прозорості у JPEG, PNG важкий для фото
Сучасні формати (WebP, AVIF) Основний трафік — актуальні браузери, важливі швидкість і трафік AVIF довше кодується, частина старих клієнтів не покаже зображення без запасного варіанта
Гібридна віддача за можливостями клієнта Публічні сайти з широкою аудиторією, де не можна втрачати нікого Потрібна генерація кількох версій і коректні заголовки узгодження

Гібридна схема — те, що ми ставимо за замовчуванням на публічних проєктах. Сервер зберігає одне джерело, а на віддачі формує версії в сучасних форматах і підставляє їх через заголовок узгодження контенту; якщо клієнт їх не підтримує — йде класичний файл. Браузер сам повідомляє, що вміє, тому зламаних зображень не буває.

Якість і вага налаштовуються окремо під кожен формат: для фото тримаємо візуально невідрізнюваний рівень стиснення, для графіки та іконок — без втрат.

Це дає передбачуваний результат: сторінка віддає легкі зображення тим, хто їх розуміє, і не втрачає аудиторію на старих пристроях.

Порядок впровадження на стороні сервера

Впровадження серверної оптимізації зображень — це не встановлення одного розширення, а послідовність кроків, де кожен наступний спирається на дані попереднього.

Починаємо з аудиту віддачі: дивимося, які формати та обсяги реально надходять клієнтам, де втрачається час на стиснення, як влаштований кеш і скільки запитів припадає на один макет. Без цих цифр будь-яке налаштування перетворюється на вгадування.

  1. Аудит поточної віддачі. Знімаємо профіль трафіку: частка важких форматів, середня вага сторінки, розподіл запитів між мобільними та десктопними клієнтами. Фіксуємо точки, де стиснення відбувається на льоту і б'є по чутливості сервера.
  2. Проєктування схеми обробки. Визначаємо, де стане конвертація — під час завантаження у сховище чи за запитом, — які формати генеруємо (WebP, AVIF) і як віддаємо їх з урахуванням підтримки в браузері. Продумуємо кешування результату, щоб повторні звернення не запускали стиснення заново.
  3. Налаштування сервера. Підключаємо конвертацію, налаштовуємо правила віддачі за заголовками узгодження форматів, ліміти якості та розмірів, політику зберігання вихідних і похідних файлів. Окремо закриваємо питання відкату: вихідні зображення залишаються недоторканими.
  4. Перевірка результату. Порівнюємо вагу та швидкість віддачі до і після на реальних сторінках, перевіряємо візуальну якість на різних роздільних здатностях, переконуємося, що старі клієнти отримують сумісний формат без помилок.
  5. Передача регламентів. Оформлюємо документацію: як додавати нові формати, які правила кешу діють, що робити при зростанні навантаження. Команда замовника отримує інструкції, щоб підтримувати схему без нас.

Такий порядок дає передбачуваний результат: обсяг переданих зображень падає в рази, а сервер перестає витрачати ресурси на стиснення в момент запиту. Опишіть ваше завдання — повернемося з оцінкою та планом робіт.

Конфігурації, політики кешування та регламенти

Після впровадження серверної оптимізації зображень залишається набір артефактів, за якими систему можна експлуатувати, передавати іншій команді та відтворювати на новому середовищі.

Без них оптимізація живе до першого оновлення сервера або зміни підрядника — і відкочується до початкового стану. Нижче — що саме фіксується в документації.

  • Конфігурації сервера: параметри модулів стиснення, правила перекодування у WebP та AVIF, ліміти на розмір і роздільну здатність вихідних файлів, поведінка за відсутності підтримки формату на боці клієнта.
  • Схеми обробки: шлях зображення від завантаження до віддачі — де відбувається конвертація, де зберігається оригінал, як формуються похідні розміри та як вони інвалідуються при заміні файлу.
  • Політики кешування: терміни життя для оригіналів і похідних, заголовки керування кешем, правила скидання при оновленні контенту, поведінка CDN при промаху.
  • Регламенти експлуатації: порядок додавання нових форматів і розмірів, контроль зростання сховища, дії при деградації якості або зростанні часу віддачі.
  • Документація для команди: карта конфігурацій, точки моніторингу, інструкції з відкату на попередню схему обробки.
  • Чек-лист приймання: набір контрольних зображень і еталонні результати стиснення, за якими перевіряється коректність після будь-яких змін.

Кожен пункт закриває свій клас відмов: конфігурації — розсинхрон між середовищами, політики кешу — застарілі версії у користувачів, регламенти — некероване зростання сховища. Такий комплект дозволяє змінювати схему обробки передбачувано, а не методом проб на бойовому трафіку.

Опишіть вашу задачу — повернемося з оцінкою та планом, які артефакти потрібні саме під ваш стек і обсяг трафіку.

Кейс: як скоротили вагу віддачі та прибрали просідання

Проєкт — каталог з картками товарів і важкою галереєю: кожна сторінка тягнула повнорозмірні знімки у вихідному форматі, віддача одного каталогу сягала 8–12 МБ.

На мобільних мережах це давало LCP у районі 6–9 секунд, а за пікового навантаження сервер упирався в канал і віддавав частину запитів з помилкою — клас відмов, який ми і прибирали.

Що зробили

Розгорнули серверну обробку на льоту: за першого запиту зображення перекодовується у WebP та AVIF, кладеться в кеш і далі віддається вже готовим. Формат вибирається за заголовком Accept, для старих клієнтів залишається вихідний файл як запасний варіант.

Паралельно перезібрали сітку розмірів — замість одного «універсального» знімка генеруються варіанти під реальні точки верстки, а зайві прев'ю пішли.

Метрики до і після

Показник До Після
Вага сторінки каталогу 8–12 МБ 1,4–2,1 МБ
Частка стиснення — 78–84%
LCP на мобільних 6–9 с 1,8–2,4 с
Час відповіді сервера (p95) 900–1400 мс 180–260 мс
Помилки віддачі за піку 3–5% запитів поодинокі

Частка стиснення у 78–84% — це не «в середньому по лікарні»: на фотографіях з плавними градієнтами AVIF дає більше, на графіці з різкими краями — менше, тому ми рахували за реальним трафіком, а не за тестовою вибіркою.

Що змінилося для бізнесу

Час відповіді впав у рази, і сервер перестав бути вузьким місцем — той самий інстанс тримає пікове навантаження без помилок віддачі.

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

Працювали на Cloudflare — кеш і перекодування на периметрі знімають навантаження з основного сервера, а клієнт отримує передбачувану віддачу незалежно від сплесків трафіку.

Чим відрізняється серверна оптимізація від клієнтської?

Клієнтська оптимізація — це все, що відбувається в браузері вже після того, як файл надійшов мережею: ліниве завантаження через loading="lazy", адаптивна видача через srcset і sizes, відкладений рендеринг, кеш на пристрої користувача.

Браузер вирішує, коли запросити зображення і яку з підготовлених версій узяти під поточний екран. Але він не може зробити те, чого в нього немає: якщо на сервері лежить єдиний JPEG на 4 МБ, жоден srcset його не полегшить.

Серверна оптимізація — це точка докладання зусиль до віддачі файлу: генерація WebP і AVIF з вихідника, підбір якості стиснення під тип зображення, нарізка на розмірні варіанти, віддача потрібного формату за заголовком Accept.

Тут межа відповідальності проходить мережею: сервер відповідає за те, який обсяг даних узагалі піде клієнту, клієнт — за те, коли і з яким пріоритетом він це забере.

Практичний сенс розділення в тому, що ці два шари лікують різні хвороби. Клієнтські прийоми прибирають зайві запити і розтягують завантаження в часі, але не чіпають вагу кожної окремої картинки.

Серверні — скорочують вагу в рази: переведення в сучасний формат і коректне стиснення дають кратне падіння обсягу при візуально невідмінному результаті.

Якщо переплутати шари, типова помилка — роками крутити ліниве завантаження на сторінці, де кожна картинка важить як шпалери, і дивуватися, що швидкість не зростає.

Є й зворотна залежність: серверна оптимізація розкривається тільки разом із клієнтською. Нарізані варіанти марні, якщо розмітка не вміє їх запитувати; сучасні формати не допоможуть, якщо картинка вантажиться в першому екрані без пріоритету.

Тому межа — не про «або-або», а про порядок: спочатку сервер приводить вагу до розумної, потім клієнт керує порядком і моментом доставки.

Часті технічні сумніви

Розберемо типові технічні сумніви, які виникають до старту. Нижче — відповіді наших інженерів за досвідом впровадження серверної оптимізації зображень: сумісність, міграція, відкат і доступи.

Чи не зламається верстка на старих браузерах?

Ні. Ми віддаємо сучасні формати через узгодження форматів на стороні сервера: браузер отримує WebP або AVIF лише якщо сам їх заявив, решті надходить вихідний JPEG або PNG. Плюс залишаємо резервний шлях через тег <picture> з кількома джерелами. Верстка та вбудовані віджети працюють однаково на всьому парку пристроїв.

Що буде з уже завантаженими зображеннями?

Старі файли не переписуємо наосліп. Спочатку проганяємо їх через пакетну обробку в окреме сховище, звіряємо візуальну якість на контрольній вибірці і лише потім перемикаємо видачу. Оригінали зберігаються — повернутися до них можна будь-якої миті.

Як відкотити зміни, якщо щось піде не так?

Оптимізація живе на рівні конфігурації видачі, а не в коді сторінок. Відкат — це повернення попереднього профілю обробки: одна правка конфігурації, без перезбирання застосунку. Ми тримаємо обидва профілі паралельно, тому перемикання займає хвилини.

Чи потрібні доступи до серверів і CDN?

Для налаштування потрібен доступ до конфігурації веб-сервера та панелі CDN, а також до сховища зображень. Працюємо в окремій гілці конфігурації, зміни проходять перевірку на тестовому середовищі. Продуктивний контур чіпаємо лише після узгодження.

Наскільки впаде якість картинок?

За коректних параметрів стиснення різниця не видна оком на фотографіях та інтерфейсній графіці. Для логотипів та іконок застосовуємо стиснення без втрат, для фото — з налаштовуваним рівнем. Вага файлів при цьому падає в рази, а сторінка віддає контент помітно швидше.

Якщо вашого питання тут немає — опишіть задачу, повернемося з оцінкою та планом.

Обговоримо ваше завдання і повернемося з оцінкою

Щоб повернутися з оцінкою та планом, нам потрібен мінімум вхідних даних: де зараз зберігаються зображення, хто їх віддає і що вже пробували. Опишіть завдання у вільній формі — далі ми поставимо уточнювальні запитання по суті, а не за анкетою.

Що допомагає стартувати швидше:

  • перелік типів зображень: картки товарів, галереї, банери, аватари, користувацькі завантаження — у кожного своя політика стиснення і набір форматів;
  • звідки беруться вихідні файли: завантаження через адмінку, імпорт з каталогу, генерація на льоту — від цього залежить, де ставити перекодування;
  • поточна інфраструктура: один сервер, балансувальник, CDN, об'єктне сховище — впливає на вибір між перекодуванням на льоту і передгенерацією;
  • приклади «важких» сторінок з адресами і замірами — за ними видно, де саме втрачається час завантаження;
  • вимоги до якості: де допустима втрата деталей, а де потрібна візуальна точність (наприклад, фото продукції);
  • обмеження щодо доступів і регламентів: хто власник домену, чи є окремий контур для тестових прогонів;
  • очікування щодо термінів і пріоритетів: що критично закрити першим, а що можна винести в другу хвилю.

На виході ви отримаєте план робіт з етапами, схему розміщення перекодування відносно сховища і роздачі, перелік форматів і правил стиснення під ваші типи контенту, а також порядок впровадження з можливістю відкату на кожному кроці.

Окремо зафіксуємо, як будемо вимірювати результат: частка трафіку в нових форматах, вага сторінки, час до відображення основного контенту.

Опишіть завдання — повернемося з оцінкою та планом.

Наші компетенції:

Останні роботи

  • Розробка сайту компанії B2B ADVANCE
    Розробка сайту компанії B2B ADVANCE
    1542
  • Розробка веб-додатків для компанії FEEDME
    Розробка веб-додатків для компанії FEEDME
    1394
  • Розробка веб-сайту для компанії БЕЛФІНГРУП
    Розробка веб-сайту для компанії БЕЛФІНГРУП
    1081
  • Розробка інтернет магазину для компанії FURNORO
    Розробка інтернет магазину для компанії FURNORO
    1369
  • Розробка веб-додатків для компанії Enviok
    Розробка веб-додатків для компанії Enviok
    1141
  • Розробка веб-сайту для компанії ФІКСПЕР
    Розробка веб-сайту для компанії ФІКСПЕР
    1060