Thuật ngữ

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. 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.

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$.


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 widthheight 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ẻ divchiề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:

  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

  • [ ] 1. Ảnh & Video: 100% phần tử Multimedia đã có thuộc tính widthheight 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)

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.

  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ạn đang cần gì?