Panduan Largest Contentful Paint (LCP)

What LCP measures, -nya thresholds, four sub-bagian itu membuat ini up, dan cara actually meningkatkan ini — Core Web Vital people struggle dengan sebagian besar.

Pertama kali diterbitkan: 26 Jun 2026 · Terakhir diperbarui: 3 Agu 2026 · Advanced
Bahasa

Largest Contentful Paint (LCP) adalah render time dari largest image atau text block terlihat di viewport, relative untuk when halaman started memuat. baik adalah ≤2,5 s di 75th percentile dari pengguna nyata; ini adalah one dari three Core Web Vitals. ini breaks ke four sub-bagian — TTFB, resource muat delay, resource muat duration, dan element render delay — dan TTFB plus muat duration biasanya dominate. biggest wins: don't lazy-muat LCP image, give ini fetchpriority=tinggi, preload ini, cut render-blocking resources, dan fix TTFB. ini adalah sebuah field metric — lab alat hanya approximate ini — dan dari Core Web Vitals ini adalah one people struggle sebagian besar untuk pass, terutama pada mobile.

TL;DR — LCP adalah render time dari largest image atau text block terlihat di viewport, relative untuk when halaman started memuat. baik adalah ≤ 2,5 s di 75th percentile dari pengguna nyata (split oleh device); 2,5–4 s perlu berfungsi, di atas 4 s adalah poor. ini adalah one dari three Core Web Vitals dan breaks ke four sub-bagian — TTFB, resource muat delay, resource muat duration, element render delay — where TTFB dan muat duration biasanya dominate (guidelines, not fixed shares — diagnose Anda own halaman). Top fixes: tidak pernah lazy-muat LCP image, tambahkan fetchpriority="high" pada actual candidate, preload ini when ini isn’t di HTML, kill render-blocking CSS/JS, dan fix TTFB. ini adalah sebuah field metric — lab alat hanya approximate ini — dan LCP element dapat perubahan selama muat. Google confirms Core Web Vitals feed peringkat sistem tetapi doesn’t publish sebuah exact LCP weight atau panggil ini sebuah tiebreaker; konten relevance masih dominates.

What LCP actually measures

LCP reports render time dari largest image atau text block terlihat di viewport, diukur relative untuk when pengguna pertama navigated untuk halaman. Google’s own framing: ini adalah closest standardized proxy untuk when main konten appears untuk pengguna. ini replaced earlier, fuzzier metrics like pertama Meaningful Paint dan Speed indeks.

sebuah few things itu trip people up right away:

  • ini adalah not “page load time.” (terjemahan) “pemuatan halaman time.” sebuah halaman dapat memiliki setiap resource fetched dan masih post sebuah slow LCP jika rendering largest element adalah blocked. LCP adalah tentang itu one element, not whole halaman.
  • ini adalah not yang sama sebagai FCP. pertama Contentful Paint fires when apa pun konten pertama appears; LCP waits untuk largest element. sebuah halaman dapat memiliki sebuah fast FCP ( navbar paints) dan sebuah slow LCP ( hero image memuat late).
  • ini adalah sebuah dynamic metric. browser dispatches sebuah baru LCP candidate setiap time sebuah larger element becomes terlihat. last entry sebelum pengguna interacts (tap, scroll, keypress) atau halaman unloads adalah nilai itu counts — interaction sering perubahan what’s terlihat, so reporting stops there. sebuah candidate itu’s later dihapus dari DOM doesn’t erase -nya own entry — ini stays reported element unless sebuah masih-larger one renders sebelum reporting stops.

thresholds — dan why 2,5 seconds

BucketLCP
baik≤ 2,5 s
perlu improvement2,5 s – 4,0 s
Poor> 4,0 s

Assessed di 75th percentile dari nyata-pengguna halaman memuat, segmented oleh device jenis. So three out dari four visits perlu untuk come di di bawah 2,5 s untuk sebuah origin untuk pass.

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

Why 2,5 specifically? Google’s threshold methodology leaned pada two things: human perception research pointing di roughly 1–3 seconds sebagai band itu feels “immediate,” (terjemahan) “immediate,” dan CrUX achievability data showing 2,5 s adalah consistently achievable untuk well-dioptimalkan situs without menjadi trivially easy. Tighter targets like 1,5 s atau 2,0 s weren’t consistently achievable di seluruh enough origins, so mereka didn’t membuat cut.

What counts sebagai LCP element

element jenis considered untuk LCP:

  • <img> elements
  • <image> elements inside sebuah <svg>
  • <video> elements ( poster image muat time, atau pertama frame, whichever adalah earlier)
  • sebuah element dengan sebuah background image dimuat via CSS url() function
  • Block-tingkat elements containing text nodes atau lainnya inline text children

reported size adalah what’s actually terlihat di viewport — portions clipped atau scrolled off don’t count, dan untuk images ini adalah terlihat size atau intrinsic size, whichever adalah smaller. Margins, padding, dan borders adalah ignored. sebuah handful dari elements get excluded oleh heuristics: anything dengan opacity: 0, elements itu cover whole viewport (treated sebagai backgrounds), dan rendah-entropy placeholder images.

tentang three-quarters dari halaman memiliki sebuah image sebagai mereka LCP element — so image berfungsi adalah biasanya right pertama move. tetapi not selalu, dan not selalu compression (more pada itu next). remaining chunk adalah text LCPs, where lever adalah entirely berbeda: ini adalah font memuat, not image weight.

four sub-bagian — bagian sebagian besar artikel skip

ini adalah framework I’d start apa pun LCP diagnosis dengan. web.dev breaks LCP ke four sequential sub-bagian:

  1. Time untuk pertama Byte (TTFB) — dari when pengguna starts memuat halaman untuk when browser menerima pertama byte dari HTML. Typical share: ~40% dari total LCP.
  2. Resource muat delay — gap antara TTFB dan browser starting untuk muat LCP resource. ini adalah penemuan time. Typical share: di bawah 10%.
  3. Resource muat duration — how panjang LCP resource itself takes untuk download. Typical share: ~40%.
  4. Element render delay — dari when resource finishes memuat untuk when element actually paints. Typical share: di bawah 10%.
LCP sub-bagianTypical share dari total LCP
Time untuk pertama Byte~40%
Resource muat delay< 10%
Resource muat duration~40%
Element render delay< 10%

principle behind table: vast majority dari LCP time seharusnya menjadi spent memuat HTML document dan LCP resource. apa pun stretch where neither adalah memuat adalah sebuah opportunity untuk meningkatkan.

web.dev adalah explicit itu ini percentages adalah guidelines, not strict aturan — don’t convert them ke absolute-kedua targets, dan don’t force setiap halaman untuk match split. mereka’re hanya meaningful relative untuk setiap lainnya, dan jika Anda LCP adalah consistently di dalam 2,5 seconds sudah, relative proportions don’t penting di semua. gunakan table untuk spot which sub-bagian adalah eating sebuah outsized share pada Anda halaman, lalu fix itu one — not untuk chase sebuah exact 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. Sumber: 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 ·

dan here’s bit itu upends umum assumption: sebagai dari February 2025 ini four sub-bagian adalah available di CrUX API untuk image LCPs, dan Chrome team’s analysis dari HTTP Archive data ditemukan itu image download time adalah sering smallest bagian dari LCP time. dengan kata lain, “just compress my images” (terjemahan) “hanya compress my images” frequently fixes wrong sub-bagian. TTFB dan penemuan delay adalah sering bigger levers.

cara temukan Anda LCP element

sebelum Anda mengoptimalkan anything, cari tahu which element adalah Anda LCP dan which sub-bagian adalah bottleneck:

  • PageSpeed Insights — Diagnostics bagian flags LCP element, dan field-data tab menampilkan Anda nyata-pengguna score.
  • Chrome DevTools — performa panel marks LCP node pada timeline.
  • ** web-vitals JS library** — log LCP (dan element) dari Anda own nyata-pengguna monitoring.

cara meningkatkan LCP

Map setiap fix untuk sub-bagian ini targets:

Fix resource muat delay (penemuan). ini adalah highest-leverage dan sebagian besar commonly broken one.

  • tidak pernah lazy-muat Anda LCP image. loading="lazy" pada LCP element selalu menambahkan unnecessary muat delay. Reserve lazy memuat untuk below—fold images.
  • tambahkan fetchpriority="high" untuk mungkin LCP image so browser fetches ini early di tinggi priority.
  • Preload ini dengan <link rel="preload"> when image isn’t discoverable di initial HTML — misalnya, when ini adalah dimuat via CSS atau JavaScript. memuat hero image via JS adalah sebuah anti-pattern precisely because ini hides URL dari browser’s preload scanner.
  • Host critical resources pada yang sama origin so browser doesn’t 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 dan fetchpriority solve berbeda masalah, so don’t reach untuk both oleh habit. Preload exposes sebuah resource browser’s preload scanner akan otherwise menemukan late (sebuah JS- atau CSS-dimuat image, misalnya); fetchpriority perubahan fetch priority dari sebuah resource browser sudah ditemukan. jika penemuan dan priority adalah sudah correct — image adalah sebuah plain <img> di initial HTML — menambahkan either dapat melakukan little beyond extra permintaan. periksa sebuah trace, apply one itu matches actual masalah, dan confirm field angka moved.

Fix element render delay.

  • Reduce atau inline render-blocking CSS; defer non-critical styles.
  • hindari synchronous scripts di <head>.
  • Prefer rendering sisi server atau static generation so markup arrives ready untuk paint, dan break up panjang main-thread tasks.

Reduce resource muat duration.

  • Modern image formats (WebP, AVIF), sensible compression, dan sebuah CDN.
  • Efficient Cache-Control. dan don’t ignore network contention — lazy-memuat lainnya below-fold images dapat free up bandwidth so LCP image lands sooner.

Reduce TTFB.

  • Minimize redirects, drop unnecessary unique parameter URL, dan mengoptimalkan server respons time. Note itu LCP mencakup apa pun unload time dari previous halaman, connection setup, dan redirect time — semua dari which roll ke TTFB.

Special case: text-based LCP. When largest element adalah text, critical path adalah font memuat, not image weight. font-display: optional atau sistem fonts eliminate font-induced render delay; font-display: swap without preloading font file dapat introduce ini.

Lab vs. field — ini distinction penting

LCP adalah fundamentally sebuah field metric. Google assesses ini pada pengguna nyata via CrUX, surfaced di PageSpeed Insights’ field tab dan Search Console Core Web Vitals report. itu data lapangan adalah what feeds rankings.

Lab alat — Lighthouse, Chrome DevTools, WebPageTest — hanya approximate ini di bawah simulated conditions, dan mereka don’t bahkan gunakan yang sama scoring. Lighthouse applies stricter desktop thresholds (baik ≤ 1,2 s) daripada field standard (≤ 2,5 s). So sebuah passing Lighthouse score doesn’t guarantee sebuah passing CrUX score, dan vice versa. gunakan lab alat untuk debug dan reproduce; trust data lapangan untuk actual verdict.

There’s sebuah kedua alasan lab dan field angka dapat diverge, worth knowing so sebuah odd reading doesn’t kirim Anda chasing sebuah phantom bug: saat ini LargestContentfulPaint browser API (masih sebuah W3C berfungsi Draft) adalah scoped untuk sebuah single document muat. ini doesn’t itself reset pada back/forward cache (bfcache) restores atau sama-document SPA navigations, dan halaman itu start off-screen — background tabs, prerendered halaman — dapat report inflated nilai because timing runs dari muat alih-alih dari when halaman actually became terlihat. reporting algorithm juga halts pada qualifying pengguna input, so jika sebuah pengguna interacts sebelum Anda main konten displays, LCP won’t capture ini. None dari ini perubahan threshold table above; ini menjelaskan why sebuah spesifik session’s angka dapat look wrong when underlying navigation isn’t sebuah plain pertama muat.

melakukan LCP affect rankings?

Yes, di sense itu Google confirms Core Web Vitals feed -nya peringkat sistem dan recommends achieving baik scores. tetapi saat ini Search Central documentation doesn’t publish sebuah exact LCP weight dan doesn’t describe ini sebagai sebuah tiebreaker — Google’s own framing adalah itu pengalaman halaman “can contribute to success in Search” (terjemahan) “dapat contribute untuk success di Search” untuk kueri where multiple halaman sudah offer comparable, relevant konten, dan itu sebuah baik score doesn’t guarantee sebuah peringkat boost. konten relevance dan quality masih dominate. mengoptimalkan LCP because sebuah faster-feeling halaman adalah genuinely better untuk pengguna (dan conversions) — not because mechanism adalah documented sebagai sebuah rankings tiebreaker, because ini isn’t.

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

sebuah couple dari realities dari data: dari Core Web Vitals, LCP adalah one situs struggle sebagian besar untuk meningkatkan, dan ini adalah noticeably harder pada mobile daripada desktop — slower CPUs dan connections. pada 3G dan slower, 2,5 s threshold dapat feel almost impossible untuk hit.

Where ini fits

LCP adalah one dari three Core Web Vitals, alongside Interaction untuk Next Paint dan Cumulative Layout Shift. -nya pertama sub-bagian, Time untuk pertama Byte, adalah -nya own diagnostic metric, dan pertama Contentful Paint sits right next untuk ini pada memuat timeline. Anda’ll see semua dari ini di PageSpeed Insights, Lighthouse, dan Chrome pengguna Experience Report (CrUX). setiap adalah -nya own deep dive di ini cluster.

Add an expert note

Pin an expert quote

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