Развитие совокупного изменения макета в веб-инструментах

Начиная с сегодняшнего дня, изменение CLS было развернуто во многих веб-инструментах Chrome, включая Lighthouse, PageSpeed ​​Insights и Chrome UX Report.

Адди Османи
Addy Osmani
Элизабет Суини
Elizabeth Sweeny

Сегодня мы хотели бы рассказать, как мы развиваем измерение показателя совокупного сдвига макета (CLS) в ряде веб-инструментов Chrome. Для разработчиков эти изменения будут лучше отражать пользовательский опыт на долгоживущих страницах (например, с бесконечной прокруткой или одностраничными приложениями). Эти обновления CLS будут распространены на такие инструменты, как Lighthouse, PageSpeed ​​Insights и Chrome UX Report.

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

Метрика называется «кумулятивной», поскольку оценка каждого отдельного сдвига суммируется на протяжении всего срока службы страницы. Хотя все изменения макета в Интернете приводят к ухудшению пользовательского опыта, долгоживущие страницы, такие как одностраничные приложения (SPA) или приложения с бесконечной прокруткой, естественным образом со временем накапливают больше CLS. Ограничив агрегацию наихудшим «окном» смен, CLS теперь можно измерять более последовательно, независимо от продолжительности сеанса.

Как мы объявили в разделе «Развитие метрики CLS» , мы настраиваем метрику CLS на максимальное окно сеанса с интервалом в 1 секунду, ограниченным 5 секундами . Это обновление лучше отражает взаимодействие с пользователем на долгоживущих страницах. Благодаря этому изменению 70% стран происхождения не должны ожидать каких-либо изменений CLS на 75-м процентиле, а в остальных 30% стран происхождения увидят улучшение.

Внедрение настройки окон в CLS

Мы говорили об обновленном определении CLS, которое представляет собой максимальное окно сеанса с интервалом в 1 секунду и ограничено 5 секундами. Что это значит для инструментов?

Начиная с сегодняшнего дня, это изменение CLS было развернуто во многих веб-инструментах Chrome, включая Lighthouse, PageSpeed ​​Insights и Chrome UX Report. Ниже вы можете увидеть краткую информацию о развертывании настройки окон CLS, а также о том, какие инструменты по-прежнему обеспечивают возможность сравнения с исходной реализацией.

Инструмент Настройка окон CLS «в реальном времени» Наличие «старого» CLS
Панель инструментов разработчика Lighthouse Канарский канал, 2 июня 2021 г. Н/Д
Маяк CLI версия 8, выпущена 1 июня 2021 г. Доступно как totalCumulativeLayoutShift в Lighthouse v8.
Маяк CI v0.7.3, 3 июня 2021 г. Н/Д
PageSpeed ​​Insights (PSI) 1 июня 2021 г. NA
PSI API 1 июня 2021 г. Доступен в lighthouseResult как totalCumulativeLayoutShift . Недоступно в поле loadingExperience данных об опыте
Отчет Chrome UX (CrUX) – BigQuery Набор данных 202105, опубликован 8 июня 2021 г. Доступно как experimental.uncapped_cumulative_layout_shift до 2021 11 г.
Отчет Chrome UX (CrUX) – API 1 июня 2021 г. После 1 июня 2021 г. будет доступно как experimental_uncapped_cumulative_layout_shift 14 декабря 2021 г.

В ближайшее время Chrome DevTools также будет обновлен для поддержки настройки окон. Обновление CLS также было сделано для Search Console и вступит в силу с 1 июня 2021 г.

Ожидается, что для большинства разработчиков это изменение произойдет плавно, без каких-либо действий, чтобы воспользоваться данными исправления.

«Старый» ЦЛС

Напомним, что «старый» CLS измеряет сдвиг макета на протяжении всего срока службы страницы. Поскольку некоторые разработчики, возможно, пожелают отслеживать старое определение CLS наряду с настройкой окон, у нас есть хорошие новости: мы раскрываем «старый CLS» в Lighthouse и CrUX.

В Lighthouse v8 он доступен в формате JSON как audits['cumulative-layout-shift'].details.items[0].totalCumulativeLayoutShift .

Вы найдете его как experimental_uncapped_cumulative_layout_shift в CrUX API и как experimental.uncapped_cumulative_layout_shift в CrUX BigQuery.

После 1 июня запросы CrUX API будут возвращать метрику «старого CLS»:

{
  "origin": "https://web.dev",
  "metrics": [
    "experimental_uncapped_cumulative_layout_shift"
  ]
}

После 8 июня следующий CrUX BigQuery будет сравнивать старый и новый CLS:

WITH
  new_data AS (
  SELECT
    cls
  FROM
    `chrome-ux-report.all.202105`,
    UNNEST(layout_instability.cumulative_layout_shift.histogram.bin) AS cls
  WHERE
    origin = 'https://web.dev'
    AND effective_connection_type.name = '4G'
    AND form_factor.name = 'phone'),
  old_data AS (
  SELECT
    uncapped_cls
  FROM
    `chrome-ux-report.all.202105`,
    UNNEST(experimental.uncapped_cumulative_layout_shift.histogram.bin) AS uncapped_cls
  WHERE
    origin = 'https://web.dev'
    AND effective_connection_type.name = '4G'
    AND form_factor.name = 'phone')
SELECT
  cls.start AS start,
  cls.`END` AS `end`,
  cls.density AS cls_density,
  uncapped_cls.density AS uncapped_cls_density
FROM
  new_data
INNER JOIN
  old_data
ON
  new_data.cls.start = old_data.uncapped_cls.start

Вы сможете продолжать полагаться на эти данные в течение периода до 6 месяцев, при этом «старый CLS» будет удален 14 декабря 2021 года.

Обновление веса CLS в Lighthouse

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

Теперь, после некоторого времени, проведенного в руках разработчиков, оценка Lighthouse увеличила вес CLS с 5% до 15%, что соответствует методологии, согласно которой Core Web Vitals является наиболее взвешенным показателем в оценке Lighthouse.

Обновленные веса метрик в Lighthouse v8 можно найти в калькуляторе оценок .

Калькулятор оценки маяка

Реализация CLS в Lighthouse 8.0 включает как оконную обработку, так и вклад CLS из подкадров. До версии 8.0 CLS в Lighthouse не включал CLS подкадров в расчет метрики, но теперь включает. И просто для подтверждения: поле CLS, измеренное CrUX, также обрабатывает окна и подкадры аналогичным образом.

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

Измерение в полевых условиях самостоятельно

Если вы хотите измерить последнюю реализацию CLS, вы также можете записать это для своих полевых данных через RUM, используя следующий фрагмент PerformanceObserver.

Или напрямую полагаясь на библиотеку JavaScript Web Vitals , которая также была обновлена ​​с учетом этого изменения.

Дополнительные обновления

Помимо обновлений Cumulative Layout Shift, в наши веб-инструменты также были внесены следующие обновления, связанные с метриками:

Выводы

Мы ожидаем, что это изменение будет отражать плавный переход для большинства сайтов, и рекомендуем вам ознакомиться с Web Vitals и Optimize CLS , чтобы получить советы и подсказки о том, как измерить и оптимизировать изменения в макете. Как всегда, не стесняйтесь обращаться в группу обратной связи web-vitals-feedback для получения отзывов о метриках и на наших форумах обратной связи по конкретным инструментам для Lighthouse , а также в Chrome UX Report по вопросам проблем с инструментами. Ваше здоровье!

Выражаем благодарность Йоханнесу Хенкелю, Рику Вискоми, Вивеку Сехару, Рэйчел Эндрю, Милице Михайлии, Джеффу Хосе и Полу Айришу за их отзывы.

Изображение героя от Barn Images / @barnimages на Unsplash