Швидкість сайту: що гальмує завантаження і як це виправити

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

Богдан Кононенко — CEO і засновник, ApricodeБогдан Кононенко12 хв читання
Швидкість сайту залежить від узгодженої роботи всіх етапів завантаження, де одна затримка зупиняє сторінку

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

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

Що таке швидкість сайту?

Від запиту до готової для взаємодії сторінки затримка може виникнути на будь-якому етапі доставки

Шлях від запиту до дії

Швидкість сайту — це шлях від запиту в браузері до моменту, коли людина бачить вміст і може ним користуватися. Запит доходить до сервера. Сервер визначає маршрут, за потреби збирає дані та формує HTML-відповідь. Потім мережа доставляє документ і пов’язані з ним ресурси: стилі, скрипти, шрифти, зображення та інші медіафайли.

Браузер не просто показує отриманий HTML. Він читає структуру документа, завантажує CSS для побудови інтерфейсу, виконує JavaScript, застосовує шрифти й розміщує медіа в макеті. Після цього сторінка стає видимою. Доступною для дії — коли код не заважає натискати кнопки, відкривати меню чи надсилати форму.

Тому слово «повільно» без уточнення мало що означає. Воно може вказувати на затримку до першої відповіді сервера. Може означати, що HTML уже прийшов, але браузер чекає на стилі. Іноді видимий вміст є, проте взаємодія затримується через скрипти. Буває, що проблема виникає лише на певному шаблоні, де сторінка тягне додаткові дані або інтеграції.

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

Помилки з медіа, які затримують видимий вміст

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

Адаптивні зображення та шрифти

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

Для зображень потрібні адаптивні варіанти. srcset дає браузеру вибір між підготовленими файлами, а sizes пояснює, скільки місця зображення займе в макеті. Атрибути width і height резервують місце до завантаження картинки. Без них сторінка може зміщуватися, коли медіа з’явиться.

html
<img
  src="/media/product-default.jpg"
  srcset="/media/product-small.jpg small, /media/product-large.jpg large"
  sizes="(max-width: mobile) full-width, content-width"
  width="media-width"
  height="media-height"
  loading="eager"
  alt="Товар на світлому фоні"
>

loading="lazy" доречний для медіа нижче видимої частини сторінки. На зображенні першого екрана він дає зворотний ефект: браузер відкладає ресурс, який мав показати одразу.

Відео не повинно тягнути важкий файл без дії користувача. Для прев’ю потрібен poster, а запуск — після натискання. Вбудовані ролики варто розглядати як сторонній код, а не декоративний блок.

Шрифти працюють так само. Залишайте лише потрібні гарнітури й накреслення. Додайте font-display: swap, щоб текст не чекав на файл шрифту перед показом. Це прибирає одну з причин порожнього або нестабільного першого екрана.

CSS і JavaScript, які блокують рендеринг

Критичні стилі й код завантажуються першими, а модулі після перевірки сценаріїв можна відкласти через defer

Код для першого екрана

CSS потрібен браузеру, щоб перетворити HTML на стилізований інтерфейс. Поки потрібні стилі не отримані й не оброблені, браузер не може коректно намалювати сторінку. Синхронний JavaScript може призупинити розбір документа, доки браузер завантажує та виконує скрипт.

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

Для JavaScript, який не повинен зупиняти розбір HTML, використовують defer. Такий скрипт завантажується паралельно, а виконується після того, як браузер прочитає документ. Для модулів, не потрібних під час першого показу, застосовують code splitting: код завантажується, коли людина відкриває маршрут або взаємодіє з компонентом.

Порядок перевірки простий:

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

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

Коли проблема на сервері, у кеші або в доставці контенту

Довге очікування першого байта вказує на сервер, а повільне складання після HTML — на ресурси й код браузера

Відповідь сервера і кеш

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

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

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

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

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

Сторонні скрипти: затримка, яку не видно в макеті

Сторонні інтеграції для першого показу залишають лише необхідними, а дублікати прибирають і другорядні відкладають

Зовнішній код у браузері

Сторонній скрипт може затримувати сторінку, навіть якщо його елемент не видно на першому екрані. Чат, карта, піксель, аналітика, зворотний дзвінок, вбудоване відео або A/B-інструмент завантажують ресурси й виконують код у браузері. Вони конкурують із кодом сторінки за мережу та головний потік.

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

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

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

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

Коли швидкість сайту стає частиною SEO-роботи

Спільні затримки різних шаблонів варто шукати в інфраструктурі, індексації та сторінках входу з пошуку

Проблема, спільна для шаблонів

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

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

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

Що прискорювати спочатку: порядок без хаотичних правок

Покращення перевіряють циклом: відтворити проблему, знайти одну причину, внести правку й повторно виміряти результат

Одна зміна за раз

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

Знайдіть ресурс чи операцію, що затримує показ або взаємодію. Внесіть одну зміну. Потім повторіть той самий сценарій у тих самих умовах. Лише тоді переходьте до наступної причини.

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

Якщо причина не відділяється від технічної будови сайту, наступним кроком буде SEO-аудит сайту. Він допомагає розкласти проблему за маршрутами, шаблонами та ресурсами, а не шукати одну кнопку прискорення.

Висновки

Шукайте джерело затримки

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

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

Порівняння

Симптоми та зони проблем

СимптомІмовірна зона проблемиЩо перевіритиЧого не робити навмання
Сторінка довго не починає завантажуватисяСервер, DNS, мережеве з’єднання або повільна відповідь бекендуЧас відповіді сервера, перенаправлення, роботу DNS, журнали помилок і навантаження на серверНе стискати зображення чи переписувати стилі, якщо браузер ще очікує першу відповідь
Вміст з’являється пізно, але сервер відповідає швидкоБлокувальні стилі, скрипти або надто важка початкова розміткаЯкі ресурси блокують відмальовування, порядок підключення CSS і JavaScript, важливі стиліНе відкладати всі скрипти без перевірки залежностей інтерфейсу
Сторінка показується, але довго не реагує на кліки чи прокруткуНадмірне виконання JavaScript, складні компоненти або сторонні віджетиДовгі задачі головного потоку, обсяг і виконання скриптів, вплив аналітики, чатів і рекламиНе вимикати важливу функціональність лише через розмір файлу без перевірки виконання
Зображення, відео або банери з’являються із затримкоюВажкі медіафайли, невідповідні формати або відсутність відкладеного завантаженняРозміри ресурсів, адаптивні версії, формати, кешування та пріоритет завантаження головного зображенняНе стискати все до мінімуму ціною помітної втрати якості або погіршення головного контенту
Сайт швидкий для частини відвідувачів, але повільний для іншихГеографічна віддаленість, CDN, кеш, мережа користувача або сторонні сервісиРегіональні точки доставки, правила кешування, маршрути до сервера та доступність зовнішніх доменівНе робити висновок за одним пристроєм, браузером або офісною мережею
Повторне відкриття сторінки майже не швидше за першеНалаштування кешування браузера, CDN або динамічні ресурси без кешуЗаголовки кешу, версіонування статичних файлів, роботу CDN і ресурси, що щоразу завантажуються зановоНе кешувати персональні чи часто змінювані дані без правил оновлення
Швидкість погіршується після підключення нового сервісуСторонній код: аналітика, пікселі, шрифти, віджети, реклама або чатМережеві запити й час виконання кожного зовнішнього скрипту, залежності та резервну поведінку при збояхНе залишати сторонній код лише тому, що він не належить основній команді розробки

Часті питання

Відповіді про завантаження сайту

Що найбільше впливає на швидкість завантаження сайту?

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

Як зрозуміти, що сайт гальмує через зображення?

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

Чи можна прискорити сайт без повної переробки?

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

Чому сторонні скрипти сповільнюють сайт?

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

Що перевіряти першим: хостинг чи фронтенд?

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

Як швидкість сайту пов’язана з SEO?

Швидкість сайту пов’язана з SEO через технічний стан шаблонів, сторінок входу з пошуку, індексацію та сценарії користувача. Затримку не варто розглядати ізольовано від структури сайту. Одна проблема може повторюватися на категоріях, картках товарів або сторінках послуг.

PDF-гайд до статті

Розширений практичний гайд: кроки, типові втрати, чеклісти й FAQ — щоб зробити роботу, коли дійде до діла.

Завантажити PDF63 KB

Чи була стаття корисною?

Схожі статті