Landing Page GuideMở ứng dụng
Khóa 312 phútBài 12/19

Core Web Vitals

LCP, INP, CLS: ngưỡng “tốt” ở phân vị 75, cách đo dữ liệu thực tế và các cách sửa ưu tiên cho Landing Page.

Mục tiêu bài học
  • Nêu đúng ba chỉ số và ngưỡng tốt theo web.dev.
  • Phân biệt dữ liệu thực tế (field) và dữ liệu phòng thí nghiệm (lab).
  • Lập danh sách sửa lỗi ưu tiên cho từng chỉ số.

Core Web Vitals là bộ chỉ số đo trải nghiệm thực tế của người dùng về tốc độ tải, khả năng phản hồi và độ ổn định hình ảnh. Từ tháng 3/2024, INP (Interaction to Next Paint) chính thức thay thế FID trong bộ Core Web Vitals.

LCP≤ 2,5 sINP≤ 200 msCLS≤ 0,1Chỉ số CWV
LCP đo tốc độ tải, INP đo độ phản hồi, CLS đo độ ổn định bố cục.
Chỉ sốĐo điều gìTốtKém
LCP — Largest Contentful PaintThời điểm phần tử nội dung lớn nhất trong khung nhìn hiển thị≤ 2,5 s> 4 s
INP — Interaction to Next PaintĐộ trễ từ tương tác (chạm, nhấp, gõ) tới khung hình kế tiếp, xét trong suốt phiên≤ 200 ms> 500 ms
CLS — Cumulative Layout ShiftMức xô lệch bố cục bất ngờ≤ 0,1> 0,25

Ngưỡng được đánh giá ở phân vị 75 của lượt tải trang thực tế, tách riêng di động và máy tính. Nghĩa là ít nhất 75% lượt truy cập phải đạt ngưỡng “tốt” thì trang mới được xếp vào nhóm tốt cho chỉ số đó.

Field và lab: đo ở đâu?

Công cụLoại dữ liệuDùng để
Báo cáo Core Web Vitals trong Search ConsoleField (CrUX)Xem nhóm URL tốt / cần cải thiện / kém trên toàn site
PageSpeed InsightsField (nếu đủ dữ liệu) + lab (Lighthouse)Kiểm tra một URL cụ thể
Lighthouse, Chrome DevToolsLabTìm nguyên nhân, thử sửa trước khi deploy
Thư viện web-vitals (JavaScript)Field từ người dùng của bạnTự thu thập số liệu thực tế

Sửa theo chỉ số

  • LCP: giảm thời gian phản hồi máy chủ (CDN, trang tĩnh), nén ảnh hero, không lazy-load ảnh LCP, dùng fetchpriority="high", giảm CSS/JS chặn hiển thị, hạn chế font ngoài.
  • INP: giảm và chia nhỏ tác vụ JavaScript dài, bớt script bên thứ ba (chat, pixel, widget), xử lý sự kiện nhẹ và cập nhật giao diện ngay, tránh DOM quá lớn.
  • CLS: khai báo width/height cho ảnh, video, iframe; giữ chỗ trước cho banner, popup, nhúng; tránh chèn nội dung phía trên nội dung đang xem; dùng font-display hợp lý.
Google cho biết Core Web Vitals được các hệ thống xếp hạng sử dụng, nhưng điểm tốt không đảm bảo thứ hạng cao; nội dung liên quan, hữu ích vẫn quan trọng hơn. Đừng chạy theo điểm Lighthouse 100 mà bỏ quên nội dung — và đừng kết luận từ một lần đo lab.
Ví dụ: Landing Page homestayTrang có ảnh hero 4 MB, slider tự chạy, nút chat bên thứ ba tải ngay khi mở trang. Ưu tiên sửa: nén ảnh hero sang WebP đúng kích thước, bỏ slider thay bằng một ảnh đẹp nhất, trì hoãn tải widget chat tới khi người dùng chạm nút. Sau 28 ngày, xem lại báo cáo field để đánh giá thật.
Trang nhẹ cũng giúp điện thoại đỡ nóng và đỡ hao pin: tránh vòng lặp animation chạy mãi, hiệu ứng nặng và script không cần thiết.

Bài tập thực hành

Chạy PageSpeed Insights cho Landing Page trên chế độ di động. Ghi lại LCP, INP, CLS (field nếu có, lab nếu không), xác định phần tử LCP và chọn một nguyên nhân lớn nhất để sửa.

Gợi ý: Phần chẩn đoán của Lighthouse chỉ ra phần tử LCP và các tác vụ dài. Nếu không có dữ liệu field, ghi rõ chỉ có số lab.

  • Ghi đủ 3 chỉ số và nêu rõ field hay lab.
  • Xác định được phần tử LCP.
  • Chọn một thay đổi cụ thể, có giả thuyết vì sao nó cải thiện chỉ số.
  • Đo lại sau khi sửa và ghi kết quả.

Làm bài & lưu ghi chú trong ứng dụng

Kiểm tra kiến thức

1. Ngưỡng “tốt” của INP là bao nhiêu?
  1. ≤ 100 ms
  2. ≤ 200 ms
  3. ≤ 500 ms
  4. ≤ 2,5 s
Xem đáp án

B. ≤ 200 ms — Theo web.dev, INP tốt khi ≤ 200 ms ở phân vị 75; trên 500 ms là kém.

2. Chỉ số nào đo độ ổn định bố cục?
  1. LCP
  2. INP
  3. CLS
  4. CTR
Xem đáp án

C. CLS — CLS (Cumulative Layout Shift) đo mức xô lệch bố cục bất ngờ; ngưỡng tốt ≤ 0,1.

3. Chỉ số nào bị INP thay thế từ tháng 3/2024?
  1. FID
  2. LCP
  3. TTFB
  4. CLS
Xem đáp án

A. FID — INP chính thức thay FID (First Input Delay) trong Core Web Vitals từ tháng 3/2024.

Nguồn tham khảo chính thức