TGViewer
Катерина | Про Frontend Катерина | Про Frontend @katerina_profrontend · 2.86K subscribers
Post #1538 1.64K
Cumulative Layout Shift: почему страница «прыгает» и как это остановить 🤓

Cumulative Layout Shift (CLS) — это метрика, которая показывает, насколько часто и насколько сильно элементы страницы неожиданно смещаются после первого рендера. Браузер для каждого такого сдвига оценивает, какая часть экрана была затронута и как далеко элементы уехали, а затем суммирует эти значения. В итоге CLS отражает не скорость загрузки, а стабильность интерфейса во времени.


📚 Откуда берётся CLS

Почти всегда причина одна и та же — неопределённость размеров.
Если в момент первого расчёта layout браузер не знает, сколько места займёт элемент, он не резервирует пространство. Когда элемент появляется или меняет свои размеры, браузеру приходится перестраивать макет, и пользователь видит «прыжок».

На практике чаще всего виноваты изображения, но не только они. 😁 Подробности на картинках выше!

Как итог, CLS возникает не потому, что ресурсы загружаются медленно, а потому что браузеру слишком поздно сообщают геометрию интерфейса.

➡️ width/height для <img>, aspect-ratio для контейнеров, резервирование слотов под шрифты, рекламу и динамическое изменение превращают догадки браузера в знание. А когда браузер знает размеры заранее, странице просто некуда прыгать. 👍
  • 👍 20
  • ❤‍🔥 4
More from @katerina_profrontend
  1. Feb 22, 2026Когда height: 100% чуть-чуть поломало вёрстку 🙈 Я делала простую сетку: контейнер display…
  2. Feb 20, 2026Разбираемся с Proxy в JavaScript 👨‍🏫 Proxy — посредник между кодом и объектом. Он перехв…
  3. Feb 17, 2026Compression Streams API — нативный gzip/deflate прямо в браузере 🤔 Недавно снова вспомнил…
  4. Feb 9, 2026Почему бизнес-логику не стоит писать в UI-компонентах 🧐 Часто вижу один и тот же паттерн:…
  5. Feb 6, 2026Как неочевидные импорты превращают проект в клубок зависимостей 😨 На бумаге — простое пра…
  6. Feb 2, 2026«Хочу стиль для p в header, но не хочу повышать специфичность» 😎 Иногда самая тривиальная…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →