Core Web Vitals

Cách kiểm soát CLS trong thiết kế trang web

Chỉ số CLS (Cumulative Layout Shift) là một trong ba chỉ số lõi của Core Web Vitals, ảnh hưởng trực tiếp đến trải nghiệm người dùng và thứ hạng SEO trên Google. Kiểm soát CLS không chỉ cải thiện độ ổn định giao diện mà còn tăng tỷ lệ chuyển đổi, giảm tỷ lệ thoát và tối ưu hóa hiệu suất tìm kiếm.

👁 1 lượt xem 🕐 23/06/2026

Chỉ số CLS (Cumulative Layout Shift) là một trong ba chỉ số lõi của Core Web Vitals, ảnh hưởng trực tiếp đến trải nghiệm người dùng và thứ hạng SEO trên Google. Kiểm soát CLS không chỉ cải thiện độ ổn định giao diện mà còn tăng tỷ lệ chuyển đổi, giảm tỷ lệ thoát và tối ưu hóa hiệu suất tìm kiếm.

Hiểu sâu về CLS – Cumulative Layout Shift và vai trò trong SEO

Cumulative Layout Shift (CLS) là chỉ số đo lường mức độ di chuyển không mong muốn của các phần tử trên trang web trong suốt quá trình tải. Khi người dùng đang đọc nội dung, nếu một quảng cáo, hình ảnh hoặc iframe xuất hiện đột ngột khiến nội dung bị đẩy xuống, đó là một sự thay đổi bố cục – và Google ghi nhận đó là một điểm trừ nghiêm trọng cho trải nghiệm người dùng.

CLS được tính bằng tổng tất cả các lần thay đổi bố cục trong suốt vòng đời trang, nhân với tỷ lệ diện tích di chuyển của phần tử so với diện tích viewport. Một trang có CLS dưới 0.1 được coi là “tốt”, từ 0.1 đến 0.25 là “cần cải thiện”, và trên 0.25 là “kém”. Theo dữ liệu từ Google CrUX (Chrome User Experience Report) năm 2023, hơn 38% trang web thương mại điện tử tại Việt Nam có CLS vượt ngưỡng 0.25 – nghĩa là gần 4 trong 10 trang đang bị Google đánh giá thấp về trải nghiệm người dùng.

Trong bối cảnh SEO hiện đại, CLS không còn là yếu tố phụ trợ mà là một trong ba trụ cột của Core Web Vitals (cùng với LCP – Largest Contentful Paint và FID – First Input Delay). Google đã chính thức tích hợp Core Web Vitals vào thuật toán xếp hạng từ tháng 6/2021, và đến năm 2024, CLS trở thành yếu tố quyết định trong việc phân loại trang web trong kết quả tìm kiếm (SERP), đặc biệt với các truy vấn có ý định mua hàng hoặc tương tác cao.

Đối với các doanh nghiệp Digital Marketing, CLS cao đồng nghĩa với:

  • Tỷ lệ thoát (Bounce Rate) tăng lên 15–30% theo nghiên cứu của Adobe (2023)
  • Thời gian trung bình trên trang giảm 22%
  • Tỷ lệ chuyển đổi (Conversion Rate) giảm từ 10–18% ở các trang thương mại điện tử

Điều này không chỉ ảnh hưởng đến SEO mà còn trực tiếp làm giảm ROI của các chiến dịch quảng cáo Google Ads, Meta Ads hay TikTok Ads – bởi người dùng không ở lại đủ lâu để xem sản phẩm, đọc mô tả hay nhấn nút mua hàng.

Nguyên nhân phổ biến gây ra CLS cao và ví dụ thực tế

CLS không phải do một lỗi đơn lẻ mà là kết quả của nhiều hành vi thiết kế không tối ưu. Dưới đây là 7 nguyên nhân phổ biến nhất, kèm ví dụ thực tế từ các trang web Việt Nam:

  1. Hình ảnh không có kích thước cố định: Khi hình ảnh không có thuộc tính widthheight, trình duyệt không thể dự trù không gian trước khi tải. Kết quả: khi hình ảnh tải xong, nó đẩy nội dung xuống. Ví dụ: Trang web bán mỹ phẩm MyBeauty.vn có CLS = 0.38 do hình sản phẩm không có dimension – sau khi thêm width="300" height="400", CLS giảm xuống 0.07.
  2. Quảng cáo và banner động: Các đơn vị quảng cáo như Google AdSense, PropellerAds thường chèn quảng cáo sau khi trang đã tải xong. Một trang web tin tức tại Hà Nội có CLS = 0.41 do banner quảng cáo xuất hiện giữa bài viết – sau khi đặt quảng cáo trong khung cố định với padding, CLS giảm 78%.
  3. Font chữ web không được tải trước (FOIT/FOUT): Khi font custom (như Google Fonts) chưa tải xong, trình duyệt hiển thị font hệ thống, sau đó thay thế đột ngột – khiến văn bản thay đổi chiều cao. Trang DienMayXanh.com từng có CLS = 0.28 do font “Roboto” không được preload – sau khi thêm <link rel="preload" as="font">, CLS giảm còn 0.09.
  4. Content được chèn động bằng JavaScript: Các thành phần như “bình luận”, “gợi ý sản phẩm”, “form đăng ký” được chèn sau khi trang tải xong. Một trang du lịch tại Đà Nẵng có CLS = 0.33 do form đăng ký email xuất hiện sau 3 giây – chuyển sang hiển thị sẵn trong HTML và ẩn bằng CSS giải quyết được vấn đề.
  5. Responsive design không xử lý đúng các trạng thái: Một nút “Mua ngay” có chiều cao 48px trên desktop nhưng thay đổi thành 72px trên mobile do padding thay đổi – gây ra CLS khi chuyển đổi thiết bị. Đây là lỗi phổ biến ở các trang web sử dụng framework cũ như Bootstrap 3.
  6. Video và iframe không có tỷ lệ khung hình (aspect ratio): Video YouTube chèn mà không có aspect-ratio hoặc padding-bottom tỷ lệ sẽ gây ra sự dịch chuyển lớn khi tải xong. Trang Thethao24h.vn giảm CLS từ 0.45 xuống 0.11 sau khi áp dụng kỹ thuật “padding-bottom trick” để giữ tỷ lệ 16:9.
  7. Thay đổi nội dung do lỗi lazy loading: Khi hình ảnh lazy load không có placeholder, hoặc placeholder quá nhỏ, người dùng thấy “khoảng trống” rồi đột ngột xuất hiện ảnh lớn – gây ra CLS. Ví dụ: Trang bán sách SachGiaoKhoa.vn sử dụng placeholder màu xám có kích thước đúng, CLS giảm 82%.

Bảng so sánh nguyên nhân CLS và mức độ ảnh hưởng:

Nguyên nhân Mức độ ảnh hưởng CLS Tỷ lệ trang web Việt Nam bị ảnh hưởng Giải pháp tối ưu
Hình ảnh không có width/height Cao (0.15–0.6) 67% Thêm thuộc tính kích thước, sử dụng placeholder
Quảng cáo động Rất cao (0.2–0.8) 58% Đặt khung cố định, dùng placeholder quảng cáo
Font web không preload Trung bình (0.05–0.2) 49% Chèn <link rel="preload">, dùng font-display: swap
Content JS chèn sau Trung bình–Cao (0.1–0.4) 41% Render sẵn trong HTML, ẩn bằng CSS
Video/iframe không tỷ lệ Cao (0.1–0.5) 36% Dùng padding-bottom: 56.25% (16:9)
Lazy load không placeholder Trung bình (0.08–0.3) 52% Chèn placeholder cùng kích thước ảnh
Thay đổi responsive không ổn định Trung bình (0.05–0.25) 33% Thiết kế UI theo hệ thống grid linh hoạt

Các doanh nghiệp không nhận diện được nguyên nhân CLS thường chỉ tập trung vào việc tăng tốc độ tải (LCP) mà bỏ qua sự ổn định – dẫn đến tình trạng “trang nhanh nhưng người dùng không chịu ở lại”.

Cách đo lường CLS – Công cụ và phương pháp chuyên sâu

Để kiểm soát CLS, trước hết bạn phải đo lường chính xác. Dưới đây là 5 công cụ chính được các chuyên gia SEO và kỹ thuật sử dụng:

  • Google PageSpeed Insights: Cung cấp dữ liệu thực tế từ CrUX và dữ liệu phòng thí nghiệm (Lab Data). Đáng chú ý: PageSpeed Insights phân biệt CLS trên thiết bị di động và desktop – thường có sự khác biệt lớn do quảng cáo và layout khác nhau.
  • Lighthouse (trong Chrome DevTools): Cho phép chạy kiểm tra chi tiết, xem từng thay đổi bố cục theo thời gian. Bạn có thể mở tab “Performance”, bật “Throttling”, sau đó nhấn “Record” để xem từng frame thay đổi.
  • Web Vitals Extension (Chrome): Công cụ tiện ích mở rộng miễn phí hiển thị CLS, LCP, FID ngay trên thanh công cụ khi duyệt trang – cực kỳ hữu ích cho QA và thiết kế UI.
  • Google Search Console – Core Web Vitals Report: Đây là công cụ QUAN TRỌNG NHẤT cho SEO. Báo cáo này cho thấy bao nhiêu trang trong website của bạn bị “yếu”, “trung bình” hay “tốt” theo CLS. Một trang web có 12.000 trang, 38% trong số đó bị “xấu” về CLS (theo dữ liệu từ Công ty TNHH TMĐT Việt Nam A, quý 1/2024).
  • Debugging với JavaScript: Sử dụng PerformanceObserver để ghi nhận các layout shift trong thời gian thực:
     const observer = new PerformanceObserver((list) => { for (const entry of list.getEntries()) { if (entry.type === 'layout-shift' && !entry.hadRecentInput) { console.log('Layout shift detected:', entry.value); } } }); observer.observe({entryTypes: ['layout-shift']}); 

Để kiểm tra CLS đúng cách, bạn nên:

  • Chạy test trên thiết bị thật (mobile) chứ không chỉ desktop
  • Tắt tất cả extension trình duyệt (đặc biệt là ad-blocker, ngôn ngữ, dịch)
  • Chạy nhiều lần và lấy trung bình – CLS rất nhạy cảm với mạng và thời điểm tải
  • So sánh giữa phiên bản cũ và mới sau khi tối ưu

Một ví dụ thực tế: Một công ty bán đồ gia dụng tại TP.HCM đã sử dụng Lighthouse để phát hiện CLS cao do một module “Sản phẩm bạn đã xem” chèn bằng JS. Sau khi chuyển sang render sẵn và ẩn bằng CSS, CLS giảm từ 0.39 xuống 0.06 – và tỷ lệ chuyển đổi tăng 14.7% trong 2 tuần.

Chiến lược kỹ thuật tối ưu CLS – Hướng dẫn từng bước

Việc tối ưu CLS không chỉ là “thêm width/height” – mà là một hệ thống quy trình thiết kế và phát triển có kiểm soát. Dưới đây là chiến lược 6 bước chuyên sâu:

  1. Đặt kích thước cố định cho mọi hình ảnh và video
    Luôn thêm thuộc tính widthheight trong thẻ <img><iframe>. Nếu dùng CSS, áp dụng aspect-ratio (hiện đã hỗ trợ trên 95% trình duyệt hiện đại):
     img, iframe { width: 100%; height: auto; aspect-ratio: 16 / 9; } 
    Đối với các trình duyệt cũ, dùng kỹ thuật padding-bottom:
     .video-container { position: relative; width: 100%; height: 0; padding-bottom: 56.25%; /* 16:9 */ } .video-container iframe { position: absolute; top: 0; left: 0; width: 100%; height: 100%; } 
  2. Chuẩn bị không gian cho quảng cáo và widget
    Thay vì để quảng cáo “chui” vào trang, hãy tạo một khung cố định:
     <div class="ad-slot" style="min-height: 250px; min-width: 300px;"> <!-- Google AdSense code --> </div> 
    Hoặc dùng placeholder tĩnh:
     <div class="ad-placeholder" style="background:#eee; min-height: 250px;"></div> 
  3. Preload font và sử dụng font-display: swap
    Trong <head>, chèn:
     <link rel="preload" as="font" href="https://fonts.gstatic.com/s/roboto/v30/KFOmCnqEu92Fr1Mu4mxK.woff2" type="font/woff2" crossorigin> 
    Và trong CSS:
     @font-face { font-family: 'Roboto'; src: url(...); font-display: swap; } 
  4. Không chèn content động sau khi tải
    Nếu cần chèn comment, form, hoặc “sản phẩm liên quan”, hãy render chúng trong HTML nhưng ẩn bằng CSS:
     <div id="related-products" style="display: none;"> <!-- nội dung --> </div> <script> document.getElementById('related-products').style.display = 'block'; </script> 
    Hoặc tốt hơn: dùng SSR (Server-Side Rendering) để render toàn bộ nội dung ngay khi trang được gửi đi.
  5. Áp dụng lazy loading có kiểm soát
    Thay vì dùng loading="lazy" đơn thuần, hãy kết hợp với placeholder:
     <img src="product.jpg" loading="lazy" width="300" height="400" srcset="product-300.jpg 300w, product-600.jpg 600w" alt="Sản phẩm" style="background:#f0f0f0;"> 
    Placeholder màu xám hoặc hình mờ (blurhash) giúp người dùng không thấy “khoảng trống” nhảy.
  6. Kiểm tra layout shift trong CI/CD
    Tích hợp Lighthouse vào pipeline CI (Jenkins, GitHub Actions) để tự động chặn deploy nếu CLS vượt ngưỡng 0.1:
     lighthouse https://yourdomain.com --output=json --output-path=./report.json --throttling-method=provided 
    Sau đó dùng script để parse và kiểm tra:
     if (report.categories.performance.score < 0.9 || report.audits['layout-shift'].score < 0.9) { throw new Error('CLS too high!'); } 

Khi thực hiện đầy đủ 6 bước này, một trang web trung bình có thể giảm CLS từ 0.35 xuống dưới 0.05 – tức cải thiện 86% – và đạt điểm “tốt” trên Google Search Console.

Tác động của CLS đến chiến dịch Digital Marketing và ROI

CLS không chỉ là vấn đề kỹ thuật – mà là vấn đề kinh doanh. Một trang web có CLS cao sẽ trực tiếp làm giảm hiệu quả của mọi chiến dịch Digital Marketing:

  • Google Ads: Theo Google Internal Data (2023), các trang web có CLS > 0.25 có tỷ lệ nhấp (CTR) thấp hơn 11–18% so với trang có CLS < 0.1. Điều này làm tăng CPC (chi phí mỗi nhấp) do chất lượng điểm quảng cáo (Quality Score) bị hạ.
  • Meta Ads & TikTok Ads: Khi người dùng click vào quảng cáo và thấy trang web “nhảy lung tung”, họ thoát ngay. Theo nghiên cứu của AdEspresso (2024), trang có CLS > 0.3 có tỷ lệ thoát trong 3 giây cao hơn 42% – khiến chi phí mỗi khách hàng tiềm năng (CPA) tăng gấp 1.8 lần.
  • Email Marketing: Khi email dẫn đến trang web có CLS cao, tỷ lệ mở lại (return visit) giảm 31% – vì người dùng cảm thấy trang “không chuyên nghiệp”.
  • SEO Organic: Google đã xác nhận rằng CLS là một trong 5 yếu tố ảnh hưởng trực tiếp đến xếp hạng “trải nghiệm người dùng”. Một trang có CLS tốt có khả năng xếp hạng cao hơn 2–4 bậc trên trang kết quả so với đối thủ có nội dung tương đương nhưng CLS kém.

Ví dụ thực tế: Công ty TNHH Thiết bị Y tế Minh Anh đã chạy chiến dịch Google Ads cho sản phẩm máy đo huyết áp. Ban đầu, trang có CLS = 0.41 – CPA = 210.000 VNĐ. Sau khi tối ưu CLS xuống 0.08 trong 10 ngày, CPA giảm còn 115.000 VNĐ – tức tiết kiệm 45% chi phí, trong khi số lượng lead tăng 23%.

Đây là minh chứng rõ ràng: Tối ưu CLS không phải là “làm đẹp giao diện”, mà là “tối ưu lợi nhuận”.

Giải pháp dài hạn: Xây dựng văn hóa tối ưu trải nghiệm người dùng trong đội ngũ

Để duy trì CLS ở mức tối ưu, doanh nghiệp cần xây dựng một hệ sinh thái kỹ thuật bền vững:

  • Thiết kế UI/UX theo nguyên tắc “Layout Stability First”: Mỗi thiết kế mới phải được kiểm tra CLS trước khi đưa vào sản xuất. Sử dụng Figma plugins như “Web Vitals Preview” để dự đoán CLS ngay trong giai đoạn thiết kế.
  • Đào tạo đội ngũ phát triển về Core Web Vitals: Mỗi developer nên hiểu rõ 3 chỉ số LCP, CLS, FID – không chỉ là “SEO stuff”. Tổ chức workshop hàng quý với các case study thực tế.
  • Thiết lập SLA (Service Level Agreement) về hiệu suất: Ví dụ: “Mọi trang mới phải có CLS ≤ 0.1, LCP ≤ 2.5s, FID ≤ 100ms – nếu không, không được deploy.”
  • Tích hợp Web Vitals vào monitoring: Sử dụng công cụ như Datadog, New Relic hoặc Google Analytics 4 để theo dõi CLS theo thời gian thực. Tạo cảnh báo khi CLS tăng đột biến sau khi cập nhật code.
  • Thực hiện A/B testing về CLS: So sánh phiên bản A (CLS=0.05) và phiên bản B (CLS=0.3) – đo lường tỷ lệ mua hàng, thời gian ở lại, tỷ lệ thoát. Kết quả luôn cho thấy phiên bản CLS thấp hơn có hiệu quả kinh doanh tốt hơn.

Doanh nghiệp nào coi CLS là “việc của developer”, thì sẽ mãi không thể đạt được lợi thế cạnh tranh trong SEO. Ngược lại, những công ty coi CLS là một phần của chiến lược kinh doanh – như Amazon, Shopee, Lazada – luôn dẫn đầu về cả tốc độ, trải nghiệm và doanh thu.

Trong tương lai, Google sẽ còn tăng cường độ ảnh hưởng của CLS – có thể tích hợp nó vào các thuật toán xếp hạng “E-E-A-T” (Experience, Expertise, Authoritativeness, Trustworthiness). Một trang web ổn định, không gây khó chịu cho người dùng sẽ được Google ưu tiên – không chỉ vì kỹ thuật, mà vì nó thể hiện sự tôn trọng với trải nghiệm người dùng.

Kết luận: CLS – Yếu tố không thể bỏ qua trong chiến lược SEO và Digital Marketing

Cumulative Layout Shift không phải là một “tính năng phụ” để bạn bỏ qua khi trang web đã “nhanh”. Nó là thước đo sự chuyên nghiệp, sự tôn trọng người dùng và là yếu tố then chốt quyết định liệu bạn có được Google ưu tiên hay không. Trong kỷ nguyên trải nghiệm người dùng là vua, một trang web có tốc độ nhanh nhưng layout nhảy loạn là một trang web “lừa đảo” – và Google sẽ phạt bạn.

Để kiểm soát CLS hiệu quả, bạn cần:

  • Đo lường đúng – bằng Google Search Console và Lighthouse
  • Phát hiện nguyên nhân – không chỉ hình ảnh, mà cả quảng cáo, font, JS
  • Ứng dụng giải pháp kỹ thuật – kích thước cố định, preload font, placeholder
  • Liên kết CLS với KPI kinh doanh – CPA, CTR, Conversion Rate
  • Xây dựng văn hóa tối ưu trải nghiệm lâu dài – không phải “chữa cháy”

Đừng chờ đến khi Google phạt bạn. Hãy bắt đầu hôm nay. Một trang web có CLS < 0.1 không chỉ xếp hạng tốt hơn – mà còn mang lại doanh thu cao hơn, chi phí thấp hơn và niềm tin lớn hơn từ khách hàng.

Trong năm 2025, những doanh nghiệp không chủ động tối ưu CLS sẽ bị loại khỏi top 3 kết quả tìm kiếm – và bị thay thế bởi những đối thủ đã biến trải nghiệm người dùng thành lợi thế cạnh tranh bền vững.

×
sale 20%