網路工具中的累計版面配置位移

從今天起,我們已在多個 Chrome 網頁工具介面 (包括 Lighthouse、PageSpeed Insights 和 Chrome UX 報告) 中推出 CLS 異動。

Addy Osmani
Addy Osmani
Elizabeth Sweeny
Elizabeth Sweeny

發布日期:2021 年 6 月 2 日

今天,我們想分享如何在多個 Chrome 網路工具介面中,改善累積版面配置位移 (CLS) 指標的評估方式。對於開發人員而言,這些變更可更貼近長期網頁 (例如無限捲動或單頁應用程式) 的使用者體驗。這些 CLS 更新將陸續推出至 Lighthouse、PageSpeed Insights 和 Chrome 使用者體驗報告等工具。

我們都希望網頁上的版面配置變動次數能減少。這就是 CLS 指標在評估網頁視覺穩定性時,可發揮作用的地方。這有助於鼓勵網站為圖片或廣告等內容設定更適當的尺寸,避免使用者看到內容突然跳動。

這項指標的名稱是「累計」,因為系統會在網頁的生命週期中,將所有個別位移的分數加總。雖然網站上的所有版面配置變更都會導致使用者體驗不佳,但單頁應用程式 (SPA) 或無限捲動應用程式等長效網頁,隨著時間推移,自然會累積更多 CLS。將匯總範圍限制在偏移最差的「時間範圍」,無論工作階段持續時間為何,CLS 現在可以更穩定地進行測量。

如同我們在改良 CLS 指標所述,我們將 CLS 指標調整為間隔 1 秒 (間隔 1 秒,上限 5 秒) 的最長工作階段期間,這項更新能夠更準確地反映長期網頁的使用者體驗。這項變更生效後,70% 的來源應不會在第 75 百分位數出現任何 CLS 變化,而其餘 30% 的來源則會有所改善。

為 CLS 推出視窗調整功能

我們先前提過,更新過的 CLS 定義是一個最大工作階段期間,間隔 1 秒,上限 5 秒。這對工具有何影響?

從今天起,我們已在多個 Chrome 網頁工具介面中推出 CLS 的這項異動,包括 Lighthouse、PageSpeed Insights 和 Chrome UX 報告。下方列出 CLS 視窗調整功能的摘要,以及哪些工具仍可與原始實作方式進行基準測試。

工具 CLS 時間區間調整 'live' 「舊版」CLS 可用性
Lighthouse 開發人員工具面板 Canary 管道,2021 年 6 月 2 日 不適用
Lighthouse CLI v8,發布日期:2021 年 6 月 1 日 可在 Lighthouse 第 8 版中使用,名稱為 totalCumulativeLayoutShift
Lighthouse CI v0.7.3 版,2021 年 6 月 3 日 不適用
PageSpeed Insights (PSI) 2021 年 6 月 1 日 不適用
PSI API 2021 年 6 月 1 日 lighthouseResult 提供 totalCumulativeLayoutShift。不適用於欄位 loadingExperience 資料
Chrome 使用者體驗報告 (CrUX) - BigQuery 202105 年資料集,2021 年 6 月 8 日發布 20211 年前支援的國家/地區:experimental.uncapped_cumulative_layout_shift
Chrome 使用者體驗報告 (CrUX) - API 2021 年 6 月 1 日 2021 年 6 月 1 日之後,可透過 experimental_uncapped_cumulative_layout_shift 取得

Chrome 開發人員工具也將很快更新,支援調整視窗大小。我們也已在 Search Console 中更新 CLS,並自 2021 年 6 月 1 日起生效。

對於大多數開發人員而言,這項變更應可順利完成,且無須採取任何行動即可利用修正項目中的資料。

「舊版」CLS

提醒您,「舊版」CLS 會評估網頁整個生命週期中的版面配置位移。由於部分開發人員可能希望監控 CLS 的舊版定義以及視窗調整,因此我們有好消息要與您分享:我們已在 Lighthouse 和 CrUX 中推出「舊 CLS」。

在 Lighthouse v8 中,這項資訊會以 audits['cumulative-layout-shift'].details.items[0].totalCumulativeLayoutShift 的形式出現在 JSON 中。

您會在 CrUX API 中找到 experimental_uncapped_cumulative_layout_shift,在 CrUX BigQuery 中則會找到 experimental.uncapped_cumulative_layout_shift

6 月 1 日後,CrUX API 要求會傳回「舊版 CLS」指標:

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

6 月 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

在 2021 年 12 月 14 日,您可以在最多 6 個月內繼續使用這些資料。「舊版 CLS」即將淘汰。

更新 Lighthouse 中的 CLS 權重

當 Lighthouse 首次推出 CLS 時,這項指標是全新的亮眼指標。因此,為確保開發人員有時間進行測試、基準測試及最佳化調整,我們在成效分數中降低了 CLS 的權重。

在開發人員使用一段時間後,Lighthouse 分數已將 CLS 的權重從 5% 提高到 15%,這與讓 Core Web Vitals 成為 Lighthouse 分數中權重最高指標的做法一致。

您可以在評分計算工具中,查看 Lighthouse 8 版中指標的更新權重。

Lighthouse 評分計算機

Lighthouse 8.0 的 CLS 實作包含子畫面提供的視窗和 CLS 貢獻。在 8.0 之前,Lighthouse 的 CLS 指標計算中並未納入子畫面的 CLS,但現在已納入。另外,請確認一下,由 CrUX 評估的欄位 CLS 也會以類似方式處理視窗和子畫面。

不過,實驗室和實地 CLS 之間的主要差異在於,實驗室 CLS 的觀察期間會在實驗室條件下判定「完全載入」時結束,但在實地條件下,觀察期間會延長至整個網頁生命週期,包括載入後的活動。儘管如此,時間區間調整功能確實能大幅緩解這項差異。

自行在現場進行測量

如要測量最新的 CLS 實作方式,您也可以使用 以下 PerformanceObserver 程式碼片段,透過 RUM 為欄位資料記錄這項資訊。

或者,您也可以直接依賴Web Vitals JavaScript 程式庫,這也是這項變更的更新項目。

其他更新

除了累積版面配置位移的更新之外,我們也對網路工具進行了下列指標相關更新:

  • 我們即將更新最大內容繪製指標的最新定義。CrUX API、PSI、PSI API、Search Console 將在 2021 年 6 月 1 日更新。CrUX BigQuery 將於 2021 年 6 月 8 日更新。
  • 在 CrUX 中,第一個內容繪製時間三分位數門檻已更新為:良好:[0-1.8 秒]、需要改善:(1.8 秒-3 秒)、不佳:[3 秒-∞]

結論

我們預期這項異動可讓大多數網站順利轉換。建議您參閱「網站體驗指標」和「最佳化 CLS」,瞭解如何評估及改善版面配置轉換。與往常一樣,歡迎您前往網頁- Vitals 意見回饋群組,針對 Lighthouse 的指標,或我們的工具專屬意見回饋論壇提出意見,並在工具問題適用的 Chrome 使用者體驗報告中提出。祝一切順心!

感謝 Johannes Henkel、Rick Viscomi、Vivek Sekhar、Rachel Andrew、Milica Mihajlija、Jeff Jose 和 Paul Ireland。

主頁橫幅 (作者:Unsplash 上的圖片 / @barnimages)