Одним из ключевых факторов повышения производительности
веб-приложений является управление приоритетом загрузки
ресурсов. Браузеры по умолчанию сами распределяют приоритеты,
но разработчик может влиять на этот процесс через атрибуты
preload и fetchpriority, что особенно
актуально для показателей Web Vitals, таких как Largest
Contentful Paint (LCP) и First Input Delay
(FID).
Атрибут <link rel="preload"> позволяет браузеру
заранее запросить ресурсы, которые будут нужны на странице, даже до
того, как они встретятся в обычной разметке. Это особенно важно для
крупных изображений, шрифтов и JavaScript, которые
напрямую влияют на LCP.
Пример использования для изображения:
<link rel="preload" href="/images/hero.jpg" as="image">
Ключевые моменты:
script, style,
image, font и т.д.).Для шрифтов:
<link rel="preload" href="/fonts/Inter.woff2" as="font" type="font/woff2" crossorigin="anonymous">
crossorigin обязателен, если шрифт загружается
с другого домена.preload не гарантирует немедленное
отображение ресурса, но создаёт высокий приоритет
загрузки.fetchpriority — более новый способ управления
приоритетом загрузки. Он работает как для <img> и
<iframe>, так и для <script> и
<link>. Возможные значения:
high — ресурс критический, загрузка должна выполняться
немедленно.low — ресурс второстепенный, загрузка может быть
отложена.auto — браузер решает сам (по умолчанию).Примеры:
Для изображения LCP:
<img src="/images/hero.jpg" fetchpriority="high" alt="Главный баннер">
Для вспомогательного скрипта:
<script src="/scripts/analytics.js" fetchpriority="low" defer></script>
Преимущества:
preload и fetchpriorityДля максимальной оптимизации ресурсов часто применяются оба механизма одновременно. Пример для шрифта, влияющего на LCP:
<link rel="preload" href="/fonts/Inter.woff2" as="font" type="font/woff2" crossorigin="anonymous" fetchpriority="high">
preload сообщает браузеру заранее запросить
ресурс.fetchpriority="high" гарантирует, что ресурс будет
загружен с максимальным приоритетом.Такой подход снижает время отображения контента и повышает показатели Core Web Vitals.
<img> и
<iframe> с высокой значимостью можно пометить
high, второстепенные — low.Эти методы позволяют создавать страницы с быстрой визуальной загрузкой, контролируемым приоритетом ресурсов и улучшенными показателями производительности.