Перейти к содержимому
Skip to content
← Все статьи

Resource Hints: Prefetch, Preload, Preconnect и DNS-Prefetch

Ресурсные подсказки: Prefetch, Preload, Preconnect, DNS-Prefetch

Ресурсные подсказки (resource hints) — это HTML-директивы, которые помогают браузеру оптимизировать загрузку ресурсов. Сообщая браузеру о необходимых ресурсах заранее, вы можете устранить сетевые задержки, сократить время блокировки рендеринга и значительно улучшить производительность загрузки страницы. Понимание различий между каждой подсказкой необходимо для их правильного применения.

Обзор ресурсных подсказок

ПодсказкаНазначениеПриоритетКогда использовать
dns-prefetchРазрешение DNS для внешнего доменаНизкийСторонние ресурсы
preconnectDNS + TCP + TLS-рукопожатиеСреднийКритичные сторонние источники
prefetchЗагрузка ресурса для будущей навигацииНизкийРесурсы следующей страницы
preloadЗагрузка ресурса для текущей страницыВысокийКритичные ресурсы текущей страницы

DNS-Prefetch

Подсказка dns-prefetch говорит браузеру выполнить DNS-разрешение для домена до того, как будут запрошены какие-либо ресурсы с этого домена. DNS-запросы обычно занимают 20-120 мс, поэтому их раннее разрешение убирает эту задержку из критического пути.

<link rel="dns-prefetch" href="https://fonts.googleapis.com">
<link rel="dns-prefetch" href="https://cdn.analytics.com">
<link rel="dns-prefetch" href="https://api.example.com">

Когда использовать DNS-Prefetch

Ограничения

DNS-prefetch только разрешает доменное имя в IP геолокацию. Он не устанавливает TCP-соединение и не выполняет TLS-рукопожатие. Для критичных ресурсов preconnect более эффективен.

Preconnect

Подсказка preconnect идет дальше dns-prefetch. Она выполняет DNS-разрешение, устанавливает TCP-соединение и завершает TLS-рукопожатие — все до запроса какого-либо ресурса. Это может сэкономить 100-500 мс на каждом соединении в сетях с высокой задержкой.

<link rel="preconnect" href="https://fonts.googleapis.com">
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
<link rel="preconnect" href="https://api.example.com">

Атрибут crossorigin

Атрибут crossorigin критически важен и часто неправильно понимается. Когда ресурс будет загружен с CORS (шрифты, fetch API запросы), необходимо включить crossorigin в preconnect-ссылку. Без него браузер устанавливает другое соединение, которое нельзя переиспользовать для CORS-запросов, полностью теряя эффект preconnect.

Когда использовать Preconnect

Важные предупреждения

Prefetch

Подсказка prefetch запрашивает ресурс, который, вероятно, понадобится при будущей навигации. Браузер загружает его с низким приоритетом в свободное время и сохраняет в HTTP-кэше для дальнейшего использования.

<link rel="prefetch" href="/next-page.html">
<link rel="prefetch" href="/assets/js/checkout.js">
<link rel="prefetch" href="/api/products?page=2" as="fetch">

Когда использовать Prefetch

Поведение Prefetch

Предзагруженные ресурсы скачиваются с наименьшим приоритетом. Они не конкурируют с критичными ресурсами текущей страницы. Браузер может полностью пропустить prefetch, если сеть медленная или устройство использует лимитированное соединение.

Preload

Подсказка preload — самая мощная из ресурсных подсказок. Она говорит браузеру немедленно загрузить ресурс, необходимый для текущей страницы. В отличие от prefetch, preload загружает с высоким приоритетом, и ресурс должен использоваться на текущей странице.

<link rel="preload" href="/fonts/inter.woff2" as="font" type="font/woff2" crossorigin>
<link rel="preload" href="/assets/css/critical.css" as="style">
<link rel="preload" href="/assets/js/app.js" as="script">
<link rel="preload" href="/hero-image.webp" as="image">

Атрибут as

Атрибут as обязателен для preload. Он сообщает браузеру тип загружаемого ресурса, что определяет:

Значение asТип ресурса
scriptJavaScript-файлы
styleCSS-стили
fontВеб-шрифты (всегда нужен crossorigin)
imageИзображения
fetchFetch/XHR-запросы
documentHTML-документы (для iframe)

Частые ошибки при Preload

Схема принятия решений

Используйте этот алгоритм для выбора подходящей подсказки:

  1. Ресурс на стороннем домене? Начните с dns-prefetch или preconnect.
  2. Ресурс критичен для текущей страницы? Используйте preload.
  3. Ресурс нужен для будущей страницы? Используйте prefetch.
  4. Нужно полное соединение немедленно? Используйте preconnect.
  5. Это низкоприоритетный внешний домен? Используйте dns-prefetch.

Измерение эффекта

Всегда измеряйте влияние ресурсных подсказок с помощью:

Итоги

Ресурсные подсказки — мощные инструменты оптимизации загрузки страницы, но они требуют аккуратного применения. Используйте dns-prefetch для низкоприоритетных внешних доменов, preconnect для критичных сторонних источников, preload для необходимых ресурсов текущей страницы и prefetch для предполагаемых будущих навигаций. Всегда измеряйте результаты и не злоупотребляйте подсказками — их избыток может ухудшить, а не улучшить производительность.

Проверьте ваш сайт прямо сейчас

Проверить →
Другие статьи: Производительность
Производительность
Оптимизация изображений для веба
14.03.2026 · 16 просм.
Производительность
Latency и Throughput: ключевые метрики производительности сети
16.03.2026 · 32 просм.
Производительность
Метрики производительности API
14.03.2026 · 12 просм.
Производительность
Инвалидация кеша CDN: стратегии доставки свежего контента
16.03.2026 · 17 просм.