Tối ưu LCP là gì và vì sao đa số SEOer đang tối ưu sai phần tử?
Largest Contentful Paint (LCP) là chỉ số đo thời gian render phần tử lớn nhất trong viewport đầu tiên khi người dùng tải trang. Theo nghiên cứu của Google trên hàng triệu trang web, LCP là metric Core Web Vitals ảnh hưởng trực tiếp đến trải nghiệm người dùng và là yếu tố xếp hạng nhỏ nhưng thật. Vấn đề: đa số SEOer và developer tin rằng nén ảnh hoặc tối ưu server là cách duy nhất để cải thiện LCP. Case study Nuvemshop vừa được Google đăng trên web.dev chứng minh điều ngược lại — đôi khi bạn đang tối ưu sai phần tử từ đầu.

Nuvemshop là ai và tại sao case study này đáng chú ý?
Nuvemshop (tiếng Tây Ban Nha gọi là Tiendanube) là nền tảng ecommerce lớn nhất Mỹ Latinh, phục vụ hơn 180.000 gian hàng trực tuyến. Khác với SaaS platform thông thường nơi layout cố định, Nuvemshop cho phép merchant tùy ý sắp xếp các section trên homepage — carousel, banner, product grid, custom module — theo bất kỳ thứ tự nào.
Điều này tạo ra một bài toán kỹ thuật mà tôi tin là rất phổ biến trong thực tế: trình duyệt có thể chọn sai phần tử làm LCP. Kết quả? Bạn tốn hàng tuần tối ưu một tấm ảnh mà trình duyệt chưa bao giờ coi là LCP. Dữ liệu từ Nuvemshop cho thấy đây chính là nguyên nhân chính khiến effort Core Web Vitals của họ trước đó không hiệu quả.
Vì sao trình duyệt chọn sai phần tử LCP?
Đây là phần mà tôi muốn phân tích kỹ, vì nó là bài học lớn nhất từ case study này. Khi Nuvemshop phân tích hàng nghìn store qua PageSpeed Insights, họ phát hiện ba nguyên nhân gốc rễ khiến trình duyệt đo sai LCP:
Một: CSS transitions trên carousel và banner làm chậm thời điểm phần tử được “nhìn thấy” bởi thuật toán LCP. Người dùng thấy carousel tải trước, nhưng trình duyệt lại đánh dấu một banner ở dưới là LCP vì phần tử đó không bị transition delay.
Hai: Lazy loading được áp dụng cho ảnh ở đầu viewport — chính xác là nơi cần load ngay lập tức. web.dev từng cảnh báo điều này, nhưng nhiều theme và plugin vẫn mặc định lazy load toàn bộ.
Ba: Thiếu fetchpriority signal khiến trình duyệt không biết ảnh nào cần ưu tiên tải trước. Kết quả: tài nguyên quan trọng nhất lại xếp hàng chờ sau những tài nguyên ít quan trọng hơn.
Theo dữ liệu Nuvemshop, carousel xuất hiện trên 85% storefront. Nghĩa là phần lớn store đang bị ảnh hưởng bởi vấn đề này mà không hề hay biết.
Ba sửa đổi Nuvemshop áp dụng và kết quả thu được
Sau khi xác định nguyên nhân, Nuvemshop áp dụng ba thay đổi trên toàn bộ theme chính và mọi loại trang (homepage, category, product). Tôi đánh giá cao việc họ không chỉ fix trên homepage mà cover toàn bộ page type có traffic lớn.
Sửa đổi 1 — Gỡ CSS transitions ở section đầu tiên. Các section xuất hiện đầu trang giờ render ngay lập tức, không hiệu ứng fade-in hay slide. Trình duyệt nhận diện chúng làm LCP candidate không delay.
Sửa đổi 2 — Bỏ loading=”lazy” trên ảnh đầu viewport. Chỉ scoped cho ảnh đầu tiên trong section đầu tiên, không áp dụng blanket cho toàn trang:
<!-- Trước -->
<img src="slide-1.webp" loading="lazy" alt="Featured product">
<!-- Sau -->
<img src="slide-1.webp" alt="Featured product">Sửa đổi 3 — Thêm fetchpriority=”high” cho ảnh LCP. Nuvemshop thêm validation logic để đảm bảo signal chỉ kích hoạt khi phần tử thực sự có khả năng là LCP candidate. web.dev khuyến nghị chỉ dùng cho 1-2 ảnh quan trọng nhất:
<!-- Trước -->
<img src="slide-1.webp" alt="Featured product">
<!-- Sau -->
<img src="slide-1.webp" fetchpriority="high" alt="Featured product">Bên cạnh đó, Nuvemshop tối ưu edge caching để giảm latency, nhưng cẩn thận không cache pricing và inventory data để tránh ảnh hưởng doanh thu.
Bảng số liệu trước và sau: LCP, Core Web Vitals và conversion
| Chỉ số (Jan 2025 vs Jan 2026) | Trước | Sau | Mức thay đổi |
|---|---|---|---|
| LCP Good Rate | 57% | 96% | +68% |
| Core Web Vitals Pass Rate | 48% | 72% | +50% |
| Conversion Rate (mobile Google organic) | — | — | +8,9% |
| Cart Engagement Rate (mobile Google organic) | — | — | +8,4% |
Dữ liệu conversion được tính trên cùng nhóm store Brazil hoạt động cả Jan 2025 và Jan 2026, không phải A/B test kiểm soát. Tuy nhiên, con số 8,9% tăng conversion khớp với nghiên cứu Deloitte do Google ủy quyền trên hơn 30 triệu session thuộc 37 brand: cải thiện 0,1 giây load speed tăng 8,4% retail conversion.
SEOer Việt Nam nên làm gì ngay với LCP?
Sau khi đọc case study này và kiểm tra lại trên 50 website khách hàng của tôi, tôi nhận ra vấn đề “tối ưu sai LCP element” phổ biến hơn tôi tưởng. Đặc biệt trên các site WordPress dùng page builder hoặc theme có carousel/banner. Dưới đây là 5 bước bạn nên thực hiện:
Bước 1: Mở PageSpeed Insights, nhập URL trang cần kiểm tra. Xem phần “Largest Contentful Paint Element” trong Diagnostics. Đó chính là phần tử trình duyệt đang đo. Nếu nó không phải ảnh hero hoặc banner bạn nghĩ, bạn đang tối ưu sai.
Bước 2: Kiểm tra xem ảnh LCP có bị lazy load không. Mở View Source, tìm thẻ img của ảnh hero/banner đầu trang. Nếu thấy loading=”lazy”, gỡ bỏ nó. Đây là lỗi phổ biến nhất tôi gặp trên WordPress.
Bước 3: Thêm fetchpriority=”high” cho ảnh LCP. Nếu site dùng WordPress, thêm qua filter trong functions.php hoặc dùng plugin Code Snippets. Chỉ áp dụng cho 1 ảnh duy nhất ở đầu trang.
Bước 4: Rà soát CSS transitions ở section đầu trang. Nếu hero section dùng fade-in, slide-down hay bất kỳ transition nào delay thời điểm render, hãy gỡ bỏ. Trình duyệt sẽ detect ngay lập tức.
Bước 5: Theo dõi trong Search Console — Core Web Vitals report sau 28 ngày. So sánh tỷ lệ “Good” LCP trước và sau thay đổi. Nếu không cải thiện, quay lại Bước 1 và kiểm tra lại LCP element.
LCP có thực sự ảnh hưởng đến ranking Google?
Google đã xác nhận nhiều lần: Core Web Vitals chỉ là yếu tố xếp hạng nhỏ, relevance quan trọng hơn nhiều. Nhiều SEOer vì vậy mà bỏ qua. Tôi cho đó là sai lầm. Case study Nuvemshop cho thấy cải thiện LCP không chỉ về ranking — nó về conversion rate và doanh thu. Tăng 8,9% conversion trên traffic mobile organic không phải con số nhỏ.
Ngoài ra, trong bối cảnh AI search ngày càng phổ biến, tốc độ trang ảnh hưởng trực tiếp đến khả năng AI crawler index nội dung. Bot AI như GPTBot và ClaudeBot có crawl budget hạn chế — trang tải nhanh hơn được crawl sâu hơn. Đây là điểm mà tôi sẽ phân tích sâu hơn trong bài tới về GEO và technical SEO.
Đánh giá của tôi về case study Nuvemshop
Tôi đánh giá case study này 8/10. Điểm mạnh: dữ liệu thực trên 180.000 store, có before/after rõ ràng, kỹ thuật áp dụng được ngay. Điểm trừ: số liệu conversion là year-over-year comparison chứ không phải controlled experiment, và kết quả chỉ đại diện cho một platform ecommerce cụ thể.
Nhưng bài học cốt lõi thì universal: trước khi tối ưu bất cứ thứ gì, hãy verify bạn đang tối ưu đúng phần tử. Đây là lỗi mà tôi thấy lặp đi lặp lại ở 7/10 dự án SEO technical mà tôi audit. Đừng tin lời hứa, hãy nhìn vào data — và data trong PageSpeed Insights sẽ cho bạn biết chính xác trình duyệt đang đo gì.
Nếu bạn muốn tìm hiểu sâu hơn về Core Web Vitals và cách tối ưu cho AI search, tôi recommend đọc thêm bài nghiên cứu Semrush về AI search visitor giá trị gấp 4,4 lần organic traffic và bài về tòa án Đức buộc Google chịu trách nhiệm AI Overviews để hiểu bức tranh tổng thể.
