SEO-оптимизация5 мин чтения

Lazy load на сайте: как ускорить страницы и не потерять SEO

Lazy load — это отложенная загрузка: картинки, видео и карты ниже первого экрана подгружаются, когда посетитель до них доскроллил. Для сайта, который открывают с телефона по мобильному интернету, это один из самых недорогих способов ускорить страницу. Но при неверной настройке lazy load замедляет главный экран и прячет картинки от поисковика.

Зачем сайту lazy load

Без отложенной загрузки браузер скачивает все картинки страницы сразу, даже те, до которых человек не доберётся. Возьмём интернет-магазин одежды в Ташкенте: в каталоге несколько десятков карточек, трафик идёт из Instagram и Telegram, а большинство покупателей открывает ссылку с телефона, иногда в районе со слабым сигналом. Если каждая фотография грузится сразу, первый экран появляется поздно, и часть людей закрывает вкладку.

С lazy load первым грузится то, что видно сразу, а остальное подтягивается по мере прокрутки. Выигрывают скорость, трафик посетителя и нагрузка на хостинг. Для SEO это важно через метрики Core Web Vitals: LCP (как быстро появился главный элемент) и CLS (насколько страница «прыгает»). Оба показателя зависят от того, как именно вы отложили загрузку.

Как включить lazy load правильно: пошагово

Самый надёжный вариант сегодня — встроенный атрибут браузера. Скрипты и плагины не нужны, адрес картинки остаётся в обычном теге, а робот поисковика его видит.

  • Найдите в шаблоне теги img и iframe, которые расположены ниже первого экрана: галерея, карточки товаров, блок отзывов, подвал.
  • Добавьте им атрибут loading="lazy". В WordPress, Tilda, Bitrix и большинстве современных CMS это уже делается настройкой или по умолчанию, поэтому сначала посмотрите исходный код.
  • Укажите у каждой картинки width и height (или CSS-пропорцию), чтобы под неё заранее резервировалось место.
  • Заполните alt: отложенная картинка участвует в поиске по изображениям так же, как обычная.
  • Главную картинку первого экрана оставьте без lazy и при необходимости дайте ей повышенный приоритет загрузки.
  • Проверьте результат на телефоне и в отчётах скорости, а не только на мощном компьютере.

Что нельзя откладывать

Главная ошибка — включить lazy на все картинки подряд. Браузер тогда узнаёт о баннере позже, чем мог бы, и LCP ухудшается: вы сами замедлили самое важное.

  • Баннер или фото товара на первом экране.
  • Логотип и иконки в шапке.
  • Первый слайд в слайдере (остальные откладывать можно).
  • Картинку, которая служит LCP-элементом страницы.
  • Всё, что появляется без прокрутки на типичном экране смартфона.

Как поисковик видит отложенные картинки

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

Правила простые: используйте атрибут браузера или реализацию, которая срабатывает при попадании элемента в область видимости; держите настоящий адрес в src или srcset, а не только в служебном атрибуте скрипта; для контента, который подгружается порциями, делайте отдельные ссылки и включайте страницы в карту сайта.

Сравнение вариантов реализации

Встроенный атрибут: минимум кода, адрес в разметке, риск для индексации низкий. Подходит для большинства сайтов.

Скрипт на основе отслеживания области видимости: нужен, когда требуется особое поведение, например эффект появления или фоновые изображения в CSS, на которые атрибут не действует. Важно, чтобы реальный адрес всё равно был доступен роботу.

Старый скрипт, который прячет адрес в нестандартном атрибуте и ждёт прокрутки: источник проблем. Такое встречается в устаревших темах и плагинах, и его лучше заменить. Нельзя также включать скрипт и встроенный атрибут одновременно: они начнут конфликтовать.

Как проверить, что всё работает

Проверка занимает немного времени, но именно она отделяет нормальную настройку от тихой потери трафика.

  • Откройте исходный код страницы: в src стоит настоящий адрес картинки или заглушка.
  • В Search Console запустите проверку URL и посмотрите отрисованный HTML и скриншот робота: картинки должны быть на месте.
  • В отчёте Lighthouse или PageSpeed найдите LCP-элемент и убедитесь, что он не отложен.
  • Сравните LCP и CLS до и после изменений, ориентируясь на реальные данные, а не на один замер.
  • Прокрутите страницу на телефоне при медленном соединении: картинки должны появляться вовремя, без белых провалов и скачков.

Видео, карты и виджеты тоже можно отложить

Иногда тяжелее картинок оказываются встроенные блоки. Плеер YouTube можно заменить обложкой и загружать сам плеер по нажатию. Карту в блоке контактов стоит подгружать, когда человек дошёл до неё. Виджеты чатов и отзывов лучше запускать после основной загрузки страницы. Для iframe работает тот же атрибут loading.

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

Частые ошибки и итоговый чек-лист

Кроме уже названных, встречаются такие промахи: нет размеров у картинок и страница прыгает; в каталоге робот видит только заглушки; нет alt; на одной странице сотни фотографий, которые подгружаются рывками при быстрой прокрутке. Последнее лечится пагинацией или разумным числом карточек.

Короткий чек-лист: первый экран без lazy; ниже первого экрана встроенный lazy с размерами; тяжёлые блоки по прокрутке или по клику; в коде реальные адреса; проверка в Search Console; сравнение LCP и CLS после правок.

Если хотите, чтобы это сделали аккуратно, команда markdev проверит шаблоны вашего сайта и подберёт настройки в рамках SEO-оптимизации сайта в Узбекистане. Опишите задачу, и мы подскажем, с чего начать.

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

Вредит ли lazy load SEO?

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

Нужно ли ставить lazy на все картинки?

Нет. Картинки первого экрана, логотип и первый слайд должны грузиться сразу. Откладывайте только то, что находится ниже.

Почему после lazy load страница стала прыгать?

Скорее всего, у картинок не указаны ширина и высота. Браузер не знает, сколько места резервировать, и при загрузке сдвигает контент. Задайте размеры или пропорцию.

Работает ли lazy load для фоновых изображений в CSS?

Встроенный атрибут на них не действует. Нужна отдельная реализация, например подключение класса со стилем, когда блок попадает в область видимости.

Как понять, что робот видит мои картинки?

Проверьте URL в Search Console, посмотрите отрисованный HTML и скриншот. Если вместо картинок заглушки, замените скрипт на встроенный механизм.

Нужен ли lazy load небольшому сайту-визитке?

Если на странице мало картинок и все они на первом экране, выигрыш невелик. Для каталогов, блогов и длинных лендингов эффект заметнее.

Разберём вашу задачу бесплатно

Оставьте контакт — за 15 минут созвона покажем, где теряются заявки и что сделать в первую очередь.