BrandEvo

Скорость сайта

Lazy-loading правильно: не сломать LCP

Отложенная загрузка картинок и iframe экономит трафик и ускоряет сайт, но при неаккуратной настройке она замедляет главный экран и роняет Core Web Vitals. Разбираемся, что и как откладывать, а что — наоборот, грузить как можно быстрее.

LAZY-LOADINGLCPCORE WEB VITALSLOADING=LAZYFETCHPRIORITYИЗОБРАЖЕНИЯСКОРОСТЬLAZY-LOADINGLCPCORE WEB VITALSLOADING=LAZYFETCHPRIORITYИЗОБРАЖЕНИЯСКОРОСТЬ
lazy-loading правильно

Lazy-loading — это техника, при которой браузер откладывает загрузку картинок, видео и iframe до того момента, когда они становятся нужны. На длинных страницах это экономит мегабайты трафика и ускоряет первую отрисовку. Но если применить её к главному изображению экрана, метрика LCP не улучшится, а наоборот ухудшится.

01Что такое lazy-loading и какую задачу он решает

Любой сайт грузит в браузер десятки ресурсов: HTML, CSS, JS, шрифты, картинки, скрипты аналитики. Чем больше ресурсов в первом запросе, тем дольше пользователь видит белый экран. Lazy-loading позволяет отложить загрузку всего, что не нужно прямо сейчас — например, картинок в подвале или в карусели на пятом экране.

В современных браузерах для этого достаточно атрибута loading=”lazy” у тегов <img> и <iframe>. Никаких внешних скриптов и хитрых обсёрверов не нужно — браузер сам решит, когда загружать. Это нативный механизм, поддерживаемый всеми актуальными браузерами.

Главное правило: lazy-loading нужен везде, где элемент находится ниже первого экрана. И только там.

02Почему ленивая загрузка может ухудшить LCP

LCP (Largest Contentful Paint) — метрика, показывающая, как быстро на экране появляется самый крупный видимый элемент. Чаще всего это баннер на главной, фото товара в карточке или иллюстрация в шапке статьи. Если поставить такому изображению loading="lazy", браузер отложит его загрузку и начнёт качать только после того, как обработает остальной HTML и CSS. В итоге картинка появится с задержкой, а LCP вырастет.

В материале про LCP на практике мы разбираем, какие правки дают самый быстрый эффект. Lazy-loading главного изображения — одна из частых ошибок, особенно после установки плагинов оптимизации, которые включают «ленивую» загрузку оптом для всех картинок без исключений.

Lazy-loading главного экрана почти всегда вредит. Этот блок должен грузиться приоритетно, а не откладываться.

03Что откладывать, а что грузить сразу

Простое правило: разделите страницу мысленно на «над линией сгиба» (то, что видно без скролла) и «под линией сгиба» (всё остальное). Логика по умолчанию выглядит так:

  • Главный визуал и логотип в шапке — без lazy, грузим как можно раньше.
  • Изображения в карусели и слайдере на первом экране — первый слайд без lazy, остальные можно с lazy.
  • Картинки в статьях, карточках товаров, портфолио ниже первого экранаloading="lazy" обязательно.
  • iframe с картами, видео YouTube, виджетами соцсетей — почти всегда lazy, они тяжёлые.
  • Декоративные фоны (background-image) — атрибут не поддерживается, нужно лениво грузить через CSS-классы или Intersection Observer.

Для приоритетных картинок используйте обратный механизм — атрибут fetchpriority=”high”. Он подсказывает браузеру, что этот ресурс важнее остальных и его нужно качать раньше CSS-картинок и шрифтов.

04Технические нюансы: атрибуты, размеры, fallback

Всегда указывайте width и height

У каждого тега <img> должны быть заданы реальные размеры — либо атрибутами, либо через CSS aspect-ratio. Иначе при отложенной загрузке макет «прыгает», и страдает метрика CLS. Этот момент мы подробно разбирали в статье об ускорении сайта.

Сочетайте с современными форматами

Lazy-loading даёт прибавку в скорости, но не отменяет необходимости конвертировать изображения в WebP или AVIF. Связка «лёгкий формат + lazy ниже сгиба + приоритет для главного» даёт лучший результат.

Помните про SEO

Поисковые роботы Яндекса и Google умеют исполнять JavaScript, но картинки, подгруженные сложными скриптами и плейсхолдерами, могут не попасть в индекс изображений. Нативный loading="lazy" в этом смысле безопаснее самописных решений.

05Lazy-loading на WordPress и других CMS

На WordPress, начиная с версии 5.5, атрибут loading="lazy" добавляется к картинкам автоматически. Это решение по умолчанию неплохое, но есть тонкость: ядро WP пропускает атрибут у первой картинки в контенте — именно для защиты LCP. Если вы поставили плагин оптимизации, который перебивает это поведение и навешивает lazy на всё подряд, метрики рухнут.

Что проверить:

  • В исходном коде первой картинки на странице не должно быть loading="lazy".
  • В плагине кэширования отключите «lazy для всех изображений без исключений» или добавьте селектор главного баннера в исключения.
  • Для главного изображения вручную проставьте fetchpriority="high" — это работает и в шаблонах, и в Elementor через дополнительные классы.

06Как проверить, что lazy-loading настроен правильно

После любых правок прогоните страницу через PageSpeed Insights и Lighthouse. В разделе «Возможности» отдельно отображается подсказка «Изображение, отвечающее за LCP, было загружено с задержкой» — это прямой сигнал, что lazy стоит там, где не должен. Дополнительно посмотрите вкладку Network в DevTools: главные ресурсы экрана должны появляться в первых строках.

В Яндекс.Метрике отслеживайте показатель «Время до отображения контента» в отчётах по скорости — после правильной настройки он, как правило, заметно снижается на мобильных устройствах.

// Как это работает в BrandEvo

Скорость как часть подписки

В подписке мы настраиваем lazy-loading вместе с приоритетами LCP, размерами и форматами картинок — без отдельного счёта. Каждый месяц проверяем Core Web Vitals и точечно правим то, что роняет метрики.

Официальная документация по теме — Справка Яндекс.Вебмастера.

Сайт грузится медленно?

Проверим скорость, найдём, где lazy-loading настроен неправильно, и точечно поправим LCP без переделки сайта.


Частые вопросы

Подходит ли подписка BrandEvo моему бизнесу?

Подписка работает для малого и среднего бизнеса в России. Тариф «Старт» — 200 000 ₽/год для услуг и небольших проектов, «E-commerce» — 400 000 ₽/год для интернет-магазинов. Подробное сравнение — на странице тарифов.

Что входит в подписку маркетинга?

Полный цикл: SEO, контекстная реклама, контент-маркетинг, email-рассылки, дизайн, веб-аналитика и разработка под задачу. Не отдельные услуги, а одна команда под результат.

Можно ли начать, если у меня ещё нет сайта?

Да. Если сайта нет — в первый месяц делаем посадочную страницу или лендинг. Если есть — проводим аудит и улучшаем. Создание и поддержка сайта входят в подписку.

Смотреть тарифы →
Карта блога — все статьи