Cumulative Layout Shift là gì? Cách cải thiện CLS hiệu quả
- SEO
- 17 November, 2025
Bạn đã bao giờ click vào một nút mua hàng, nhưng ngay khoảnh khắc đó mọi thứ trên màn hình nhảy tưng tưng và… bạn lại bấm nhầm vào quảng cáo? Cảm giác bực mình ấy chính là hậu quả của một “thủ phạm thầm lặng” mang tên Cumulative Layout Shift (CLS), một chỉ số quan trọng trong bộ Core Web Vitals của Google. Trong thế giới web tốc độ, nơi từng mili-giây quyết định trải nghiệm và doanh thu, CLS không chỉ là con số kỹ thuật mà là thước đo niềm tin của người dùng. Vậy CLS là gì, tại sao lại “nguy hiểm” như thế và làm sao để thuần hóa nó? Hãy cùng SEO Google Giá Rẻ khám phá ngay sau đây!
Cumulative Layout Shift (CLS) là gì?
Cumulative Layout Shift (CLS) là một chỉ số thuộc bộ tiêu chuẩn Core Web Vitals do Google phát triển, nhằm đánh giá mức độ ổn định về bố cục của một trang web trong quá trình tải. Nói đơn giản, CLS đo lường tổng độ dịch chuyển không mong muốn của các phần tử trên trang khi người dùng đang xem hoặc tương tác.

Ví dụ: Bạn đang đọc một đoạn văn bản, bỗng nhiên hình ảnh ở trên đầu vừa mới được tải xong và làm đẩy nội dung xuống đó chính là một layout shift.
CLS không chỉ là hiện tượng gây “khó chịu” về mặt trải nghiệm mà còn là một trong ba yếu tố cốt lõi ảnh hưởng đến xếp hạng SEO trong các bản cập nhật gần đây của Google, bên cạnh Largest Contentful Paint (LCP) và First Input Delay (FID).
Một điểm đặc biệt của CLS là nó không đo theo thời gian, mà theo mức độ ảnh hưởng về thị giác: phần tử dịch chuyển bao nhiêu, chiếm bao nhiêu phần trăm màn hình, và người dùng bị ảnh hưởng như thế nào.
CLS ảnh hưởng như thế nào đến SEO và trải nghiệm người dùng?
- Tác động trực tiếp đến thứ hạng tìm kiếm (SEO)
Google đã chính thức tích hợp CLS vào bộ chỉ số Core Web Vitals, trở thành một yếu tố xếp hạng trong thuật toán tìm kiếm kể từ năm 2021. Điều này có nghĩa là:
- Trang web có CLS cao sẽ bị đánh giá thấp về trải nghiệm người dùng, từ đó ảnh hưởng tiêu cực đến thứ hạng SEO.
- Đặc biệt với các trang web tin tức, thương mại điện tử hoặc landing page, nơi yêu cầu tính ổn định cao, một chỉ số CLS xấu có thể khiến website mất điểm nghiêm trọng trên Google.
- Gây gián đoạn trải nghiệm người dùng
Các yếu tố trên trang bị thay đổi bất ngờ trong lúc người dùng đang đọc, cuộn hoặc tương tác có thể:
- Làm người dùng click nhầm vào quảng cáo, đường link, nút mua hàng hoặc các nút điều hướng.
- Khiến người đọc mất tập trung, khó chịu và rời bỏ trang sớm.
- Gây mất lòng tin về mức độ chuyên nghiệp và độ tin cậy của website.
- Gia tăng tỷ lệ thoát trang và giảm tỷ lệ chuyển đổi
Người dùng ngày càng đòi hỏi trải nghiệm mượt mà. Một trang web “nhảy nhót” trong lúc đang tải dễ khiến:
- Tỷ lệ thoát (bounce rate) tăng cao do khách rời đi ngay khi thấy bố cục không ổn định.
- Tỷ lệ chuyển đổi (conversion rate) giảm, đặc biệt trên các trang thanh toán hoặc đăng ký nơi chỉ một cú click nhầm cũng có thể khiến khách hàng từ bỏ.
- Ảnh hưởng đến thương hiệu và sự trung thành của người dùng
Một website có chỉ số CLS thấp thường đem lại cảm giác mượt mà, đáng tin cậy hơn. Trong khi đó:
- CLS cao tạo ra cảm giác nghiệp dư, thiếu đầu tư, nhất là khi các layout thay đổi liên tục và thiếu kiểm soát.
- Trải nghiệm kém lặp đi lặp lại khiến người dùng không muốn quay lại website trong tương lai.
Theo Google, điểm CLS lý tưởng là dưới 0.1. Nếu điểm số của bạn vượt quá 0.25, trải nghiệm người dùng có thể bị ảnh hưởng đáng kể.
5 Nguyên nhân phổ biến gây ra CLS cao
Cumulative Layout Shift xảy ra khi các phần tử trên trang web thay đổi vị trí một cách bất ngờ trong quá trình tải hoặc khi người dùng đang tương tác.

Dưới đây là những nguyên nhân phổ biến nhất dẫn đến chỉ số CLS cao:
- Hình ảnh không khai báo kích thước cụ thể
Một trong những nguyên nhân hàng đầu là thiếu thuộc tính width và height cho hình ảnh. Khi trình duyệt không biết trước kích thước ảnh, nó không thể “đặt chỗ” sẵn, khiến ảnh khi tải xong sẽ đẩy các nội dung khác xuống, gây dịch chuyển layout.
- Quảng cáo, iframe hoặc video nhúng thay đổi bố cục trang
Các quảng cáo động, iframe nhúng (như bản đồ, video YouTube) nếu không có khung định sẵn kích thước sẽ xuất hiện bất ngờ và chiếm không gian bố cục, đẩy các phần tử khác dịch chuyển theo.
- Font chữ web tải chậm gây FOUT/FOIT
Khi trang sử dụng font web mà không tối ưu quá trình tải, có thể xảy ra:
- FOUT (Flash of Unstyled Text): Hiển thị tạm bằng font hệ thống, sau đó thay bằng font web.
- FOIT (Flash of Invisible Text): Văn bản bị ẩn cho đến khi font tải xong.
Cả hai trường hợp đều khiến bố cục thay đổi đột ngột khi font được áp dụng.
- Chèn nội dung động sau khi trang đã tải xong
Các đoạn mã JavaScript, pop-up, thông báo cookie, đề xuất sản phẩm hoặc bình luận có thể xuất hiện sau khi trang tải xong, làm xáo trộn vị trí các phần tử đang hiển thị.
- Thiết kế và animation không được xử lý đúng cách
Việc sử dụng hiệu ứng chuyển động hoặc animation mà không dùng các thuộc tính tối ưu (như transform và opacity) có thể gây thay đổi vị trí phần tử thay vì chỉ thay đổi hình thức, ảnh hưởng đến CLS.
Việc hiểu rõ các nguyên nhân này sẽ giúp bạn kiểm soát và cải thiện chỉ số CLS một cách hiệu quả hơn. Tiếp theo, chúng ta sẽ tìm hiểu cách đo lường và kiểm tra CLS để biết website đang gặp vấn đề ở đâu và nghiêm trọng đến mức nào.
Cách đo lường và kiểm tra CLS cho website
Để cải thiện một chỉ số, bạn cần biết chính xác nó đang ở mức nào, xảy ra ở đâu, và do đâu gây ra. Việc đo lường và kiểm tra CLS không chỉ giúp bạn phát hiện các điểm “dịch chuyển” bất thường trên trang, mà còn cung cấp dữ liệu cụ thể để tối ưu. Dưới đây là những công cụ và phương pháp phổ biến nhất:
- PageSpeed Insights
- Là công cụ miễn phí của Google giúp đánh giá hiệu suất website trên cả thiết bị di động và máy tính.
- CLS được thể hiện rõ trong mục “Core Web Vitals”.
Cung cấp điểm số cụ thể và gợi ý cải thiện. - Có thể xem dữ liệu thực tế từ người dùng (Field Data) hoặc mô phỏng (Lab Data).
Link truy cập: https://pagespeed.web.dev
- Lighthouse (tích hợp trong DevTools của Chrome)
- Cho phép kiểm tra CLS trong điều kiện giả lập.
- Hiển thị trực quan điểm số và ảnh hưởng của CLS trong phần “Performance” hoặc “Best Practices”.
- Phù hợp để kiểm tra trong quá trình phát triển web hoặc test A/B.
Cách sử dụng: Mở Chrome → F12 → Tab “Lighthouse” → Chạy phân tích → Xem mục “Cumulative Layout Shift”
- Google Search Console – Core Web Vitals Report
- Hiển thị dữ liệu CLS thật từ người dùng truy cập website (Field Data).
- Phân loại URL theo tình trạng: “Tốt”, “Cần cải thiện” và “Kém”.
- Giúp bạn phát hiện các trang bị lỗi dịch chuyển layout hàng loạt và theo dõi tiến trình khắc phục.
Truy cập qua mục: Trải nghiệm trang → Core Web Vitals → Chỉ số CLS
- Chrome DevTools – Tab Performance
- Cho phép ghi lại quá trình tải trang và xác định chính xác thời điểm và phần tử gây dịch chuyển.
- Phù hợp cho các lập trình viên cần debug chi tiết.
- Highlight các layout shift bằng màu tím trong biểu đồ dòng thời gian.
Cách dùng: F12 → Tab “Performance” → Nhấn “Record” khi tải lại trang → Xem các sự kiện layout shift.
- Web Vitals Extension (tiện ích Chrome)
- Hiển thị trực tiếp các chỉ số Core Web Vitals (gồm cả CLS) ngay trên trình duyệt khi bạn truy cập một trang.
- Rất tiện cho việc kiểm tra nhanh khi duyệt website mà không cần vào công cụ riêng.
Cài đặt tại: Chrome Web Store – Web Vitals Extension
Sau khi đã đo lường được chỉ số CLS, bạn có thể xác định rõ đâu là phần tử cần tối ưu và tiến hành cải thiện theo từng bước. Và đó cũng chính là phần quan trọng nhất mà chúng ta sẽ tìm hiểu ngay sau đây: Cách cải thiện CLS hiệu quả cho website.
Cách cải thiện CLS hiệu quả
1. Khai báo kích thước rõ ràng cho hình ảnh, video và iframe
Một trong những nguyên nhân lớn nhất gây ra CLS là việc không định rõ kích thước cho các phần tử đa phương tiện. Khi trình duyệt không biết trước kích thước của ảnh hoặc video, nó không thể “giữ chỗ” trước khi nội dung tải xong, dẫn đến dịch chuyển bố cục khi phần tử xuất hiện.

Để khắc phục, bạn cần:
- Luôn sử dụng thuộc tính width và height cho tất cả hình ảnh và video.
- Nếu sử dụng ảnh responsive, hãy áp dụng thuộc tính aspect-ratio để trình duyệt hiểu được tỷ lệ cần giữ.
- Với các iframe (như YouTube, Google Maps…), hãy bọc chúng trong một khung chứa có kích thước cụ thể để tránh thay đổi đột ngột khi nội dung được tải về.
Thực hiện đúng cách sẽ giúp trình duyệt dành đúng không gian cho phần tử trước khi nó xuất hiện, tránh gây xáo trộn bố cục.
2. Dự trù không gian cho nội dung động và quảng cáo
Các nội dung động như quảng cáo, thông báo đẩy (pop-up), khối đề xuất sản phẩm hoặc module tương tác thường được tải về sau khi trang hiển thị ban đầu. Nếu không được xử lý cẩn thận, những phần tử này sẽ “chen ngang” và đẩy các phần tử khác xuống.
Để hạn chế điều này, bạn nên:
- Thiết lập khung chứa tĩnh cho quảng cáo hoặc các nội dung động, kể cả khi chưa có nội dung thật.
- Không để quảng cáo tự động “chen vào” giữa nội dung bài viết nếu không có không gian cố định cho chúng.
- Sử dụng script tải chậm (lazy-load) kết hợp với placeholder để đảm bảo bố cục không thay đổi trong quá trình chờ tải.
Việc chủ động kiểm soát không gian trống giúp website ổn định và tránh làm gián đoạn trải nghiệm người đọc.
3. Tối ưu font chữ web để tránh hiện tượng nhảy chữ
Hiện tượng “nhảy chữ” khi font web được tải về chậm có thể khiến toàn bộ đoạn văn dịch chuyển. Đây là lỗi phổ biến trong thiết kế hiện đại vì nhiều website sử dụng font tùy chỉnh từ Google Fonts hoặc server riêng.
Giải pháp bao gồm:
- Sử dụng font-display: swap để trình duyệt hiển thị tạm thời bằng font hệ thống trước khi tải xong font tùy chỉnh.
- Dùng preload cho font chính (primary font) trong <head> để ưu tiên tải trước, giảm thời gian chờ.
- Hạn chế số lượng font và định dạng font để tránh tăng dung lượng và thời gian tải.
Bằng cách này, bạn không chỉ cải thiện CLS mà còn tối ưu tốc độ tải trang nói chung.
4. Tránh thêm phần tử mới phía trên nội dung đang hiển thị
Một lỗi thiết kế phổ biến là việc thêm các phần tử mới ở phần đầu hoặc giữa trang sau khi người dùng đã bắt đầu đọc hoặc tương tác. Ví dụ, thêm thanh thông báo, banner khuyến mãi hoặc thông tin bổ sung khiến toàn bộ nội dung phía dưới bị đẩy xuống.
Cách xử lý hiệu quả:
- Luôn thêm các phần tử mới phía dưới nội dung hiện có, trừ khi đã dành sẵn không gian phía trên.
- Tránh cập nhật DOM làm thay đổi chiều cao hoặc vị trí các phần tử quan trọng sau khi trang đã được tải.
- Khi sử dụng JavaScript để hiển thị nội dung mới, hãy kiểm tra lại các thay đổi trong layout và dùng animation mượt mà, không gây sốc thị giác.
Tư duy “thiết kế không gây xáo trộn” nên được áp dụng xuyên suốt toàn bộ quá trình phát triển website, đặc biệt với các giao diện có tính tương tác cao.
CLS là một chỉ số tưởng chừng nhỏ nhưng ảnh hưởng sâu sắc đến cả trải nghiệm người dùng lẫn hiệu quả SEO. Để cải thiện CLS một cách bền vững, không chỉ cần xử lý kỹ thuật từng phần tử mà còn phải tư duy lại toàn bộ quy trình thiết kế, tải nội dung và hiển thị trang. Khi website của bạn hoạt động ổn định, không “nhảy lung tung”, người dùng sẽ cảm thấy tin tưởng hơn và Google cũng sẽ đánh giá cao hơn.
Kết luận
Cumulative Layout Shift (CLS) không chỉ là một con số kỹ thuật mà là thước đo trực tiếp cho sự ổn định và chuyên nghiệp của website trong mắt người dùng và Google. Một trang web có CLS thấp sẽ mang lại trải nghiệm mượt mà, tăng độ tin cậy và cải thiện hiệu quả SEO rõ rệt.
Bằng cách nhận diện đúng nguyên nhân, áp dụng các giải pháp tối ưu hóa từ hình ảnh, font chữ đến nội dung động, bạn hoàn toàn có thể kiểm soát và cải thiện chỉ số này. Hãy xem việc tối ưu CLS như một phần tất yếu trong chiến lược phát triển website bền vững và lấy người dùng làm trung tâm.

