Hướng dẫn về Largest Contentful Paint (LCP)

Điều gì LCP measures, của nó thresholds, đó four sub-parts đó làm điều này lên, và cách thực ra improve điều này — đó Cốt lõi Web Vital mọi người struggle với hầu hết.

Xuất bản lần đầu: 26 thg 6, 2026 · Cập nhật lần cuối: 8 thg 8, 2026 · Advanced
Ngôn ngữ

Largest Contentful Paint (LCP) là đó render time of đó largest image hoặc text block visible trong đó viewport, relative để khi đó trang đã bắt đầu loading. Good là ≤2,5 s tại đó 75th percentile of real người dùng; đây là một of đó three Core Web Vitals. Điều này breaks vào four sub-parts — TTFB, tài nguyên load delay, tài nguyên load duration, và element render delay — và TTFB plus load duration thường dominate. Đó biggest wins: không lazy-load đó LCP image, cho điều này fetchpriority=cao, preload điều này, cut render-blocking các tài nguyên, và cách sửa TTFB. đây là một trường chỉ số — lab tools chỉ approximate điều này — và of đó Core Web Vitals đây là đó một mọi người struggle hầu hết để truyền, especially on mobile.

Tóm tắt — LCP là render time của largest image hoặc text block visible trong viewport, relative để Khi trang đã bắt đầu loading. Good là ≤ 2,5 s tại 75th percentile của thực người dùng (split by device); 2,5–4 s cần hoạt động, over 4 s là poor. nó một của three Core Web Vitals và breaks vào four sub-parts — TTFB, tài nguyên load delay, tài nguyên load duration, element render delay — nơi TTFB và load duration thường dominate (guidelines, không fixed chia sẻ — diagnose của bạn own trang). Top các cách sửa: không bao giờ lazy-load LCP image, thêm fetchpriority="high" on thực tế candidate, preload nó Khi nó không phải trong HTML, kill render-blocking CSS/JS, và khắc phục TTFB. nó trường chỉ số — lab tools chỉ approximate nó — và LCP element có thể thay đổi during load. Google xác nhận Core Web Vitals feed xếp hạng các hệ thống nhưng không publish chính xác LCP weight hoặc call nó tiebreaker; nội dung relevance vẫn dominates.

Điều gì LCP thực ra measures

LCP các báo cáo render time của largest image hoặc text block visible trong viewport, measured relative để Khi người dùng đầu tiên navigated để trang. Google own cách diễn đạt: nó closest standardized proxy cho Khi main nội dung xuất hiện để người dùng. nó replaced trước đó, fuzzier các chỉ số như đầu tiên Có ý nghĩa Paint và Speed chỉ mục.

một vài điều đó trip mọi người lên right away:

  • đây là không “page load time.” (bản dịch) «trang load time.» MỘT trang có thể có mỗi tài nguyên fetched và vẫn post một chậm LCP nếu kết xuất đó largest element đã là blocked. LCP là về đó một element, không đó toàn bộ trang.
  • đây là không đó giống nhau as FCP. Đầu tiên Contentful Paint fires khi bất kỳ nội dung đầu tiên xuất hiện; LCP chờ cho đó largest element. MỘT trang có thể có một fast FCP (đó navbar paints) và một chậm LCP (đó hero image loads muộn).
  • đây là một dynamic chỉ số. Đó trình duyệt dispatches một new LCP candidate mỗi khi một lớn hơn element becomes visible. Đó cuối cùng entry trước người dùng interacts (tap, scroll, keypress) hoặc đó trang unloads là đó giá trị đó được tính — interaction thường thay đổi điều gì là visible, so reporting dừng ở đó. MỘT candidate đó là sau đó đã xóa từ đó DOM không erase của nó own entry — điều này vẫn giữ đó reported element trừ khi một vẫn-lớn hơn một renders trước reporting dừng.

thresholds — và Vì sao 2,5 seconds

BucketLCP
Good≤ 2,5 s
Cần improvement2,5 s – 4,0 s
Poor> 4,0 s

Assessed tại 75th percentile của thực-người dùng trang loads, segmented by device loại. So three out của four visits cần để come trong dưới 2,5 s cho origin để truyền.

Evidence for this claim A good LCP is 2.5 seconds or less at the 75th percentile of page loads, segmented by device type. Scope: Current web.dev LCP field threshold and assessment method. Confidence: high · Verified: web.dev: Largest Contentful Paint

Vì sao 2,5 cụ thể? Google ngưỡng methodology leaned on hai điều: human perception research pointing tại khoảng 1–3 seconds as band đó feels “immediate,” và CrUX achievability dữ liệu cho thấy 2,5 s là consistently achievable cho well-optimized các trang không có là trivially easy. Tighter targets như 1,5 s hoặc 2,0 s đã không consistently achievable trên đủ origins, so họ đã không làm cut.

Điều gì được tính as LCP element

element types considered cho LCP:

  • <img> elements
  • <image> elements bên trong <svg>
  • <video> elements ( poster image load time, hoặc đầu tiên frame, whichever là trước đó)
  • element với background image loaded qua CSS url() function
  • Block-cấp độ elements containing text nodes hoặc khác inline text children

reported size là Điều gì thực ra visible trong viewport — portions clipped hoặc scrolled off không count, và cho images nó visible size hoặc intrinsic size, whichever là nhỏ hơn. Margins, padding, và borders là đã bỏ qua. handful của elements nhận excluded by heuristics: bất cứ điều gì với opacity: 0, elements đó cover toàn bộ viewport (được xem như backgrounds), và thấp-entropy placeholder images.

về three-quarters của các trang có image as của họ LCP element — so image hoạt động là thường right đầu tiên move. nhưng không luôn, và không luôn compression (nhiều hơn on đó tiếp theo). remaining chunk là text LCPs, nơi lever là hoàn toàn khác: nó font loading, không image weight.

four sub-parts — part phần lớn các bài viết skip

Đây là framework I’d bắt đầu bất kỳ LCP diagnosis với. web.dev breaks LCP vào four sequential sub-parts:

  1. Time để đầu tiên Byte (TTFB) — từ Khi người dùng bắt đầu loading trang để Khi trình duyệt nhận đầu tiên byte của HTML. Typical share: ~40% của total LCP.
  2. tài nguyên load delay — khoảng trống giữa TTFB và trình duyệt starting để load LCP tài nguyên. Đây là phát hiện time. Typical share: dưới 10%.
  3. tài nguyên load duration — Cách dài LCP tài nguyên itself takes để download. Typical share: ~40%.
  4. Element render delay — từ Khi tài nguyên finishes loading để Khi element thực ra paints. Typical share: dưới 10%.
LCP sub-partTypical share của total LCP
Time để đầu tiên Byte~40%
tài nguyên load delay< 10%
tài nguyên load duration~40%
Element render delay< 10%

principle behind bảng: vast majority của LCP time nên là spent loading HTML document và LCP tài nguyên. bất kỳ stretch nơi neither là loading là opportunity để improve.

web.dev là rõ ràng đó những điều này percentages là guidelines, không strict rules — không convert them vào absolute-thứ hai targets, và không force mỗi trang để match split. họ’re chỉ có ý nghĩa relative để mỗi khác, và nếu của bạn LCP là consistently trong 2,5 seconds đã, relative proportions không quan trọng tại all. sử dụng bảng để spot mà sub-part là eating outsized share on của bạn trang, sau đó khắc phục đó một — không để chase chính xác 40/10/40/10 split.

Evidence for this claim An LCP image should not be lazy-loaded, and reducing resource load delay is a primary LCP optimization. Scope: web.dev guidance for image-based LCP elements. Confidence: high · Verified: web.dev: Optimize LCP
Break LCP into four sequential sub-parts, then optimize the part consuming more than its intended share. Nguồn: web.dev

The timeline begins with Time to First Byte, targeted at roughly 40 percent of total LCP. Resource load delay follows and should remain under 10 percent. Resource load duration is targeted at roughly 40 percent. Element render delay should remain under 10 percent and ends when the largest element actually paints.

© Patrick Stox LLC · CC BY 4.0 ·

Và ở đây đó bit đó upends đó phổ biến assumption: as of February 2025 những four sub-parts là khả dụng trong đó CrUX API cho image LCPs, và đó Chrome team analysis of HTTP Archive dữ liệu được tìm thấy đó image download time đã là thường đó smallest part of LCP time. Nói cách khác, “just compress my images” (bản dịch) «chỉ compress my images» frequently các cách sửa đó sai sub-part. TTFB và phát hiện delay là thường đó bigger levers.

Cách tìm của bạn LCP element

trước khi bạn optimize bất cứ điều gì, tìm out element là của bạn LCP và sub-part là bottleneck:

  • PageSpeed Insights — Diagnostics section flags LCP element, và trường-dữ liệu tab hiển thị của bạn thực-người dùng score.
  • Chrome DevTools — Performance panel marks LCP node on timeline.
  • ** web-vitals JS library** — log LCP (và element) từ của bạn own thực-người dùng monitoring.

Cách improve LCP

Map mỗi khắc phục để sub-part nó targets:

khắc phục tài nguyên load delay (phát hiện). Đây là highest-leverage và phần lớn commonly hỏng một.

  • không bao giờ lazy-load của bạn LCP image. loading="lazy" on LCP element luôn adds unnecessary load delay. Reserve lazy loading cho dưới—fold images.
  • Thêm fetchpriority="high" để có khả năng LCP image so trình duyệt fetches nó sớm tại cao priority.
  • Preload nó với <link rel="preload"> Khi image không phải discoverable trong ban đầu HTML — ví dụ, Khi nó loaded qua CSS hoặc JavaScript. Loading hero image qua JS là anti-pattern precisely vì nó hides URL từ trình duyệt preload scanner.
  • Host cốt yếu các tài nguyên on giống nhau origin so trình duyệt không pay extra connection setup.
Evidence for this claim An LCP image should not be lazy-loaded, and reducing resource load delay is a primary LCP optimization. Scope: web.dev guidance for image-based LCP elements. Confidence: high · Verified: web.dev: Optimize LCP

Preload và fetchpriority solve khác các vấn đề, so không reach cho cả hai by habit. Preload exposes tài nguyên trình duyệt preload scanner sẽ nếu không discover muộn ( JS- hoặc CSS-loaded image, ví dụ); fetchpriority thay đổi fetch priority của tài nguyên trình duyệt đã tìm thấy. nếu phát hiện và priority là đã đúng — image là đơn giản <img> trong ban đầu HTML — thêm either có thể làm little beyond extra các yêu cầu. kiểm tra trace, apply một đó matches thực tế vấn đề, và xác nhận trường number moved.

khắc phục element render delay.

  • Reduce hoặc inline render-blocking CSS; defer non-cốt yếu styles.
  • tránh synchronous scripts trong <head>.
  • Ưu tiên máy chủ-side kết xuất hoặc static generation so markup arrives ready để paint, và break lên dài main-chuỗi trao đổi tasks.

Reduce tài nguyên load duration.

  • Modern image formats (WebP, AVIF), sensible compression, và CDN.
  • Efficient Cache-Control. và không bỏ qua network contention — lazy-loading khác dưới-fold images có thể free lên bandwidth so LCP image lands sooner.

Reduce TTFB.

  • Minimize các chuyển hướng, drop unnecessary unique URL parameters, và optimize máy chủ phản hồi time. Note đó LCP bao gồm bất kỳ unload time từ trước đó trang, connection setup, và chuyển hướng time — tất cả mà roll vào TTFB.

Special case: text-based LCP. Khi largest element là text, cốt yếu path là font loading, không image weight. font-display: optional hoặc hệ thống fonts eliminate font-induced render delay; font-display: swap không có preloading font file có thể introduce nó.

Lab so với. trường — điều này phân biệt matters

LCP là fundamentally trường chỉ số. Google assesses nó on thực người dùng qua CrUX, surfaced trong PageSpeed Insights’ trường tab và Search Console Core Web Vitals báo cáo. đó trường dữ liệu là Điều gì feeds thứ hạng.

Lab tools — Lighthouse, Chrome DevTools, WebPageTest — chỉ approximate nó dưới simulated conditions, và họ không ngay cả sử dụng giống nhau scoring. Lighthouse áp dụng stricter desktop thresholds (Good ≤ 1,2 s) hơn trường tiêu chuẩn (≤ 2,5 s). So passing Lighthouse score không bảo đảm passing CrUX score, và vice versa. sử dụng lab tools để debug và reproduce; trust trường dữ liệu cho thực tế verdict.

có thứ hai reason lab và trường numbers có thể diverge, worth knowing so odd reading không gửi bạn chasing phantom bug: hiện tại LargestContentfulPaint trình duyệt API (vẫn W3C Hoạt động Draft) là scoped để single document load. nó không itself reset on lại/forward bộ nhớ đệm (bfcache) restores hoặc giống nhau-document SPA navigations, và các trang đó bắt đầu off-screen — background tabs, prerendered các trang — có thể báo cáo inflated các giá trị vì timing chạy từ load thay vì từ Khi trang thực ra trở thành visible. reporting algorithm cũng halts on qualifying người dùng input, so nếu người dùng interacts trước khi của bạn main nội dung displays, LCP sẽ không capture nó. None của điều này thay đổi ngưỡng bảng trên; nó giải thích Vì sao cụ thể session number có thể look sai Khi underlying navigation không phải đơn giản đầu tiên load.

Làm LCP ảnh hưởng thứ hạng?

Có, trong đó hợp lý đó Google xác nhận Core Web Vitals feed của nó xếp hạng các hệ thống và khuyến nghị achieving good scores. Nhưng hiện tại Tìm kiếm Central tài liệu không publish an chính xác LCP weight và không mô tả điều này as một tiebreaker — Google own cách diễn đạt là đó trang experience “can contribute to success in Search” (bản dịch) «có thể contribute để success trong Tìm kiếm» cho các truy vấn nơi multiple các trang đã offer comparable, relevant nội dung, và đó một good score không bảo đảm một xếp hạng boost. Nội dung relevance và quality vẫn dominate. Optimize LCP vì một nhanh hơn-feeling trang là genuinely tốt hơn cho người dùng (và conversions) — không vì đó mechanism là được ghi lại as một thứ hạng tiebreaker, vì điều này không.

Evidence for this claim Google says Core Web Vitals are used by ranking systems, but current documentation does not specify an LCP weight, tiebreaker rule, or ranking guarantee. Scope: ranking systems Confidence: high · Verified: Understanding page experience in Google Search results

couple của realities từ dữ liệu: của Core Web Vitals, LCP là một các trang struggle phần lớn để improve, và nó noticeably harder on mobile hơn desktop — chậm hơn CPUs và connections. On 3G và chậm hơn, 2,5 s ngưỡng có thể feel gần như không thể để hit.

nơi điều này fits

LCP là một của three Core Web Vitals, alongside Interaction để tiếp theo Paint và Cumulative Layout Shift. Của nó đầu tiên sub-part, Time để đầu tiên Byte, là của nó own diagnostic chỉ số, và đầu tiên Contentful Paint sits right tiếp theo để nó on loading timeline. bạn’ll see tất cả những điều này trong PageSpeed Insights, Lighthouse, và Chrome Người dùng Experience Báo cáo (CrUX). mỗi là của nó own deep dive trong điều này cluster.

Add an expert note

Pin an expert quote

New person? Create their unclaimed profile at /admin/experts/ → Pin a quote first.