Resource Hints: preload, prefetch, preconnect — ускорение загрузки

Зачем нужны Resource Hints?

Разработка и обслуживание любых видов сайтов:

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

Это лишь некоторые из технических типов сайтов, с которыми мы работаем, и каждый из них может иметь свои специфические особенности и функциональность, а также быть адаптированным под конкретные потребности и цели клиента

Услуги, которые мы предлагаем
Показано 1 из 1Все 2062 услуг
Resource Hints: preload, prefetch, preconnect — ускорение загрузки
Средний
от 1 дня до 3 дней

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

Часто задаваемые вопросы

Последние работы

  • image_website-b2b-advance_0.webp
    Разработка сайта компании B2B ADVANCE
    1419
  • image_web-applications_feedme_466_0.webp
    Разработка веб-приложения для компании FEEDME
    1287
  • image_websites_belfingroup_462_0.webp
    Разработка веб-сайта для компании БЕЛФИНГРУПП
    983
  • image_ecommerce_furnoro_435_0.webp
    Разработка интернет магазина для компании FURNORO
    1245
  • image_crm_enviok_479_0.webp
    Разработка веб-приложения для компании Enviok
    983
  • image_bitrix-bitrix-24-1c_fixper_448_0.webp
    Разработка веб-сайта для компании ФИКСПЕР
    998

Зачем нужны Resource Hints?

С каждым годом требования к скорости загрузки растут: Core Web Vitals стали фактором ранжирования. Resource Hints — один из самых эффективных инструментов для снижения LCP и TTFB без изменения архитектуры. Однако неверное использование preload или preconnect может ухудшить производительность — ресурсы загружаются с неправильным приоритетом или дублируются. Разберём, как правильно применять dns-prefetch, preconnect, preload и prefetch, и покажем реальный кейс.

На одном из проектов с каталогом на 10 000 товаров мы снизили LCP с 3,2 с до 2,1 с благодаря комбинации preconnect к CDN и preload для LCP-изображения — экономия 1,1 с на мобильных. Внедрение заняло 6 часов: аудит указал на отсутствие preconnect к шрифтам и неверный crossorigin у preload. Экономия времени загрузки составила до 40%.

Как работают директивы Resource Hints?

  • dns-prefetch — резолвит DNS для домена. Минимальные затраты, экономия 20–120 мс.
  • preconnect — DNS + TCP + TLS. Экономия 100–500 мс, но дороже. Только для точно нужных сторонних доменов.
  • preload — загрузка с высоким приоритетом. Критично для LCP-изображения, основного шрифта, критического CSS.
  • prefetch — загрузка с низким приоритетом для следующей страницы. Используется в простое браузера.
Директива Когда использовать Ресурс
dns-prefetch Сторонние домены (аналитика, CDN)
preconnect Точные сторонние домены (шрифты, API)
preload Критичные ресурсы текущей страницы LCP-изображение, шрифты, critical CSS
prefetch Ресурсы следующей страницы JS-чанки, HTML, данные

Когда использовать preload, а когда prefetch?

Preload загружает с высоким приоритетом, что делает ресурс доступным в 2-3 раза быстрее, чем при стандартном обнаружении. Prefetch загружает с низким приоритетом только в простое браузера, не влияя на текущую загрузку. Preload применяется для ресурсов текущей страницы: LCP-изображение, основной шрифт, критический CSS. Prefetch — для ресурсов следующей страницы: JS-бандл для страницы каталога при переходе из корзины.

Почему preconnect критичен для шрифтов?

Шрифты обычно загружаются с внешнего домена (например, Google Fonts). Без preconnect браузер сначала выполняет DNS-запрос, затем TCP и TLS – это может занять до 300 мс. Preconnect устанавливает соединение заранее, экономя драгоценные миллисекунды для FOUT. Важно указывать атрибут crossorigin для шрифтов, иначе браузер выполнит два запроса: один по preload, второй при обнаружении в CSS. Согласно спецификации W3C, preconnect должен использоваться только для критичных доменов, не более 6.

Что предзагружать в первую очередь?

Типичный набор для страницы:

  • Preconnect к Google Fonts, CDN, API-серверу.
  • Preload LCP-изображения (fetchpriority="high").
  • Preload основного шрифта (с crossorigin).
  • Prefetch для вероятной следующей страницы (например, корзина после каталога).

Без preload шрифт загрузится только после парсинга CSS — возникает FOUT (flash of unstyled text). С preload и preconnect он доступен сразу.

Как мы реализуем Resource Hints

Мы размещаем Resource Hints двумя способами: серверный HTTP-заголовок Link (получается до парсинга HTML) и теги <link> в <head>. Выбор зависит от стека и требований.

Пример для Laravel:

// app/Http/Middleware/ResourceHints.php class ResourceHints { public function handle(Request $request, Closure $next): Response { $response = $next($request); $hints = [ '<https://fonts.googleapis.com>; rel=preconnect', '<https://fonts.gstatic.com>; rel=preconnect; crossorigin', '</fonts/Inter-Regular.woff2>; rel=preload; as=font; type="font/woff2"; crossorigin', ]; if ($request->routeIs('catalog.*')) { $hints[] = '</assets/product-page-chunk.js>; rel=prefetch; as=script'; } $response->headers->set('Link', implode(', ', $hints)); return $response; } } 

Для React/Next.js используем динамический <Head>:

import Head from 'next/head'; export default function ProductPage({ product }) { return ( <> <Head> <link rel="preconnect" href="https://cdn.example.com" /> {product.heroImage && ( <link rel="preload" href={product.heroImage} as="image" fetchpriority="high" /> )} </Head> {/* ... */} </> ); } 

Этапы внедрения Resource Hints

  1. Аудит текущих подсказок через Lighthouse и вкладку Network. Выявляем отсутствующие или неверные директивы.
  2. Настройка preconnect для всех сторонних доменов (CDN, шрифты, API, аналитика).
  3. Установка preload для LCP-изображения, критического CSS и шрифтов с корректным атрибутом crossorigin.
  4. Реализация серверного HTTP-заголовка Link и динамического prefetch на основе навигации (hover-префетч).
  5. Тестирование и документирование результатов.

Процесс работы и сроки

Этап Длительность Результат
Аудит текущих подсказок 2–3 ч Отчёт с рекомендациями
Настройка preconnect + preload 2–3 ч Готовые теги и заголовки
Реализация prefetch 1–2 дн Динамический prefetch по страницам
Оптимизация и тестирование 4–8 ч Готовый проект с метриками

Базовый набор (preconnect + preload для LCP) — от 4 до 8 часов. Полное внедрение с динамическим prefetch — от 1 до 3 рабочих дней.

Типичные ошибки при настройке

  • Preload ресурса, который не используется на странице (консольная ошибка).
  • Preconnect для одного и того же домена совместно с dns-prefetch (избыточно).
  • Preload шрифтов без crossorigin (двойная загрузка).
  • Более 6 preconnect (начинают мешать критичным запросам).

Доверие и гарантии

Наши инженеры сертифицированы по Laravel и Next.js. Более 5 лет на рынке, 40+ проектов по оптимизации производительности. Гарантируем снижение LCP на 15–30% после внедрения. Свяжитесь с нами для аудита вашего проекта — это бесплатно. Закажите внедрение Resource Hints и получите консультацию.