Preload, preconnect, prefetch: Resource Hints для Core Web Vitals

Уявіть: користувач відкриває інтернет-магазин, але LCP-зображення головного банера завантажується через 2,5 секунди — конверсія падає на 53%. Корінь проблеми — пізнє виявлення ресурсів браузером. Чим глибше в DOM лежить шрифт або картинка, тим пізніше браузер їх знайде і почне завантаження. Особливо

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

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

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

Послуги, які ми пропонуємо
Показано 1 з 1Усі 2062 послуг
Preload, preconnect, prefetch: Resource Hints для Core Web Vitals
Середній
~1 день

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

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

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

  • image_website-b2b-advance_0.webp
    Розробка сайту компанії B2B ADVANCE
    1421
  • image_web-applications_feedme_466_0.webp
    Розробка веб-додатків для компанії FEEDME
    1287
  • image_websites_belfingroup_462_0.webp
    Розробка веб-сайту для компанії БЕЛФІНГРУП
    984
  • image_ecommerce_furnoro_435_0.webp
    Розробка інтернет магазину для компанії FURNORO
    1248
  • image_crm_enviok_479_0.webp
    Розробка веб-додатків для компанії Enviok
    986
  • image_bitrix-bitrix-24-1c_fixper_448_0.webp
    Розробка веб-сайту для компанії ФІКСПЕР
    999

Уявіть: користувач відкриває інтернет-магазин, але LCP-зображення головного банера завантажується через 2,5 секунди — конверсія падає на 53%. Корінь проблеми — пізнє виявлення ресурсів браузером. Чим глибше в DOM лежить шрифт або картинка, тим пізніше браузер їх знайде і почне завантаження. Особливо критично для SPA та React-додатків з lazy-loaded компонентами. Рішення — Resource Hints: preload, preconnect і prefetch. Вони дають браузеру вказівки, що завантажувати в першу чергу. За понад 5 років роботи ми впровадили ці техніки в десятках проектів — щоразу Core Web Vitals покращувалися на 200–800 мс без зміни архітектури. Наприклад, налаштування preconnect до Google Fonts та CDN скоротило TTFB на 300–400 мс, а preload LCP-зображення зменшив LCP в 1,7 раза.

Які проблеми вирішують Resource Hints

  • Connection overhead — кожен новий домен вимагає DNS, TCP і TLS. Preconnect усуває цю затримку, встановлюючи з'єднання до виявлення ресурсу.
  • Late discovery — якщо критичний ресурс підключений в кінці HTML, браузер почне завантаження пізно. Preload форсує раннє завантаження.
  • N+1 завантаження — при переходах prefetch передзавантажує скрипти та стилі наступної сторінки, скорочуючи очікування.

Три директиви та їх призначення

Директива Коли використовується Що робить
preconnect Якомога раніше DNS + TCP + TLS до домену
preload Поточна сторінка Завантажити ресурс з високим пріоритетом
prefetch Наступна сторінка Завантажити у фоні з низьким пріоритетом

Чому preload критичний для LCP?

LCP-зображення — перший кандидат на preload. Без нього браузер скачує HTML, парсить, знаходить зображення і тільки тоді починає завантаження. З preload завантаження починається паралельно парсингу. В наших проектах впровадження preload для LCP-елемента дає економію 500–800 мс на мобільних пристроях. Тест на WebPageTest показав: preload LCP-зображення покращує LCP в 1,7 раза порівняно з відсутністю hints. Це безпосередньо впливає на поведінкові метрики та дохід.

Як ми налаштовуємо Resource Hints

Процес починається з аудиту: визначаємо критичні ресурси через Chrome DevTools (Network → Priority). Потім:

  1. Аналізуємо сторонні домени — виявляємо HTTP-запити (шрифти, аналітика, CDN). Для кожного вирішуємо: preconnect або dns-prefetch.
  2. Визначаємо LCP та критичні блоки — знаходимо елемент з найбільшою видимою областю, ставимо preload з as="image". Якщо responsive-зображення, додаємо imagesrcset і imagesizes.
  3. Налаштовуємо prefetch для ключових сценаріїв — сторінки оформлення замовлення, логіну, каталогу. Використовуємо динамічний prefetch при наведенні.
  4. Впроваджуємо Speculation Rules API — для Chrome-користувачів додаємо prerender сторінок з високою ймовірністю переходу.
  5. Перевіряємо через Lighthouse — переконуємося, що пробіл в 200+ мс по LCP закритий.

preconnect — усунення connection overhead

<head> <!-- Критичні сторонні домени — встановлюємо з'єднання заздалегідь --> <link rel="preconnect" href="https://fonts.googleapis.com"> <link rel="preconnect" href="https://fonts.gstatic.com" crossorigin> <link rel="preconnect" href="https://cdn.example.ru" crossorigin> <!-- API сервер якщо він на іншому домені --> <link rel="preconnect" href="https://api.example.ru"> <!-- dns-prefetch: тільки DNS, без TCP (для менш критичних) --> <link rel="dns-prefetch" href="https://analytics.google.com"> <link rel="dns-prefetch" href="https://mc.yandex.ru"> </head> 

crossorigin потрібен для ресурсів з CORS (шрифти, JSON API).

preload — пріоритетне завантаження ресурсів поточної сторінки

<head> <!-- LCP-зображення — найважливіший preload --> <link rel="preload" as="image" href="/images/hero.webp" imagesrcset="/images/hero-640.webp 640w, /images/hero-1280.webp 1280w" imagesizes="100vw"> <!-- Кастомний шрифт --> <link rel="preload" as="font" type="font/woff2" href="/fonts/inter-regular.woff2" crossorigin> <!-- Критичний JS-модуль (не defer/async) --> <link rel="preload" as="script" href="/js/checkout.js"> <!-- CSS (якщо не в <head> напряму) --> <link rel="preload" as="style" href="/css/above-fold.css" onload="this.onload=null;this.rel='stylesheet'"> </head> 

Типи ресурсів: image, script, style, font, fetch, document, track, audio, video.

prefetch — передзавантаження наступної сторінки

<!-- На сторінці кошика — prefetch сторінки оформлення замовлення --> <link rel="prefetch" href="/checkout"> <link rel="prefetch" as="script" href="/js/checkout.chunk.js"> <link rel="prefetch" as="style" href="/css/checkout.css"> 

Браузер завантажує prefetch у фоні з низьким пріоритетом — тільки коли основні ресурси вже завантажені.

Як Speculation Rules API покращує prefetch?

Prefetch завантажує ресурси у фоні — якщо користувач не переходить, трафік витрачається даремно. Speculation Rules API дозволяє пре-рендерити сторінку повністю або налаштувати eagerness. Це дає миттєву навігацію без втрати пропускної здатності.

<script type="speculationrules"> { "prerender": [ { "where": { "and": [ { "href_matches": "/products/*" }, { "not": { "href_matches": "/api/*" } } ] }, "eagerness": "moderate" } ], "prefetch": [ { "urls": ["/checkout", "/cart"], "eagerness": "eager" } ] } </script> 

Значення eagerness: immediate, eager, moderate, conservative.

Early Hints (103)

Сервер надсилає preload-заголовки до формування основної відповіді — поки бекенд генерує HTML, браузер вже починає завантажувати ресурси. Це дає виграш 100–200 мс в TTFB.

# Nginx з модулем http_v2_module location / { http2_push /css/app.css; http2_push /js/app.js; http2_push /fonts/inter.woff2; } 

Типові помилки та як їх уникнути

Помилка Рішення
Preload невикористовуваного ресурсу Перевіряйте, що ресурс дійсно критичний, через Coverage в DevTools
Preload шрифту без crossorigin Завжди додавайте crossorigin до шрифтів
Занадто багато preload Обмежтеся 2–3 директивами на сторінку
Preload + lazy loading Використовуйте preload тільки для LCP; решта — lazy

Що входить у налаштування Resource Hints?

  • Аудит поточного профілю завантаження (Lighthouse, WebPageTree).
  • Розстановка preconnect до критичних сторонніх доменів.
  • Preload LCP-зображення та критичних шрифтів.
  • Prefetch сторінок з високим відсотком переходів.
  • Інтеграція Speculation Rules API (Chrome).
  • Документація по впроваджених hints та рекомендації з підтримки.
  • Гарантія, що Core Web Vitals не впадуть після релізу.

Терміни та вартість

Терміни: від 4 до 16 годин залежно від розміру проекту та кількості сторінок. Точну вартість розраховуємо індивідуально — зв'яжіться з нами для оцінки. Замовте аудит завантаження: наші інженери з понад 5 років досвіду допоможуть прискорити ваш сайт. Ми гарантуємо покращення LCP та FCP на 200–800 мс.