Часы работы пн-пт 9:00 — 18:00
Адрес г. Тула, ул. Некрасова, 7, оф. 315
Техническое SEO

CLS (Cumulative Layout Shift)

CLS (Cumulative Layout Shift) — это метрика Google, которая измеряет визуальную стабильность страницы. Она показывает, насколько сильно элементы контента (текст, изображения, кнопки) сдвигаются в процессе загрузки. Чем выше значение CLS, тем больше страница «прыгает» у пользователя: например, когда вы читаете статью, и внезапно картинка сверху подгружается и сдвигает текст вниз. Для оценки CLS используется шкала от 0 до 1, где 0 — идеально стабильная страница, а значение больше 0.25 считается плохим и негативно влияет на ранжирование в поисковой выдаче. CLS является частью набора Core Web Vitals, который Google использует для оценки пользовательского опыта. Показатель рассчитывается как сумма всех неожиданных сдвигов в течение жизни страницы, но только тех, которые происходят без участия пользователя. Улучшение CLS — это задача веб-разработчика: нужно задавать размеры для изображений и видео, резервировать место под рекламу и динамические элементы, а также правильно загружать шрифты.

Что такое CLS и почему он появился

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

Как работает расчёт CLS

CLS рассчитывается на основе двух параметров каждого неожиданного сдвига: distance fraction — насколько далеко переместился элемент относительно вьюпорта, и impact fraction — какую часть экрана затронуло перемещение. Формула умножает эти значения и суммирует результаты для всех сдвигов, произошедших без действия пользователя. Если посетитель сам нажимает на кнопку или скроллит — такие движения не считаются. Также игнорируются анимации, которые длятся менее 500 миллисекунд и начинаются после реакции пользователя. Итоговое значение от 0 до 0.1 считается хорошим, от 0.1 до 0.25 — требует улучшения, а выше 0.25 — провальным. Google использует данные реальных пользователей Chrome (CrUX), поэтому даже если в ваших тестах всё идеально, реальная картина может отличаться.

Влияние на SEO и разработку

Так как CLS напрямую входит в Core Web Vitals, его значение влияет на ранжирование в мобильном поиске. Страницы с плохим CLS теряют позиции, но не так катастрофично, как при медленной загрузке — всё же это сигнал, который учитывается вместе с другими факторами. Для разработки CLS важен тем, что требует внимания к вёрстке и планированию контента. Основные причины плохих сдвигов — изображения и видео без заданных размеров, рекламные блоки, которые подгружаются после текста, и динамические элементы, появляющиеся с задержкой. Решение — всегда указывать width и height для медиа, использовать атрибут loading="lazy" с зарезервированной областью, и для шрифтов применять font-display: swap, чтобы не было скачка текста при смене шрифта.

Практический пример

Представьте интернет-магазин. На странице товара пользователь читает описание и собирается нажать кнопку «Купить». Внезапно сверху подгружается баннер с акцией, который сдвигает весь контент вниз на 200 пикселей. Пользователь промахивается и попадает на ссылку «Отзывы». Это классический сдвиг. В инструменте PageSpeed Insights вы увидите красную оценку CLS, например 0.45. Чтобы исправить, разработчик должен задать баннеру фиксированную высоту и ширину, а лучше — загружать его в зарезервированный контейнер ещё при загрузке страницы, даже если он будет показываться через несколько секунд.

Типичное заблуждение

Многие думают, что CLS измеряет только то, как страница дёргается при загрузке в браузере. На самом деле метрика учитывает все неожиданные сдвиги, которые происходят в течение всего времени, пока пользователь находится на странице — вплоть до закрытия вкладки. Если вы добавили на страницу всплывающее окно через 10 секунд после открытия, и оно сдвинуло содержимое, это тоже увеличит CLS. Ещё одно распространённое заблуждение — что CLS можно «обмануть», установив анимацию на сдвиг. Но Google считает только те перемещения, где пользователь не взаимодействует со страницей, поэтому анимация с задержкой всё равно будет засчитана. Не пытайтесь скрыть проблему — лучше исправить причину: стабилизировать макет и заранее резервировать место под все динамические элементы.