전체 도구

페이지 속도 체크리스트

Core Web Vitals 체크리스트로 최적화 진행률을 추적하세요. LCP, INP, CLS 등 성능 메트릭별 스마트 추천을 제공합니다.

전체 진행률

0/27 완료

전체 항목의 0% 완료

LCP (Largest Contentful Paint)

0/7

로딩 성능을 측정합니다. 양호한 LCP는 2.5초 미만입니다.

가장 큰 이미지 또는 텍스트 블록 최적화

필수영향도: 높음

DevTools로 LCP 요소를 파악하고 최대한 빠르게 로드되도록 합니다. 이미지를 압축하고, 최신 포맷(WebP/AVIF)을 사용하며, 명시적인 width/height를 설정하세요.

LCP 리소스 preload 적용

필수영향도: 높음

LCP 이미지나 폰트에 <link rel="preload">를 추가하여 브라우저가 CSS나 JS를 기다리지 않고 먼저 가져오도록 합니다.

정적 자산에 CDN 사용

중요영향도: 높음

이미지, 폰트 등의 자산을 CDN에서 제공하여 다양한 지역의 사용자에게 지연 시간을 줄입니다.

렌더 차단 리소스 제거

필수영향도: 높음

중요하지 않은 CSS와 JS를 지연 로드합니다. 크리티컬 CSS를 인라인으로 삽입하여 첫 렌더링 속도를 높이고 LCP 요소의 차단을 방지하세요.

srcset을 사용한 반응형 이미지 제공

중요영향도: 중간

srcset과 sizes 속성을 활용하여 각 뷰포트에 적절한 크기의 이미지를 제공하고, 과대한 이미지 다운로드를 방지합니다.

서버 응답 시간(TTFB) 최적화

중요영향도: 중간

Time to First Byte를 800ms 미만으로 유지합니다. 서버 측 캐싱, 데이터베이스 쿼리 최적화, Edge 렌더링을 고려하세요.

LCP 이미지에 lazy-loading 사용 금지

필수영향도: 높음

LCP 요소는 즉시 로드되어야 합니다. 히어로 이미지에 loading="eager" 또는 fetchpriority="high"를 설정하세요.

INP (Interaction to Next Paint)

0/7

사용자 입력에 대한 응답성을 측정합니다. 양호한 INP는 200밀리초 미만입니다.

긴 작업 분할

필수영향도: 높음

50ms 이상 걸리는 JavaScript 작업을 requestIdleCallback, setTimeout, scheduler.yield() 등을 사용하여 작은 단위로 분할합니다.

메인 스레드 작업 최소화

필수영향도: 높음

사용하지 않는 코드를 제거하고, 비필수 스크립트를 지연시키며, 코드 분할을 사용하여 JavaScript 실행 시간을 줄입니다.

이벤트 핸들러 최적화

중요영향도: 높음

이벤트 핸들러를 가볍게 유지합니다. 무거운 계산은 Web Worker로 이동하거나 requestAnimationFrame으로 지연시킵니다.

DOM 크기 줄이기

중요영향도: 중간

DOM을 1,500개 노드 미만으로 유지합니다. 큰 DOM은 인터랙션 시 스타일 계산, 레이아웃, 페인트 작업을 느리게 합니다.

강제 동기 레이아웃 방지

중요영향도: 중간

DOM 변경 직후에 레이아웃 속성(offsetHeight, getBoundingClientRect)을 읽지 마세요.

CSS containment 사용

권장영향도: 중간

독립적인 섹션에 contain: content 또는 contain: layout을 추가하여 브라우저의 재레이아웃 범위를 제한합니다.

빠른 입력 이벤트 디바운싱

중요영향도: 중간

scroll, resize, input 이벤트에 디바운싱 또는 스로틀링을 적용하여 프레임당 과도한 처리를 방지합니다.

CLS (Cumulative Layout Shift)

0/6

시각적 안정성을 측정합니다. 양호한 CLS는 0.1 미만입니다.

이미지와 동영상에 명시적 크기 설정

필수영향도: 높음

항상 width와 height 속성(또는 CSS aspect-ratio)을 포함하여 미디어 로드 전에 브라우저가 공간을 예약하도록 합니다.

광고 및 임베드 공간 확보

필수영향도: 높음

광고 슬롯, iframe, 동적으로 삽입되는 콘텐츠에 min-height 또는 aspect-ratio 컨테이너를 사용합니다.

상단 영역에 콘텐츠 동적 삽입 금지

필수영향도: 높음

로드 후 기존 콘텐츠를 아래로 밀어내는 배너, 쿠키 알림, 알림을 동적으로 삽입하지 마세요.

font-display: swap과 size-adjust 사용

중요영향도: 중간

font-display: swap과 함께 size-adjust 또는 폰트 폴백 메트릭을 사용하여 웹 폰트로 인한 레이아웃 이동을 방지합니다.

동적 요소 크기 변경 방지

중요영향도: 중간

갑작스러운 크기 변경 대신 CSS 트랜지션을 사용합니다. width/height 대신 transform으로 애니메이션을 적용하세요.

화면 밖 콘텐츠에 content-visibility 적용

권장영향도: 낮음

아래쪽 섹션에 content-visibility: auto와 contain-intrinsic-size를 적용하여 레이아웃을 안정화합니다.

일반 성능

0/7

전체적인 페이지 속도와 사용자 경험을 향상시키는 광범위한 최적화 항목입니다.

텍스트 압축 활성화 (gzip/Brotli)

필수영향도: 높음

HTML, CSS, JS 응답을 Brotli(권장) 또는 gzip으로 압축합니다. 대부분의 호스팅 플랫폼에서 기본 지원합니다.

CSS 및 JavaScript 최소화

중요영향도: 중간

CSS와 JS 번들에서 공백, 주석, 사용하지 않는 코드를 제거합니다. Terser, cssnano 등의 도구를 사용하세요.

캐싱 헤더 구현

중요영향도: 중간

정적 자산에 적절한 max-age의 Cache-Control 헤더를 설정합니다. 해시된 파일명에는 immutable을 사용하세요.

서드파티 스크립트 영향 최소화

중요영향도: 높음

서드파티 스크립트(분석, 채팅 위젯 등)를 감사합니다. 지연 로드하거나 defer를 적용하고, Partytown 도입을 고려하세요.

HTTP/2 또는 HTTP/3 사용

중요영향도: 중간

서버가 HTTP/2 이상을 지원하는지 확인하여 멀티플렉싱, 헤더 압축, 빠른 리소스 전달을 활용합니다.

리소스 힌트 구현

권장영향도: 낮음

서드파티 출처에 dns-prefetch와 preconnect를 사용합니다. 중요한 외부 도메인에 <link rel="preconnect">를 추가하세요.

JavaScript Tree-shaking 및 코드 분할

중요영향도: 높음

동적 import와 Tree shaking을 사용하여 각 페이지에 필요한 JavaScript만 전송합니다. 초기 번들 크기를 줄입니다.

Core Web Vitals 기준값

LCP

2.5초

양호: < 2.5초

미흡: > 4.0초

INP

200ms

양호: < 200ms

미흡: > 500ms

CLS

0.1

양호: < 0.1

미흡: > 0.25

  • LCP (Largest Contentful Paint): 메인 콘텐츠가 얼마나 빨리 로드되는지 측정합니다. 이미지, 폰트, 서버 응답 시간을 최적화하세요.
  • INP (Interaction to Next Paint): 응답성을 측정합니다. JavaScript 차단 시간을 줄이고 이벤트 핸들러를 최적화하세요.
  • CLS (Cumulative Layout Shift): 시각적 안정성을 측정합니다. 명시적 크기를 설정하고 동적 콘텐츠를 위한 공간을 확보하세요.
  • 실제 데이터로 테스트하세요: Google Search Console, PageSpeed Insights, Chrome UX Report의 필드 데이터를 활용하세요. 랩 테스트만으로는 부족합니다.

주요 기능

  • Core Web Vitals 체크리스트
  • LCP 최적화 팁
  • CLS 감소 가이드
  • INP 개선 단계
  • 진행률 추적
  • 우선순위 추천

SEO 팁

  • 타이틀 태그는 60자 이내로 작성하세요
  • 메타 디스크립션은 150~160자가 적당합니다
  • 주요 키워드를 자연스럽게 포함하세요
  • 각 페이지의 메타 정보를 고유하게 작성하세요