KIếN THứC WEBSITE › PERFORMANCE

CrUX là gì — Chrome UX Report, nguồn data field cho Core Web Vitals

CrUX là gì — Chrome UX Report, nguồn data field cho Core Web Vitals

CrUX (Chrome User Experience Report) là tập dữ liệu Google thu thập từ người dùng Chrome thật — nguồn dữ liệu thực tế cho Core Web Vitals và tín hiệu xếp hạng. Bài giải thích CrUX là gì, cách thu thập, điểm khác với dữ liệu lab, và giới hạn cần biết khi audit shop online.

CrUX là gì — định nghĩa và phạm vi

CrUX là gì — định nghĩa và phạm vi
CrUX là gì — định nghĩa và phạm vi

CrUX là tập dữ liệu hiệu năng công khai do Google duy trì. Dữ liệu bao gồm các chỉ số Core Web Vitals (LCP, INP, CLS) và chỉ số phụ (FCP, TTFB) đo từ người dùng Chrome thật.

Google cập nhật CrUX hàng tháng và dùng làm nguồn tín hiệu xếp hạng tìm kiếm. Site fail Core Web Vitals trong CrUX sẽ bị giảm ưu tiên trong kết quả tìm kiếm.

Ai được thu thập vào CrUX?

CrUX chỉ thu thập từ người dùng Chrome desktop và Android. Safari, Firefox không nằm trong tập dữ liệu này.

Người dùng phải bật tùy chọn “Make searches and browsing better” trong Chrome — mặc định bật cho tài khoản đã đăng nhập Google. Google không tracking cá nhân — chỉ tổng hợp theo origin và công bố.

Ngưỡng traffic để có dữ liệu CrUX

Origin cần đủ lượng người dùng Chrome để Google có dữ liệu đủ độ tin cậy thống kê. Google không công bố ngưỡng cụ thể.

Kinh nghiệm thực tế: site dưới 100 người dùng Chrome duy nhất mỗi tháng thường không có dữ liệu CrUX. PSI sẽ hiển thị “no data” ở tab dữ liệu thực tế.

Phạm vi dữ liệu

CrUX tổng hợp dữ liệu theo origin (toàn tên miền), URL, quốc gia, loại thiết bị và loại kết nối. Dữ liệu URL riêng lẻ chỉ có khi URL đó đủ lượng truy cập.

Lưu ý: CrUX tổng hợp origin-level, trang chủ hiệu năng tốt có thể che lấp landing page kém.

Cách Google thu thập dữ liệu CrUX

Cách Google thu thập dữ liệu CrUX
Cách Google thu thập dữ liệu CrUX

Chrome ghi các chỉ số hiệu năng khi người dùng ghé thăm trang, sau đó gửi ẩn danh về Google. Dữ liệu được tổng hợp theo origin trong cửa sổ 28 ngày trượt.

Quy trình thu thập từng bước

  • Chrome client: đo Core Web Vitals trên trang người dùng thật ghé.
  • Gửi ẩn danh: dữ liệu về Google qua HTTPS, không kèm ID người dùng.
  • Tổng hợp p75: Google tính phân vị thứ 75 cho mỗi origin trong 28 ngày trượt.
  • Công bố: BigQuery (hàng tháng) và CrUX API (cập nhật hàng ngày, cửa sổ 28 ngày).

Hai định dạng dữ liệu

Google cung cấp CrUX theo hai hình thức. BigQuery là bản dump hàng tháng, phù hợp phân tích quy mô lớn.

CrUX API cho phép truy vấn theo thời gian thực với cửa sổ 28 ngày liên tục.

Tại sao chọn p75?

Phân vị thứ 75 (p75) là ngưỡng Google chọn để đánh giá trải nghiệm người dùng. Điều này có nghĩa 75% lượt ghé thăm đạt mức đó hoặc tốt hơn — phản ánh trải nghiệm của phần lớn người dùng thật.

Khác biệt dữ liệu thực tế vs dữ liệu lab

Khác biệt dữ liệu thực tế vs dữ liệu lab
Khác biệt dữ liệu thực tế vs dữ liệu lab

CrUX là dữ liệu thực tế — người dùng thật, mạng và thiết bị đa dạng. Dữ liệu lab (Lighthouse, WebPageTest) là mô phỏng — chạy một lần với thiết bị và mạng giả lập.

Hai nguồn không thay thế nhau. Google dùng CrUX cho xếp hạng, còn dữ liệu lab phục vụ debug và tìm nguyên nhân gốc rễ.

Bảng so sánh chi tiết

Khía cạnh CrUX (thực tế) Lighthouse (lab)
Nguồn Người dùng thật Chrome Mô phỏng một lần chạy
Thiết bị Đa dạng (mobile, desktop) Mô phỏng (mid-tier mobile mặc định)
Mạng Đa dạng (3G, 4G, WiFi) Mô phỏng Slow 4G mặc định
Cửa sổ thời gian 28 ngày trượt Một lần chạy tức thì
Độ biến động Thấp (tổng hợp) Cao (±50-150ms giữa các lần)
Mục đích sử dụng Xếp hạng, theo dõi sản phẩm Debug, vòng lặp phát triển
Cập nhật Hàng ngày qua API Mỗi lần chạy thủ công

Khi nào dùng cái nào?

Dùng CrUX khi cần đánh giá tình trạng xếp hạng thực tế và theo dõi cải thiện dài hạn. Dùng dữ liệu lab khi cần tìm nguyên nhân cụ thể và kiểm tra hiệu quả từng fix.

Truy cập CrUX qua công cụ nào

Có 4 cách chính truy cập CrUX, mỗi cách phù hợp mục đích khác nhau. Người phát triển dùng hàng ngày thường chọn PSI hoặc Search Console.

PageSpeed Insights — kiểm tra nhanh

Tab “Origin Summary” và “Page” trong PageSpeed Insights hiển thị dữ liệu CrUX 28 ngày p75 cho LCP, INP, CLS, TTFB, FCP. Có badge pass/fail ngay đầu trang.

Phù hợp kiểm tra nhanh một URL hoặc một origin. Miễn phí, không cần xác thực.

Search Console — báo cáo Core Web Vitals

Đăng nhập Search Console, vào tab “Core Web Vitals” để xem nhóm URL pass/fail theo CrUX 28 ngày. Tách riêng mobile và desktop.

  • Sau khi fix, có thể gửi yêu cầu xác nhận — Google kiểm tra lại trong 28 ngày.
  • Phù hợp theo dõi toàn site, xác định nhóm URL có vấn đề.

CrUX API — truy vấn lập trình

Google CrUX API trả về JSON chỉ số cho origin hoặc URL theo thời gian thực (cửa sổ 28 ngày, cập nhật hàng ngày). Hạn mức miễn phí 500 truy vấn mỗi ngày.

Phù hợp xây dựng bảng theo dõi tùy chỉnh hoặc cảnh báo tự động khi chỉ số giảm. Endpoint: chromeuxreport.googleapis.com/v1/records:queryRecord.

BigQuery — phân tích quy mô lớn

Google công bố bản dump CrUX hàng tháng trên BigQuery. Có thể truy vấn SQL trên hàng triệu origin, phân theo quốc gia, thiết bị và loại kết nối.

Phù hợp so sánh ngành, nghiên cứu quy mô lớn. Cần tài khoản Google Cloud, chi phí theo BigQuery pricing.

Giới hạn cần biết khi dùng CrUX

CrUX không hoàn hảo — có các điểm mù cần nắm để audit đúng. Hiểu giới hạn giúp tránh kết luận sai khi đọc dữ liệu.

Điểm mù chính

  • Site dưới ngưỡng traffic: không có dữ liệu CrUX, PSI hiển thị “no data”. Cần tự triển khai RUM qua web-vitals.js.
  • Trình duyệt khác Chrome: Safari iOS (khoảng 30% traffic tại VN) và Firefox không được thu thập. CrUX nghiêng về phía Chrome.
  • Độ trễ 28 ngày: fix hiệu năng hôm nay, CrUX phản ánh sau 14-28 ngày. Xác nhận Search Console mất tối thiểu 28 ngày.
  • Tổng hợp origin: trang chủ tốt có thể che lấp landing page kém. Dữ liệu URL riêng lẻ chỉ có khi URL đó đủ lượng truy cập.

Khi site không có dữ liệu CrUX

Triển khai RUM (Real User Monitoring) bằng web-vitals.js để thu thập chỉ số từ người dùng thật ngay, không chờ ngưỡng CrUX. Gửi dữ liệu về GA4 hoặc Sentry.

Xem thêm hướng dẫn đo hiệu năng chi tiết trong bài WebPageTest — đo hiệu năng chi tiết.

Hiểu sai phổ biến về CrUX

Nhiều người nhầm điểm Lighthouse (dữ liệu lab) với CrUX (dữ liệu thực tế). Điểm Lighthouse có thể xanh trong khi CrUX vẫn fail — vì hai nguồn đo theo điều kiện khác nhau.

Xếp hạng Google dựa CrUX. Điểm Lighthouse chỉ là công cụ debug — không dùng trực tiếp cho xếp hạng.

Checklist áp dụng CrUX cho shop VN

  1. Kiểm tra dữ liệu CrUX qua PSI trước khi bắt đầu bất kỳ chiến dịch tối ưu nào.
  2. Xem tab “Origin” và tab “URL” riêng biệt — không nhầm lẫn hai nguồn.
  3. Nếu PSI hiển thị “no data”, triển khai web-vitals.js đo RUM ngay.
  4. Kiểm tra Search Console tab “Core Web Vitals” mỗi tuần.
  5. Sau khi fix, gửi yêu cầu xác nhận trong Search Console và chờ 28 ngày.
  6. Theo dõi riêng mobile và desktop — đây là hai nhóm dữ liệu tách biệt.
  7. Không dùng điểm Lighthouse thay CrUX để đánh giá tình trạng xếp hạng.
  8. Với site có nhiều landing page, audit từng URL riêng, không chỉ xem origin.
  9. Đối chiếu CrUX với GA4 để có bức tranh đầy đủ (GA4 thu thập cả Safari/Firefox).
  10. Nếu dùng BigQuery, cần hiểu chi phí truy vấn trước khi chạy query quy mô lớn.

Bài liên quan trong cluster Performance

Câu hỏi thường gặp

Site mới launch không có dữ liệu CrUX — đo Core Web Vitals sao?

Triển khai RUM bằng web-vitals.js — đo từ người dùng thật ngay, không chờ ngưỡng CrUX. Gửi dữ liệu về GA4 hoặc Sentry để theo dõi.

  • Thời gian: sau 1-3 tháng traffic đủ, CrUX sẽ có dữ liệu để đối chiếu.
  • Tool: npm install web-vitals, dùng hàm onLCP, onINP, onCLS.
CrUX và GA4 đo Core Web Vitals — số khác nhau, tin vào đâu?

Tin vào CrUX cho quyết định xếp hạng — Google dùng CrUX, không dùng GA4.

GA4 với plugin web-vitals thu thập từ tất cả trình duyệt (kể cả Safari, Firefox), cho bức tranh đầy đủ hơn. Dùng cả hai: CrUX cho xếp hạng, GA4 để hiểu toàn bộ người dùng.

Xác nhận fix trong Search Console mất bao lâu?

Tối thiểu 28 ngày sau khi gửi “Validate fix”. Google cần 28 ngày dữ liệu thực tế mới với p75 đạt ngưỡng Good.

Trong 28 ngày, trạng thái hiển thị “Validation in progress”. Kết quả sẽ là pass hoặc fail sau đó.

BigQuery CrUX — chi phí truy vấn khoảng bao nhiêu?

BigQuery tính phí theo dữ liệu quét: $5/TB. Tập dữ liệu CrUX hàng tháng khoảng 50-200GB.

  • Query nhỏ (1 quốc gia, 1 chỉ số): ~5-20GB → $0.025-0.10 mỗi lần.
  • Miễn phí: Google tặng 1TB/tháng — đủ cho audit cá nhân, không đủ cho bảng theo dõi theo giờ.
CrUX có theo dõi người dùng riêng lẻ không?

Không. Google chỉ tổng hợp và công bố thống kê theo origin — không theo dõi cá nhân.

Người dùng phải tự nguyện tham gia qua cài đặt Chrome.

Cần hỗ trợ audit Core Web Vitals và cải thiện trải nghiệm trang của bạn? Xem dịch vụ tối ưu Core Web Vitals của Web22.