什麼是 Cumulative Layout Shift (CLS)?
Cumulative Layout Shift (CLS, 累積佈局偏移) 是 Google Web Vitals (網站體驗核心指標) 中的一項重要指標,用於衡量 網頁視覺穩定性。它代表了網頁在載入過程中,元素位置發生非預期變動的程度。計算方式是測量所有不穩定元素在整個載入週期中的累積變化量。當 CLS 分數過高時,使用者常會遇到「正要點擊按鈕時內容卻跳開」的糟糕體驗,這不僅會降低轉換率,更會直接影響 Pagespeed 評分與 Google 搜尋引擎排名。優化 CLS 的核心在於為圖片、廣告與字體預留精確空間,確保網頁內容在渲染時維持結構穩定。
本文將深入介紹如何修正 Pagespeed 中影響網站性能提升的Cumulative Layout Shift (CLS) 問題。先前 CLS 顯著影響頁面曝光總數,但修正成果難以即時評估,因為 Google 會根據實際蒐集到的使用者情境進行統計。透過本文,您將了解Cumulative Layout Shift 優化的關鍵步驟,掌握Pagespeed Insights 分析及Web Vitals 改善等工具應用。
Pagespeed 出現 CLS 問題
- 透過 Pagespeed 的頁面進行量測,錯誤會直接顯示在網頁中,這是進行分析的重要環節。
- 透過 Google Search Console 查看統計,這也是Web Vitals 改善的關鍵一步。
Cumulative Layout Shift (CLS) 修正技巧
累積版面位移(Cumulative Layout Shift,CLS)是衡量網頁視覺穩定性的指標。修正 CLS 通常採取以下方法:
- 指定圖片尺寸: 避免在載入過程中因為圖片尺寸變化而導致的版面位移,這樣瀏覽器就能夠預留正確的空間,而不會導致位置變化。
- 預留空間: 廣告通常動態載入,確認載入順序後預留固定位置,確保廣告有固定位置和顯示大小。
- CSS Transform: 如果需要移動元素,使用
transform代替修改top或left屬性,因為transform不會引發版面重排 (Relayout)。 - 字體載入優化: 確保字體或 Icon 的載入方式正確,避免發生「無樣式文字閃爍 (FOUT)」導致的空間跳動。
- 謹慎處理使用者操作: 確保在點擊、滾動等操作後產生的內容變化是可預期的。
解決 CLS 問題工具
以下是一些常用的工具來偵測和解決網頁中的 CLS 問題:
- Google PageSpeed Insights: Google 提供的免費工具,分析性能並提供改進建議。
- Chrome 開發者工具: 使用 Performance 面板錄製載入過程,並勾選 Layout Shifts 選項來觀察具體發生位移的區域。
- Web Vitals Chrome Extension: 即時監控網頁的核心指標。
- WebPageTest: 評估網頁加載速度與詳細性能瀑布圖。
最後小編是靠著瀏覽器的 Extension 找到發生問題的 DOM 元件,移除並且等待一段時間(通常 Google 統計需要 28 天的週期)讓實際統計數字慢慢下降才得到解決。這就是Cumulative Layout Shift 優化的實務經驗。
FAQ:CLS 效能優化常見問題
Q1:為什麼我修正了程式碼,PageSpeed 的 CLS 分數卻沒有馬上更新?
A:PageSpeed Insights 的報告分為「模擬測試數據 (Lab Data)」與「實地數據 (Field Data)」。實地數據是根據過去 28 天真實使用者的體驗進行平均計算的。即便您修好了,也需要等待一段時間讓舊的差勁分數被新的優秀分數稀釋,統計結果才會慢慢轉綠。
Q2:動態載入的廣告(如 AdSense)最容易導致 CLS,該如何預防?
A:一定要預留固定比例的佔位空間 (Slot)。 不要讓廣告區塊的 height 是 auto。您應根據該廣告版位常見的尺寸(例如 300x250),在 CSS 中設定 min-height。即便廣告還沒載入,版面也不會因為內容突然插入而往下跳動。
Q3:字體 (Web Fonts) 為什麼也會引發佈局偏移?
A:當預設字體與 Web 字體的寬度不同時,字體載入完成後的替換過程會導致文字重新換行或段落高度變動。建議使用 font-display: swap; 搭配 CSS 的 size-adjust 屬性,來縮小預設字體與 Web 字體間的視覺差距。






