-10%Переходите к нам от другого подрядчика — дадим скидку на первый этап работ

Cumulative Layout Shift: как убрать скачки вёрстки

Как убрать скачки вёрстки и снизить Cumulative Layout Shift (CLS) на сайте 1С-Битрикс

Пользователь читает описание товара, тянется нажать «Купить» — и в этот миг сверху догружается баннер, вся страница прыгает вниз, а палец попадает по соседней ссылке. Это не мелочь: скачки вёрстки бесят, ломают взаимодействие и роняют конверсию. Метрика Cumulative Layout Shift (CLS) как раз измеряет эту нестабильность.

Эта статья — практический разбор того, как убрать скачки вёрстки на сайте 1С-Битрикс: от размеров картинок и резерва места под баннеры до веб-шрифтов, динамического контента и композита. CLS входит в Core Web Vitals и влияет и на UX, и на ранжирование, поэтому его снижение — часть общей работы по производительности, которую мы ведём в рамках аудита и оптимизации на 1С.

Коротко

  • CLS измеряет, насколько контент «прыгает» при загрузке; высокий CLS ломает клики и доверие.
  • Задавайте размеры (width/height или aspect-ratio) всем изображениям — это базовый приём.
  • Резервируйте место под баннеры, персональные цены и динамические блоки заранее.
  • Веб-шрифты, ленивая загрузка и композит дают скачки, если не резервировать место под контент.

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

Cumulative Layout Shift — одна из метрик Core Web Vitals, набора показателей, которыми оценивают качество пользовательского опыта. CLS фиксирует неожиданные сдвиги видимых элементов во время загрузки: чем сильнее и чаще контент смещается, тем выше значение. Хороший сайт стремится к минимальному CLS, когда после появления контент остаётся на месте.

Важность CLS двойная. С одной стороны, это прямой сигнал качества для поисковых систем — стабильность входит в оценку страницы. С другой — это реальный пользовательский опыт: дёрганая страница воспринимается как небрежная и ненадёжная. Для интернет-магазина, где каждый клик ведёт к покупке, стабильность вёрстки — вопрос выручки.

Как скачки бьют по конверсии

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

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

Как задача превращается в результат Задачачто решаемПодходкак делаемРеализацияна 1С-БитриксПроверкаметрики, тестыРезультатэффект для бизнеса
Схема: любая доработка проходит путь от постановки задачи к реализации на 1С-Битрикс и проверке по метрикам — важен измеримый результат, а не факт правки.

Основные причины скачков вёрстки

Чтобы системно убрать CLS, нужно знать все его источники. В магазине на 1С-Битрикс их обычно несколько.

ИсточникЧто происходитРешение
Картинки без размеровПосле загрузки распирают блокЗадать width/height или aspect-ratio
Баннеры и рекламаПоявляются и толкают контентЗарезервировать место
Веб-шрифтыПодмена шрифта меняет высотуfont-display, предзагрузка
Динамические блокиЦены, отзывы догружаются позжеПлейсхолдеры фиксированной высоты
Вставки скриптамиЭлементы добавляются в потокРезервировать место или вставлять снизу

Каждую причину лечат по-своему, но объединяет их один принцип: место под контент должно быть известно и зарезервировано до того, как контент появится. Тогда сдвигать нечего.

Главный принцип борьбы с CLS: резервируй место заранее. Если браузер знает, сколько займёт элемент, он не будет двигать всё вокруг при его появлении.

Размеры изображений

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

  1. Задавайте width и height. Атрибуты размеров позволяют браузеру зарезервировать место ещё до загрузки файла.
  2. Или задайте aspect-ratio в CSS. Соотношение сторон фиксирует пропорции блока при адаптивной вёрстке.
  3. Единый формат карточек. В каталоге фото товаров приводят к одному соотношению сторон, чтобы сетка была стабильной.
  4. Плейсхолдер до загрузки. На месте будущей картинки — нейтральный фон нужной высоты.

В 1С-Битрикс изображения товаров часто выводятся через компоненты каталога, поэтому размеры удобно задать на уровне шаблона компонента — тогда правило работает для всех карточек разом.

Резерв места под баннеры и блоки

Баннеры, промо-блоки и рекламные вставки — второй крупный источник скачков. Они часто грузятся позже основного контента и, появляясь, толкают всё вниз. Решение — заранее знать и зарезервировать их размер.

Тот же принцип работает и для информеров, уведомлений о cookie и прочих динамических элементов: они не должны неожиданно «раздвигать» страницу.

Веб-шрифты и подмена текста

Веб-шрифты дают тонкий, но заметный вклад в CLS. Пока кастомный шрифт грузится, браузер показывает системный, а после подмены меняются метрики текста — высота строк, ширина — и блок «дёргается». Есть несколько приёмов смягчить это.

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

Динамический контент и композит

В магазине на 1С-Битрикс много контента, который догружается после статики: персональная цена группы клиента, содержимое корзины, отзывы, блоки рекомендаций. Композитный сайт как раз разделяет мгновенную статику и отложенную динамику — и именно на стыке возникают скачки, если место под динамику не зарезервировано.

Правильный подход — заранее держать высоту под будущие динамические значения:

  1. Резервируйте место под цену. Блок цены имеет фиксированную высоту, даже пока значение догружается.
  2. Плейсхолдеры под блоки. Отзывы, рекомендации, доступность по складам занимают подготовленную область.
  3. Скелетоны. Серые плейсхолдеры нужной геометрии одновременно закрывают ожидание и держат вёрстку.

Тогда композит работает на вас: статика видна сразу и стабильна, а динамика встаёт на готовое место без прыжков. Подробнее об инженерной стороне отложенной загрузки — в статьях про D7 ORM в Битрикс и REST и вебхуки в Битрикс.

Ленивая загрузка без вреда

Ленивая загрузка (lazy-load) экономит трафик и ускоряет первый экран, но неправильно применённая — источник скачков. Проблема возникает, когда отложенно грузятся картинки без заданных размеров: браузер не знает, сколько места резервировать, и при подгрузке контент прыгает.

При соблюдении этих правил ленивая загрузка снижает вес страницы и не портит стабильность вёрстки — экономия без побочных эффектов.

CLS в каталоге и карточке товара

Две страницы, где скачки особенно заметны, — листинг каталога и карточка товара. В них много изображений, цен и динамических блоков, а значит и много поводов для CLS.

Скорость и стабильность каталога особенно важны для нагруженных проектов. Как устроена инфраструктура, которая держит это под нагрузкой, мы разбирали в статье про хостинг и инфраструктуру BitrixVM.

Как исправлять в 1С-Битрикс пошагово

Снижение CLS на 1С-Битрикс — это последовательная работа по источникам. Общий порядок такой:

  1. Измерьте текущий CLS. Снимите лабораторные и полевые данные, найдите конкретные прыгающие элементы.
  2. Задайте размеры картинок. В шаблонах компонентов каталога проставьте width/height или aspect-ratio.
  3. Зарезервируйте баннеры и блоки. Контейнеры под баннеры, информеры и промо получают фиксированную высоту.
  4. Оптимизируйте шрифты. Настройте font-display, предзагрузку и близкий fallback.
  5. Обработайте динамику. Под цены, отзывы и рекомендации поставьте плейсхолдеры/скелетоны фиксированной высоты.
  6. Проверьте lazy-load. Убедитесь, что у всех отложенных картинок заданы размеры.
  7. Перемерьте и закрепите. Снимите метрики повторно и зафиксируйте результат в процессе разработки.

Чтобы улучшения не «сползали» с новыми релизами, правила стоит встроить в процесс выкладки. Как устроен безопасный деплой Битрикса, мы описывали в статье про CI/CD и деплой на Битрикс.

Измерение и мониторинг

CLS нельзя оценивать «на глаз» — нужны и лабораторные, и полевые данные. Лабораторные (аудит в браузере) показывают конкретные проблемные элементы в контролируемых условиях. Полевые данные от реальных пользователей показывают, как метрика выглядит на живом трафике с разными устройствами и скоростями сети.

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

Частые ошибки

Чек-лист внедрения

  1. CLS измерен. Есть лабораторные и полевые данные, проблемные элементы найдены.
  2. Размеры картинок заданы. Все изображения имеют width/height или aspect-ratio.
  3. Баннеры зарезервированы. Контейнеры под промо и информеры имеют фиксированную высоту.
  4. Шрифты оптимизированы. Настроены font-display, предзагрузка и близкий fallback.
  5. Динамика на плейсхолдерах. Цены, отзывы, рекомендации встают на подготовленные места.
  6. Lazy-load безопасен. У всех отложенных картинок заданы размеры.
  7. Мобильный проверен. CLS снят и улучшен именно на мобильных устройствах.
  8. Мониторинг настроен. Регрессии CLS после релизов отслеживаются.

Вывод

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

Задайте размеры всем изображениям, зарезервируйте баннеры и динамические блоки, оптимизируйте шрифты, приведите в порядок ленивую загрузку и композит. На 1С-Битрикс это удобно делать на уровне шаблонов компонентов, чтобы правила работали для всего каталога сразу. Измеряйте по полевым данным, следите за мобильными и не допускайте регрессий — и сайт станет стабильным, приятным и заметно более конверсионным.

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

Что такое Cumulative Layout Shift простыми словами?

CLS — это метрика, которая измеряет, насколько сильно элементы страницы «прыгают» во время загрузки. Когда картинка подгружается и сдвигает текст, баннер появляется и толкает контент вниз, а шрифт меняется и меняет высоту строк — всё это накапливается в показатель CLS. Чем он выше, тем более «дёрганой» кажется страница. Хороший результат — низкое значение, когда контент почти не смещается после появления.

Почему скачки вёрстки так раздражают пользователей?

Из-за них теряется точка взаимодействия. Человек собирается нажать кнопку, но в этот момент сверху подгружается баннер, всё сдвигается вниз, и палец попадает мимо — или вовсе по другой кнопке. На мобильных это особенно болезненно. Скачки создают ощущение нестабильности и небрежности, снижают доверие к магазину и напрямую бьют по конверсии, потому что мешают совершать целевые действия.

Главная причина скачков — это картинки?

Картинки без заданных размеров — одна из самых частых причин, но не единственная. Скачки дают также баннеры и рекламные блоки без зарезервированного места, поздняя загрузка веб-шрифтов, динамически подгружаемый контент (персональные цены, отзывы, рекомендации) и элементы, вставляемые скриптами. Чтобы убрать CLS, нужно проработать все источники, а не только изображения.

Как размеры изображений влияют на CLS?

Если у картинки заданы атрибуты width и height (или задано соотношение сторон через CSS), браузер заранее резервирует под неё место ещё до загрузки самого файла. Тогда при появлении изображения ничего не сдвигается. Если размеры не заданы, до загрузки картинка занимает нулевую высоту, а после — «распирает» блок и толкает весь контент вниз. Поэтому явные размеры изображений — базовый и самый эффективный приём.

Композитный сайт Битрикса ухудшает или улучшает CLS?

Может делать и то, и другое. Композит мгновенно отдаёт статику из кэша, а динамику (цену группы, корзину, персональные блоки) догружает AJAX-ом. Если место под эти догружаемые блоки не зарезервировано, их появление даёт скачок. Но если заранее зарезервировать высоту под динамические элементы (например, плейсхолдером или фиксированной областью), композит наоборот помогает: статика стабильна, а динамика встаёт на подготовленное место.

Ленивая загрузка картинок увеличивает CLS?

Сама по себе — нет, если у изображений заданы размеры. Проблема возникает, когда lazy-load применяют к картинкам без указанных width/height: браузер не знает, сколько места резервировать, и при подгрузке контент прыгает. Решение простое — всегда задавать размеры или соотношение сторон даже для отложенно загружаемых изображений. Тогда ленивая загрузка экономит трафик и не портит стабильность вёрстки.

Как измерять CLS на сайте 1С-Битрикс?

Используют инструменты Core Web Vitals: лабораторные (например, аудит производительности в браузере) и полевые данные от реальных пользователей. Лабораторные показывают конкретные проблемные элементы, полевые — как метрика выглядит на живом трафике с разными устройствами и сетями. Важно смотреть именно полевые данные, потому что скачки часто проявляются на медленных соединениях и определённых экранах, которых нет в идеальной лаборатории.

Поделиться:

Страница прыгает и роняет конверсию?

Снизим CLS и ускорим ваш магазин на 1С-Битрикс: изображения, шрифты, баннеры и динамические блоки без скачков вёрстки. Рассчитаем работу по проекту.

Аудит и оптимизация 1С

Редакция B2Bsite

Команда B2Bsite. С 2014 года разрабатываем интернет-магазины и порталы на 1С-Битрикс: оптимизируем Core Web Vitals, убираем скачки вёрстки и ускоряем загрузку.

← Все статьи блога