Оптимизация CLS

Устранение непредвиденных сдвигов макета (Cumulative Layout Shift): изображения, шрифты, динамический контент.

📖6 мин чтения📊Уровень 9📅16 апреля 2026 г.

Загрузка карты...

Что такое CLS и почему он важен

Cumulative Layout Shift (CLS) — метрика стабильности макета. Измеряет, насколько непредвиденно смещаются элементы страницы в процессе загрузки. Хорошее значение: менее 0,1. Высокий CLS раздражает пользователей: кнопка, которую вы собирались нажать, вдруг съезжает вниз.

Основные причины CLS

Изображения без явных размеров

Браузер не знает размер изображения до его загрузки и не резервирует место. Решение: всегда указывать width и height в HTML или использовать CSS aspect-ratio.

Динамически вставляемый контент

Баннеры, уведомления о cookie, чат-боты — всё, что вставляется в DOM после загрузки и сдвигает контент. Решение: резервировать место заранее (min-height для контейнера).

Веб-шрифты без font-display

Без font-display: swap браузер сначала показывает системный шрифт, затем заменяет его веб-шрифтом. Замена вызывает сдвиг. Решение: font-display: swap + preload для критических шрифтов.

Анимации и переходы

Анимации, влияющие на layout (изменение width, height, padding), вызывают CLS. Используйте transform и opacity — они не влияют на layout.

Как измерить CLS

  • Chrome DevTools → Performance → Layout Shifts (выделены синим)
  • PageSpeed Insights — показывает элементы с наибольшим сдвигом
  • Search Console → Основные Web-показатели

Быстрые победы для снижения CLS

  • Добавить width/height всем тегам img
  • Зафиксировать высоту рекламных блоков
  • Добавить font-display: swap в @font-face
  • Не вставлять контент над существующим без резервирования места

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

Добавьте атрибуты width/height всем изображениям и задайте font-display: swap для веб-шрифтов.