Largest Contentful Paint(LCP)

LCP 기준과 요소 판정, TTFB·로드 지연·로드 시간·렌더링 지연의 네 하위 단계, 이미지 발견 우선순위와 필드 검증 방법을 설명합니다.

최초 게시: 2026년 6월 26일 · 최근 업데이트: 2026년 8월 9일 · Advanced
언어

LCP는 뷰포트에서 가장 큰 이미지나 텍스트 블록이 렌더링되는 시간을 측정하는 Core Web Vital입니다. 실제 사용자 p75에서 2,5초 이하는 좋음입니다. LCP 이미지를 지연 로드하지 말고 실제 후보에 fetchpriority="high"를 적용하며, 초기 HTML에서 발견되지 않을 때 preload하세요. TTFB·리소스 로드 지연·로드 시간·렌더링 지연을 나눠 실제 병목을 고치고 CrUX 필드 데이터로 결과를 확인하세요.

요약 — LCP는 페이지 로드 시작 시점을 기준으로 뷰포트에 보이는 가장 큰 이미지나 텍스트 블록이 렌더링되는 시간입니다. 실제 사용자를 기기별로 나눈 일흔다섯 번째 백분위수에서 ≤ 2,5 s면 좋음, 2,5–4 s면 개선 필요, 4 s 초과면 나쁨입니다. 세 가지 Core Web Vitals 중 하나이며 TTFB, 리소스 로드 지연, 리소스 로드 시간, 요소 렌더링 지연의 네 부분으로 나뉩니다. 일반적으로 TTFB와 로드 시간이 큰 비중을 차지하지만 고정 비율이 아닌 지침이므로 자체 페이지를 진단해야 합니다. 핵심 개선은 LCP 이미지를 지연 로드하지 않고 실제 후보에 fetchpriority="high"를 추가하며, HTML에 없을 때 미리 로드하고, 렌더링 차단 CSS/JS를 없애며 TTFB를 줄이는 것입니다. 필드 지표라 실험실 도구는 근사값만 제공하고 로드 중 LCP 요소가 바뀔 수 있습니다. Google은 Core Web Vitals가 순위 시스템에 쓰인다고 확인했지만 정확한 LCP 가중치나 동점 판정 지표라고 밝히지 않았으며 콘텐츠 관련성이 여전히 우선합니다.

LCP가 실제로 측정하는 것

LCP는 사용자가 처음 페이지로 이동한 시점을 기준으로 뷰포트에 보이는 가장 큰 이미지나 텍스트 블록의 렌더링 시간을 보고합니다. Google은 이를 주요 콘텐츠가 사용자에게 나타나는 시점에 가장 가까운 표준화 대용 지표로 설명합니다. First Meaningful Paint와 Speed Index처럼 이전의 모호한 지표를 대체했습니다.

처음부터 혼동하기 쉬운 점은 다음과 같습니다.

  • ‘페이지 로드 시간’이 아닙니다. 모든 리소스를 가져왔어도 가장 큰 요소의 렌더링이 차단되면 LCP가 느릴 수 있습니다. 전체 페이지가 아니라 그 요소 하나를 봅니다.
  • FCP와 다릅니다. First Contentful Paint는 어떤 콘텐츠든 처음 나타날 때 기록되지만 LCP는 가장 큰 요소를 기다립니다. 내비게이션 바는 빨리 그려져 FCP가 빠르지만 히어로 이미지가 늦어 LCP는 느릴 수 있습니다.
  • 동적 지표입니다. 더 큰 요소가 보일 때마다 브라우저가 새 LCP 후보를 보냅니다. 사용자 상호작용(탭·스크롤·키 입력)이나 페이지 unload 전 마지막 항목이 최종 값입니다. 상호작용은 보이는 내용을 바꾸기 때문에 그때 보고를 멈춥니다. 나중에 DOM에서 제거된 후보도 자체 항목이 지워지지는 않으며, 보고가 멈추기 전에 더 큰 요소가 렌더링되지 않으면 그대로 보고됩니다.

기준값과 2,5초인 이유

구간LCP
좋음≤ 2,5 s
개선 필요2,5 s – 4,0 s
나쁨> 4,0 s

기기 유형별로 나눈 실제 사용자 페이지 로드의 일흔다섯 번째 백분위수로 평가합니다. 출처가 통과하려면 방문 네 번 중 세 번이 2,5 s 안에 들어와야 합니다.

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

왜 2,5일까요? Google의 기준 방법론은 대략 1–3초를 ‘즉각적’으로 느낀다는 인간 지각 연구와, 잘 최적화한 사이트가 지나치게 쉽게 달성하지 않으면서도 2,5 s는 꾸준히 달성할 수 있다는 CrUX 데이터를 근거로 했습니다. 1,5 s나 2,0 s 같은 더 엄격한 목표는 충분한 출처에서 꾸준히 달성되지 않아 채택되지 않았습니다.

LCP 요소로 인정되는 것

LCP가 고려하는 요소 유형은 다음과 같습니다.

  • <img> 요소
  • <svg> 안의 <image> 요소
  • <video> 요소(포스터 이미지 로드 시간 또는 첫 프레임 중 더 이른 시점)
  • CSS url() 함수로 불러온 배경 이미지가 있는 요소
  • 텍스트 노드나 다른 인라인 텍스트 자식을 포함한 블록 수준 요소

보고되는 크기는 뷰포트에 실제로 보이는 부분입니다. 잘리거나 스크롤 밖인 부분은 제외하고, 이미지는 보이는 크기와 고유 크기 중 더 작은 값을 사용합니다. 여백·패딩·테두리는 무시합니다. opacity: 0인 요소, 뷰포트 전체를 덮어 배경으로 취급되는 요소, 정보량이 낮은 자리표시자 이미지는 경험 규칙으로 제외됩니다.

페이지 약 사분의 삼은 이미지가 LCP 요소이므로 보통 이미지 작업을 먼저 하는 것이 맞습니다. 하지만 항상 그런 것도, 항상 압축이 답인 것도 아닙니다. 나머지는 텍스트 LCP이며 이때 개선 수단은 이미지 용량이 아니라 글꼴 로딩입니다.

대부분의 문서가 건너뛰는 네 하위 단계

모든 LCP 진단을 시작할 때 사용할 구조입니다. web.dev는 LCP를 순서대로 네 부분으로 나눕니다.

  1. Time to First Byte(TTFB) — 사용자가 페이지 로드를 시작한 때부터 브라우저가 HTML의 첫 바이트를 받을 때까지. 일반적인 비중: 전체 LCP의 약 40%.
  2. 리소스 로드 지연 — TTFB부터 브라우저가 LCP 리소스 로드를 시작할 때까지의 간격, 즉 발견 시간. 일반적인 비중: 10% 미만.
  3. 리소스 로드 시간 — LCP 리소스 자체를 다운로드하는 시간. 일반적인 비중: 약 40%.
  4. 요소 렌더링 지연 — 리소스 로드가 끝난 뒤 요소가 실제로 그려질 때까지. 일반적인 비중: 10% 미만.
LCP 하위 단계전체 LCP의 일반적 비중
Time to First Byte약 40%
리소스 로드 지연< 10%
리소스 로드 시간약 40%
요소 렌더링 지연< 10%

표의 원칙은 LCP 시간 대부분이 HTML 문서와 LCP 리소스를 로드하는 데 쓰여야 한다는 것입니다. 둘 중 어느 것도 로드하지 않는 구간은 개선 기회입니다.

web.dev는 이 비율이 엄격한 규칙이 아니라 지침이라고 명시합니다. 절대 초 목표로 바꾸거나 모든 페이지를 같은 비율에 맞추지 마세요. 서로 비교할 때만 의미가 있고 LCP가 꾸준히 2,5초 안이라면 상대 비율 자체는 중요하지 않습니다. 정확한 40/10/40/10을 좇지 말고 자체 페이지에서 과도한 비중을 차지하는 하위 단계를 찾아 고치세요.

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. 출처: 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 ·

흔한 가정을 뒤집는 사실도 있습니다. 2025년 2월부터 이미지 LCP의 네 하위 단계를 CrUX API에서 제공하며, Chrome 팀의 HTTP Archive 분석에서는 이미지 다운로드 시간이 LCP에서 가장 작은 부분인 경우가 많았습니다. 즉 ‘이미지만 압축’하면 자주 잘못된 하위 단계를 고칩니다. TTFB와 발견 지연이 더 큰 개선 수단인 경우가 많습니다.

LCP 요소 찾기

최적화 전에 어떤 요소가 LCP이며 어떤 하위 단계가 병목인지 확인하세요.

  • PageSpeed Insights — 진단 섹션에서 LCP 요소를 표시하고 필드 데이터 탭에서 실제 사용자 점수를 보여 줍니다.
  • Chrome DevTools — Performance 패널의 타임라인에서 LCP 노드를 표시합니다.
  • web-vitals JS 라이브러리 — 자체 실사용자 모니터링에서 LCP와 요소를 기록합니다.

LCP 개선 방법

각 개선을 대상 하위 단계에 연결하세요.

리소스 로드 지연(발견) 개선. 효과가 가장 크고 가장 자주 잘못되는 부분입니다.

  • LCP 이미지를 절대 지연 로드하지 마세요. LCP 요소에 loading="lazy"를 쓰면 항상 불필요한 로드 지연이 생깁니다. 지연 로딩은 첫 화면 아래 이미지에만 사용하세요.
  • 예상 LCP 이미지에 **fetchpriority="high"**를 추가해 브라우저가 높은 우선순위로 일찍 가져오게 합니다.
  • 이미지가 CSS나 JavaScript로 로드돼 초기 HTML에서 발견되지 않으면 <link rel="preload">미리 로드하세요. JS로 히어로 이미지를 불러오면 브라우저의 preload 스캐너에서 URL을 숨기므로 안티패턴입니다.
  • 중요한 리소스를 동일 출처에 호스팅해 추가 연결 설정 비용을 피하세요.
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와 fetchpriority는 서로 다른 문제를 해결하므로 습관적으로 둘 다 쓰지 마세요. preload는 JS·CSS 로드 이미지처럼 브라우저의 preload 스캐너가 늦게 발견할 리소스를 노출합니다. fetchpriority는 이미 찾은 리소스의 가져오기 우선순위를 바꿉니다. 초기 HTML의 일반 <img>처럼 발견과 우선순위가 이미 맞다면 둘을 추가해도 별 효과 없이 요청만 늘 수 있습니다. 트레이스를 보고 실제 문제에 맞는 하나를 적용한 뒤 필드 수치가 움직였는지 확인하세요.

요소 렌더링 지연 개선.

  • 렌더링 차단 CSS를 줄이거나 인라인으로 넣고 중요하지 않은 스타일은 지연합니다.
  • <head>의 동기 스크립트를 피합니다.
  • 마크업이 바로 그릴 수 있는 상태로 오도록 서버 측 렌더링이나 정적 생성을 우선하고 메인 스레드의 긴 작업을 나눕니다.

리소스 로드 시간 단축.

  • 현대적 이미지 형식(WebP, AVIF), 합리적인 압축, CDN을 사용합니다.
  • 효율적인 Cache-Control을 설정합니다. 네트워크 경합도 놓치지 마세요. 첫 화면 아래의 다른 이미지를 지연 로드하면 대역폭을 확보해 LCP 이미지가 더 빨리 도착할 수 있습니다.

TTFB 단축.

  • 리디렉션을 줄이고 불필요한 고유 URL 매개변수를 없애며 서버 응답 시간을 최적화합니다. LCP에는 이전 페이지의 unload 시간, 연결 설정, 리디렉션 시간도 모두 TTFB로 포함됩니다.

특수 사례: 텍스트 기반 LCP. 가장 큰 요소가 텍스트면 핵심 경로는 이미지 용량이 아니라 글꼴 로딩입니다. font-display: optional이나 시스템 글꼴은 글꼴로 인한 렌더링 지연을 없앱니다. 글꼴 파일을 미리 로드하지 않은 font-display: swap은 오히려 지연을 만들 수 있습니다.

실험실과 필드의 차이가 중요한 이유

LCP는 근본적으로 필드 지표입니다. Google은 CrUX의 실제 사용자 데이터로 평가하고 PageSpeed Insights 필드 탭과 Search Console Core Web Vitals 보고서에 표시합니다. 순위에 입력되는 것도 이 필드 데이터입니다.

Lighthouse, Chrome DevTools, WebPageTest 같은 실험실 도구는 시뮬레이션 조건에서 근사할 뿐이고 점수 기준도 같지 않습니다. Lighthouse 데스크톱은 필드 기준(≤ 2,5 s)보다 엄격한 좋음 기준(≤ 1,2 s)을 사용합니다. 따라서 Lighthouse 통과가 CrUX 통과를 보장하지 않고 반대도 마찬가지입니다. 실험실 도구는 디버깅과 재현에 쓰고 실제 판정은 필드 데이터를 신뢰하세요.

실험실과 필드가 달라지는 두 번째 이유도 알아두면 이상한 값 때문에 존재하지 않는 버그를 쫓지 않을 수 있습니다. 현재 LargestContentfulPaint 브라우저 API는 여전히 W3C Working Draft이며 단일 문서 로드 범위입니다. bfcache 복원이나 동일 문서 SPA 탐색에서 자체 초기화되지 않습니다. 백그라운드 탭이나 사전 렌더링 페이지처럼 화면 밖에서 시작한 페이지는 실제로 보인 때가 아니라 로드부터 시간을 재 값이 부풀 수 있습니다. 조건을 충족하는 사용자 입력이 있으면 보고 알고리즘도 멈추므로 주요 콘텐츠가 표시되기 전에 상호작용하면 LCP가 이를 포착하지 못합니다. 기준표가 바뀌는 것은 아니며 단순한 첫 로드가 아닌 세션의 값이 이상해 보이는 이유를 설명합니다.

LCP가 순위에 영향을 주나요?

Google이 Core Web Vitals를 순위 시스템에 사용하고 좋은 점수를 권장한다는 의미에서는 그렇습니다. 하지만 현재 Search Central 문서는 정확한 LCP 가중치를 공개하지 않고 동점 판정 지표라고도 설명하지 않습니다. Google은 관련성 있는 콘텐츠를 제공하는 페이지가 여러 개일 때 페이지 경험이 “can contribute to success in Search” (번역) 「검색 성공에 기여할 수 있다」고 하며, 좋은 점수가 순위 상승을 보장하지 않는다고 설명합니다. 콘텐츠 관련성과 품질이 여전히 우선입니다. LCP는 문서화되지 않은 순위 동점 판정 때문이 아니라 사용자가 실제로 더 빠르게 느끼고 전환에도 좋은 페이지를 만들기 위해 최적화하세요.

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

데이터에서 확인되는 현실도 있습니다. Core Web Vitals 중 사이트가 가장 개선하기 어려워하는 지표가 LCP이며, CPU와 연결이 느린 모바일은 데스크톱보다 훨씬 어렵습니다. 3G 이하에서는 2,5 s 기준을 달성하기가 거의 불가능하게 느껴질 수 있습니다.

관련 지표

LCP는 Interaction to Next Paint, Cumulative Layout Shift와 함께 세 가지 Core Web Vitals를 구성합니다. 첫 하위 단계인 Time to First Byte는 별도의 진단 지표이고 First Contentful Paint는 로딩 타임라인에서 바로 옆에 있습니다. PageSpeed Insights, Lighthouse, Chrome User Experience Report(CrUX)에서 모두 볼 수 있으며 이 클러스터에서 각 지표를 자세히 다룹니다.

Add an expert note

Pin an expert quote

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