Đăng Ký Học SEO

CLS & Layout Stability: Kỹ thuật chống xê dịch bố cục

Cumulative Layout Shift (CLS) đo lường tổng tất cả các điểm số về sự dịch chuyển bố cục đột ngột của các phần tử trên trang trong suốt quá trình tải.

Cumulative Layout Shift (CLS) đo lường tổng tất cả các điểm số về sự dịch chuyển bố cục đột ngột của các phần tử trên trang trong suốt quá trình tải. Một điểm số CLS cao khiến người dùng nhấp nhầm link, gây ức chế và trực tiếp làm giảm thứ hạng trên Google.

Mục tiêu: Đạt mức CLS $\le 0.1$.


Tài liệu trả phí

Bản chuyên sâu: CLS dưới 0,1: quy trình khai width, height cho ảnh, đo và nghiệm thu

Bài đọc miễn phí giữ nguyên. Bản chuyên sâu là tài liệu viết riêng: quy trình từng bước, checklist, bảng lỗi và mẫu để làm theo.

  • Đọc trên trang học: 6.304 chữ, viết riêng cho mục P1.03 của SQA-200
  • PDF: 15 trang, tải về
  • Excel: 8 bảng và 47 dòng checklist có cột đánh dấu
  • Quyền dùng: mua một lần, sở hữu vĩnh viễn

399.000đ thanh toán 16 USD qua PayPal hoặc thẻ Visa, Mastercard

Mua tài liệu

Xem trước bản đầy đủ: ba ảnh chụp từ chính tệp PDF và Excel bạn nhận sau khi mua.

Trang 1 bản PDF của tài liệu CLS dưới 0,1: quy trình khai width, height cho ảnh, đo và nghiệm thu
Trang 1 trong 15 trang của bản PDF.
Trang 3 bản PDF của tài liệu CLS dưới 0,1: quy trình khai width, height cho ảnh, đo và nghiệm thu, phần có bảng
Trang 3 trong 15 trang của bản PDF, phần có bảng.
Sheet Mục lục trong tệp Excel của tài liệu CLS dưới 0,1: quy trình khai width, height cho ảnh, đo và nghiệm thu
Sheet Mục lục của tệp Excel: 8 bảng, mỗi bảng một sheet.

1. Nguyên nhân hàng đầu gây lỗi CLS

Sự xê dịch xảy ra khi trình duyệt chưa biết kích thước của một phần tử (ảnh, video, quảng cáo) nên nó đặt kích thước bằng 0. Khi phần tử đó tải xong, nó "đẩy" các nội dung phía dưới xuống để lấy chỗ.

1.1. Hình ảnh không khai báo kích thước

Đây là lỗi phổ biến nhất. Trình duyệt không biết giữ chỗ (reserve space) cho ảnh.

  • Kỹ thuật khắc phục: Luôn khai báo thuộc tính width và height trực tiếp trong thẻ HTML.

HTML

<img src="san-pham.webp" width="800" height="600" alt="Ten san pham">
  • CSS hiện đại: Sử dụng thuộc tính aspect-ratio để giữ khung hình ổn định trên mọi thiết bị.

CSS

img {
 max-width: 100%;
 height: auto;
 aspect-ratio: 4 / 3;
}

1.2. Quảng cáo, Iframe và Embeds

Các khung quảng cáo (như Adsense) thường hiện ra sau cùng và đẩy nội dung bài viết xuống.

  • Kỹ thuật khắc phục: Bao bọc quảng cáo trong một thẻ div có chiều cao cố định (min-height).

HTML

<div class="ad-slot" style="min-height: 250px;">
 </div>

2. Font chữ và hiện tượng FOIT/FOUT

Khi trình duyệt tải font chữ tùy chỉnh từ Google Fonts hoặc Server, nó có thể gây ra hiện tượng:

  • FOIT (Flash of Invisible Text): Chữ biến mất cho đến khi font tải xong.
  • FOUT (Flash of Unstyled Text): Chữ hiện ra bằng font hệ thống, sau đó nhảy kích thước khi font tùy chỉnh được áp dụng.

Kỹ thuật khắc phục:

Hai kỹ thuật xử lý font đi cùng nhau. Thuộc tính font-display swap cho trình duyệt dùng font hệ thống ngay rồi mới đổi khi font chính tải xong, còn preload kéo các tệp font quan trọng của phần đầu trang về sớm. Dùng swap một mình vẫn thấy chữ nhảy, nên preload mới là phần giảm xê dịch thật.

  1. Font-display: swap: Cho phép trình duyệt dùng font hệ thống ngay lập tức và chỉ thay đổi "vỏ" khi font xịn tải xong.font-display: swap;
  2. Preload Critical Fonts: Tải trước các tệp font quan trọng nhất của phần đầu trang.<link rel="preload" href="font-chinh.woff2" as="font" type="font/woff2" crossorigin>

3. Nội dung chèn động (Dynamic Content)

Việc dùng JavaScript để chèn thêm thông báo (Banner khuyến mãi, Newsletter) ở phía trên nội dung chính sau khi trang đã tải xong là "kẻ thù" của CLS.

  • Quy tắc: Chỉ chèn nội dung động bên dưới khung hình đang hiển thị (below the fold) hoặc sử dụng các lớp phủ (Overlay/Pop-up) không làm thay đổi vị trí của các phần tử hiện có.

4. Animation và Transform

Khi tạo hiệu ứng chuyển động, nếu bạn thay đổi các thuộc tính như top, left, margin, trình duyệt phải tính toán lại toàn bộ bố cục (Reflow).

  • Kỹ thuật khắc phục: Chỉ sử dụng thuộc tính transform (như translate(), scale()) để tạo hiệu ứng. Thuộc tính này được xử lý bởi GPU và không gây xê dịch bố cục.

5. Checklist thực hành đạt điểm xanh CLS

Một website có CLS thấp không chỉ giúp người dùng dễ chịu mà còn giúp Google AI trích xuất dữ liệu chính xác hơn.

Kiến thức thì đọc được ở nhiều nơi, phần thiếu thường là chỗ tập và người soát lại. Khóa Học SEO mô tả hai phần đó ở từng khoá.

  • [ ] 1. Ảnh & Video: 100% phần tử Multimedia đã có thuộc tính width và height chưa?
  • [ ] 2. Ads Slot: Các vị trí đặt quảng cáo đã được cố định khung sườn (Placeholder) chưa?
  • [ ] 3. Web Fonts: Đã sử dụng font-display: swap và preload các font chính chưa?
  • [ ] 4. Layout Shift Debugger: Đã dùng Chrome DevTools (Lighthouse) hoặc tính năng "Layout Shift Regions" để tìm chính xác phần tử nào đang nhảy chưa?
  • [ ] 5. Transition: Các hiệu ứng hiện ra (như menu mobile) đã dùng transform thay vì thay đổi kích thước trực tiếp chưa?

6. Kết luận: CLS và sự ổn định của Thực thể (Entity)

CLS và sự ổn định của thực thể gắn với nhau vì bố cục ổn định giúp Google Bot xác định đúng quan hệ giữa H1, H2 và đoạn văn. Trang nhảy lung tung thường bị AI coi là chất lượng thấp, nên khắc phục CLS là bài kiểm tra về sự tỉ mỉ.

Phần kỹ thuật thường giao cho lập trình viên, nhưng người ra yêu cầu phải hiểu đủ để kiểm tra lại. Khóa Học SEO Master nhắm vào phần hiểu đủ đó.

  1. Khả năng đọc hiểu của AI: Khi bố cục ổn định, Google Bot có thể xác định chính xác mối quan hệ giữa các thẻ tiêu đề (H1, H2) và đoạn văn mà không bị nhầm lẫn bởi các phần tử chèn ngang.
  2. Tín hiệu uy tín: Một trang web "nhảy lung tung" thường bị AI coi là có chất lượng thấp hoặc chứa quảng cáo độc hại. Sự ổn định là chìa khóa để giữ chân người dùng và thăng hạng trên AI Overview.

Lời kết: Khắc phục CLS là một bài kiểm tra về sự tỉ mỉ. Khi bạn giữ cho website luôn "tĩnh" trong quá trình tải, bạn đang tạo ra một trải nghiệm chuyên nghiệp và đáng tin cậy nhất cho khách hàng của mình.

Bước tiếp theo

Muốn tự làm được việc này trên website của bạn?

SEO Master hướng dẫn làm SEO trong 24 buổi, từ tư duy nền tảng tới triển khai và đo lường trên website thật.

Tài liệu trả phí

Bản chuyên sâu: CLS dưới 0,1: quy trình khai width, height cho ảnh, đo và nghiệm thu

Bài đọc miễn phí giữ nguyên. Bản chuyên sâu là tài liệu viết riêng: quy trình từng bước, checklist, bảng lỗi và mẫu để làm theo.

  • Đọc trên trang học: 6.304 chữ, viết riêng cho mục P1.03 của SQA-200
  • PDF: 15 trang, tải về
  • Excel: 8 bảng và 47 dòng checklist có cột đánh dấu
  • Quyền dùng: mua một lần, sở hữu vĩnh viễn

399.000đ thanh toán 16 USD qua PayPal hoặc thẻ Visa, Mastercard

Mua tài liệu

Định nghĩaCumulative Layout Shift (CLS) là chỉ số đo tổng các điểm số về sự dịch chuyển bố cục đột ngột của các phần tử trong quá trình tải, giúp bạn biết trang có làm người dùng nhấp nhầm link hay không.

Cách khắc phục CLS và giữ bố cục ổn định khi tải trang

Các bước giúp bạn giữ chỗ cho ảnh, quảng cáo, font và nội dung động, để bố cục không nhảy khi tải và CLS đạt mức 0.1 trở xuống.

  1. Khai báo kích thước cho ảnhKhai báo width và height trực tiếp trong thẻ HTML cho mọi ảnh và video để trình duyệt giữ chỗ trước khi phần tử tải xong.
  2. Cố định khung cho quảng cáoBao quảng cáo, iframe và embed trong một thẻ có chiều cao cố định bằng min-height để khung quảng cáo hiện sau cùng không đẩy nội dung xuống.
  3. Xử lý font bằng swap và preloadĐặt font-display swap để trình duyệt dùng font hệ thống ngay, rồi preload các tệp font quan trọng của phần đầu trang để giảm chữ nhảy.
  4. Chèn nội dung động đúng chỗChỉ chèn banner hay newsletter bên dưới khung hình đang hiển thị, hoặc dùng lớp phủ Overlay, Pop-up không làm thay đổi vị trí phần tử hiện có.
  5. Dùng Transform cho hiệu ứngTạo hiệu ứng chuyển động bằng Transform, được GPU xử lý, để trình duyệt khỏi tính toán lại toàn bộ bố cục và tránh xê dịch.
  6. Kiểm tra lại bằng Chrome DevToolsDùng Chrome DevTools (Lighthouse) hoặc tính năng Layout Shift Regions để tìm chính xác phần tử nào đang nhảy, rồi rà lại checklist đến khi CLS đạt mức 0.1 trở xuống.

Câu hỏi thường gặp về Cumulative Layout Shift (CLS)

Giải đáp trực tiếp các câu hỏi thường gặp về Cumulative Layout Shift (CLS) dựa trên dữ liệu triển khai thực tế, quy trình kiểm thử kỹ thuật và kinh nghiệm thực chiến trên website thật để tối ưu hiệu quả tìm kiếm.

Vì sao nội dung tự bị đẩy xuống khi ảnh vừa tải xong?

Nội dung bị đẩy xuống vì trình duyệt chưa biết kích thước của ảnh nên đặt kích thước bằng 0. Khi ảnh tải xong, ảnh chiếm chỗ và đẩy các nội dung phía dưới xuống. Cách khắc phục là khai báo width và height trực tiếp trong thẻ HTML để trình duyệt giữ chỗ từ đầu.

Quảng cáo Adsense hiện ra sau cùng làm nhảy bố cục thì xử lý thế nào?

Bạn bao quảng cáo trong một thẻ có chiều cao cố định bằng min-height. Khung quảng cáo thường hiện ra sau cùng và đẩy nội dung xuống, nên vị trí đặt quảng cáo cần được cố định khung sườn (Placeholder) trước. Cách làm tương tự áp dụng cho iframe và embed.

Đã đặt font-display swap mà chữ vẫn nhảy kích thước thì thiếu bước nào?

Bạn thường thiếu bước preload các tệp font quan trọng của phần đầu trang. Font-display swap chỉ cho trình duyệt dùng font hệ thống ngay rồi đổi khi font chính tải xong, nên chỉ dùng swap vẫn thấy chữ nhảy. Preload kéo font về sớm và mới là phần giảm xê dịch thật.

Chèn banner khuyến mãi bằng JavaScript sau khi tải có làm tăng CLS không?

Có, nếu banner được chèn phía trên nội dung chính sau khi trang đã tải xong. Kiểu chèn đó gây xê dịch bố cục trực tiếp. Bạn chỉ nên chèn nội dung động bên dưới khung hình đang hiển thị (below the fold), hoặc dùng lớp phủ Overlay, Pop-up không làm thay đổi vị trí các phần tử hiện có.

FOIT và FOUT khác nhau thế nào khi trình duyệt tải font tùy chỉnh?

FOIT (Flash of Invisible Text) làm chữ biến mất cho đến khi font tải xong. FOUT (Flash of Unstyled Text) cho chữ hiện ra bằng font hệ thống, sau đó nhảy kích thước khi font tùy chỉnh được áp dụng. Cả hai xảy ra khi tải font từ Google Fonts hoặc Server.

Mức CLS bao nhiêu thì được tính là đạt điểm xanh?

Mục tiêu là đạt mức CLS từ 0.1 trở xuống. Để giữ được mức đó, bạn rà đủ checklist gồm ảnh và video có kích thước, vị trí quảng cáo có Placeholder, font chính được preload, hiệu ứng dùng Transform và phần tử nhảy đã được tìm bằng Chrome DevTools.

Vì sao hiệu ứng chuyển động có thể gây xê dịch bố cục?

Hiệu ứng gây xê dịch khi bạn thay đổi trực tiếp các thuộc tính ảnh hưởng tới bố cục, vì trình duyệt phải tính toán lại toàn bộ bố cục (Reflow). Cách khắc phục là chỉ dùng Transform để tạo hiệu ứng. Transform được GPU xử lý và không gây xê dịch bố cục, kể cả với menu mobile.

CLS ảnh hưởng thế nào tới việc Google Bot và AI đọc hiểu nội dung?

Bố cục ổn định giúp Google Bot xác định chính xác mối quan hệ giữa các thẻ tiêu đề H1, H2 và đoạn văn mà không bị nhầm bởi phần tử chèn ngang. Trang nhảy lung tung thường bị AI đánh giá là chất lượng thấp, nên sự ổn định giúp giữ chân người dùng và thăng hạng trên AI Overview.

CLS là gì và vì sao CLS quan trọng với SEO?

CLS là Cumulative Layout Shift, chỉ số đo tổng các điểm số về sự dịch chuyển bố cục đột ngột của các phần tử trong suốt quá trình tải. CLS cao khiến người dùng nhấp nhầm link, gây ức chế và trực tiếp làm giảm thứ hạng trên Google. Mục tiêu là đạt mức CLS từ 0.1 trở xuống.

Website nhỏ có cần tối ưu CLS không hay chỉ trang nhiều quảng cáo mới cần?

Website nào cũng cần tối ưu CLS, vì xê dịch bố cục đến từ ảnh không khai báo kích thước, font tùy chỉnh và nội dung chèn động, không riêng quảng cáo. CLS cao làm người dùng nhấp nhầm link và giảm thứ hạng. Bố cục ổn định giúp Google AI trích xuất dữ liệu chính xác hơn.

Nên bắt đầu khắc phục CLS từ đâu khi chưa biết phần tử nào gây nhảy?

Nên bắt đầu khắc phục CLS bằng việc dùng Chrome DevTools (Lighthouse) hoặc tính năng Layout Shift Regions để tìm chính xác phần tử nào đang nhảy. Sau đó xử lý lỗi phổ biến nhất trước, là hình ảnh không khai báo kích thước, rồi tới quảng cáo, font và nội dung chèn động.

Font-display swap khác preload font thế nào trong việc giảm CLS?

Font-display swap cho trình duyệt dùng font hệ thống ngay rồi đổi khi font chính tải xong, còn preload kéo các tệp font quan trọng của phần đầu trang về sớm. Hai kỹ thuật xử lý font đi cùng nhau. Chỉ dùng swap vẫn thấy chữ nhảy, nên preload mới là phần giảm CLS thật.

Menu

Thêm vào màn hình chính

  1. 1 Bấm nút Chia sẻ ở thanh công cụ Safari
  2. 2 Kéo xuống, chọn Thêm vào MH chính
  3. 3 Bấm Thêm ở góc trên bên phải

Ba bước này là của Safari. Nếu đang xem trong ứng dụng khác thì bấm mở bằng Safari trước đã.