중급Google

페이지 속도 최적화: Lighthouse 지표 개선 완전 가이드

핵심 요약 (TL;DR)

Google Lighthouse의 6개 지표(Performance·Accessibility·Best Practices·SEO·FCP·TTI) 분석법과 리소스 압축·캐싱·CDN 활용 최적화 전략을 다룹니다.

읽기 16 2025-03-22

페이지 속도와 SEO의 관계

Google은 2021년부터 Core Web Vitals를 공식 랭킹 팩터로 적용했습니다. 그러나 속도가 SEO에 미치는 영향은 순위 뿐만이 아닙니다.

속도의 영향데이터
페이지 로드 3초 초과 시 이탈률32% 증가 (Google, 2017)
1초 지연 시 전환율 하락7% 감소 (Akamai)
Amazon 100ms 지연 시 매출 손실1% 감소 (Amazon 내부 연구)
LCP 2.5초 미만 사이트의 Google 순위 우선성콘텐츠 품질 동일 시 우선 순위

Lighthouse 점수 이해하기

Lighthouse는 Chrome DevTools에 내장된 웹 성능 측정 도구입니다. 성능 점수는 다음 지표들의 가중 평균으로 계산됩니다.

지표약자가중치설명
First Contentful PaintFCP10%첫 번째 콘텐츠 요소가 화면에 나타나는 시간
Largest Contentful PaintLCP25%가장 큰 콘텐츠 요소 렌더링 시간
Total Blocking TimeTBT30%메인 스레드가 50ms 이상 차단된 총 시간 합계
Cumulative Layout ShiftCLS25%예기치 않은 레이아웃 이동 누적 점수
Speed IndexSI10%페이지 콘텐츠가 시각적으로 채워지는 속도

TBT(30%)가 가장 높은 가중치를 가집니다. TBT는 실험실 데이터(lab data)에서 INP와 높은 상관관계를 보이며, JavaScript 실행 시간 최적화가 점수 향상에 가장 큰 효과를 냅니다.

렌더 블로킹 리소스 제거

렌더 블로킹 리소스는 HTML 파싱 중 브라우저가 페이지 렌더링을 중단하고 해당 파일을 먼저 로드하게 만드는 CSS·JavaScript 파일입니다. Lighthouse에서 "Eliminate render-blocking resources" 경고로 표시됩니다.

<!-- ❌ 렌더 블로킹 -->
<link rel="stylesheet" href="/style.css">
<script src="/app.js"></script>

<!-- ✅ 개선된 방법 -->
<!-- 중요 CSS는 <style> 인라인으로 (Critical CSS) -->
<style>/* 첫 화면에 필요한 최소 CSS */</style>

<!-- 나머지 CSS는 비동기 로드 -->
<link rel="preload" as="style" href="/style.css" 
      onload="this.onload=null;this.rel='stylesheet'">

<!-- JS는 defer 또는 async -->
<script src="/app.js" defer></script>
<script src="/analytics.js" async></script>
방법동작사용처
async다운로드 비동기, 실행은 즉시 (HTML 파싱 중단)독립적 외부 스크립트 (Analytics, 광고)
defer다운로드 비동기, 실행은 HTML 파싱 완료 후DOM에 의존하는 앱 스크립트
Critical CSS첫 화면 필요 CSS만 인라인으로 <head>에히어로 영역, 네비게이션 등

JavaScript 번들 최적화

현대 웹 앱에서 JavaScript는 TBT를 높이는 가장 큰 원인입니다. 번들 크기를 줄이고 코드 분할(Code Splitting)을 통해 초기 로드를 최소화해야 합니다.

핵심 전략

  • Tree Shaking: 사용하지 않는 코드 제거. Webpack·Rollup·esbuild 등에서 자동 지원
  • Code Splitting: 라우트 단위로 번들 분리. Next.js는 자동으로 페이지별 코드 분할
  • Dynamic Import: 필요한 시점에만 모듈 로드
  • Third-party 최소화: 불필요한 npm 패키지 제거 (bundlephobia.com에서 패키지 크기 확인)
// 동적 import로 무거운 라이브러리 지연 로드
const { default: Chart } = await import('chart.js')

// Next.js dynamic import
import dynamic from 'next/dynamic'
const HeavyComponent = dynamic(() => import('./HeavyComponent'), {
    loading: () => <Skeleton />,
    ssr: false, // 서버 렌더링 제외
})

CDN·캐싱·압축 최적화

CDN (Content Delivery Network)

CDN은 전 세계 여러 서버에 콘텐츠를 분산해 사용자와 가장 가까운 서버에서 파일을 제공합니다. 이미지·JavaScript·CSS 등 정적 파일에 CDN을 적용하면 TTFB(Time to First Byte)를 크게 줄일 수 있습니다.

HTTP 캐싱 헤더 설정

# 정적 파일 (JS, CSS, 이미지) — 1년 캐시
Cache-Control: public, max-age=31536000, immutable

# HTML 페이지 — 캐시 없음 (항상 최신 내용)
Cache-Control: no-cache, no-store, must-revalidate

압축 (Gzip / Brotli)

압축 방식압축률CPU 비용권장
Brotli (br)Gzip보다 20~26% 우수약간 높음최우선 권장
Gzip기준낮음Brotli 미지원 대비 fallback

자주 묻는 질문 (FAQ)

Q. Lighthouse 점수가 100점이면 SEO에 유리한가요?
Lighthouse 점수 자체는 직접적인 랭킹 팩터가 아닙니다. Google이 사용하는 것은 실사용자 데이터(CrUX/필드 데이터)의 Core Web Vitals이며, Lighthouse는 랩 데이터입니다. 다만 Lighthouse 100점은 필드 데이터에서도 좋은 CWV를 얻을 가능성이 높다는 의미이므로, 간접적으로 SEO에 도움됩니다. 100점에 집착하기보다 Core Web Vitals 3가지(LCP < 2.5s, INP < 200ms, CLS < 0.1)를 충족하는 것이 더 중요합니다.
Q. async와 defer의 차이는 무엇인가요?
async는 스크립트를 비동기로 다운로드하고 다운로드 완료 즉시 실행(HTML 파싱 중단)합니다. defer는 비동기로 다운로드하되 HTML 파싱 완료 후에 실행합니다. DOM에 의존하는 앱 스크립트는 defer, 독립적인 외부 스크립트(Analytics, 광고)는 async가 적합합니다.
Q. 모바일과 데스크톱 중 어느 쪽의 속도를 우선 최적화해야 하나요?
모바일을 우선하세요. Google의 Mobile-First Indexing 정책에 따라 모바일 버전이 랭킹의 기준입니다. 모바일 기기는 CPU 성능이 낮고 네트워크가 불안정하므로 같은 페이지라도 더 느리게 로드됩니다. 모바일에서 최적화하면 데스크톱은 자연스럽게 더 빨라집니다.
Q. CDN을 사용하면 얼마나 빨라지나요?
CDN을 사용하면 TTFB(Time to First Byte)가 50~70% 이상 개선될 수 있습니다. 특히 해외 사용자가 많은 사이트에서 효과가 큽니다. Vercel, Cloudflare, AWS CloudFront 등 대부분의 현대 호스팅 플랫폼은 CDN을 기본 제공합니다.
Q. Next.js를 사용하면 속도 최적화가 자동으로 되나요?
Next.js는 코드 분할, 이미지 최적화(next/image), 자동 프리페칭, Streaming SSR 등 많은 최적화를 기본 제공합니다. 하지만 자동이 아닌 부분도 있습니다: Third-party 스크립트 관리(next/script), 폰트 최적화(next/font), 불필요한 클라이언트 컴포넌트 식별 등은 개발자가 직접 최적화해야 합니다.

지금 읽으신 SEO 지식, 바로 적용해보세요!

검색엔진 최적화는 실전입니다. SEO SOVISS의 무료 분석 도구로 내 웹사이트의 오디트 점수를 즉시 확인하고 기술적 문제점을 점검해보세요.

내 웹사이트 진단하기 →
정수아

데이터분석팀 선임

정수아

GA4, Search Console 및 서버 로그 데이터를 기반으로 사용자 행동을 분석하고 트래픽 갭(Traffic Gap)을 도출합니다.

SEO SOVISS 전체 집필진 보기 →
페이지 속도 최적화: Lighthouse 지표 개선 완전 가이드