웹사이트 로딩 속도 개선 요소

속도는 '빠르다/느리다'가 아니라 무엇을 어떤 기준으로 재느냐의 문제입니다. 측정 기준부터 여섯 가지 개선 요소, 실제 기업 사례까지 순서대로 정리했습니다.

한눈에 보기

웹페이지가 느린 이유는 한 가지가 아닙니다. 서버가 늦게 응답하거나, 이미지가 너무 무겁거나, 불필요한 코드가 먼저 실행되거나, 방문자와 서버가 멀리 떨어져 있는 경우가 각각 다른 해법을 요구합니다. 이 글은 먼저 구글이 제시하는 측정 기준을 확인하고, 아래 여섯 가지 요소가 어느 단계에 작용하는지 정리한 뒤, 공개된 개선 사례 두 가지와 직접 점검하는 순서를 소개합니다.

먼저 무엇을 측정할까: Core Web Vitals와 TTFB

web.dev는 사용자 경험의 핵심 지표(Core Web Vitals)로 세 가지를 제시하며, 방문자의 75번째 백분위 값이 아래 '좋음' 기준을 모두 만족해야 통과로 봅니다. 이 중 INP는 2024년에 안정 지표가 되어 이전의 FID를 대체했습니다. TTFB는 핵심 지표는 아니지만 다른 지표보다 앞선 단계라 함께 살펴봅니다.

지표무엇을 재나'좋음' 기준(web.dev)주로 영향을 주는 요소
LCP화면에서 가장 큰 콘텐츠가 표시되기까지의 시간2.5초 이하이미지, 서버 응답, 캐싱, CDN
INP사용자 조작에 화면이 반응하는 속도200밀리초 이하자바스크립트 양과 실행 시간
CLS로딩 중 레이아웃이 갑자기 밀리는 정도0.1 이하이미지 크기 미지정, 늦게 들어오는 요소
TTFB(참고)첫 응답 바이트가 도착하기까지의 시간0.8초 이하(대략적 기준)서버, DNS, 연결, CDN

TTFB의 대략적 기준은 0.8초 이하가 좋음, 1.8초 초과가 나쁨입니다(web.dev는 이를 '대략적인 가이드'라고 표현합니다). 표의 마지막 열은 일반적인 연관 관계를 정리한 것이며, 사이트마다 실제 병목은 측정해야 알 수 있습니다.

여섯 가지 개선 요소

아래 카드를 위에서 아래로 읽으면 '파일을 줄이고(이미지, 코드) → 응답을 빠르게 하고(서버) → 다시 받지 않게 하고(캐싱) → 가깝게 보내고(CDN) → 필요한 때에 받는(지연 로딩)' 흐름으로 이어집니다.

⚡

이미지 최적화

용량이 큰 이미지를 압축하고 WebP·AVIF 같은 효율적인 포맷으로 바꾸는 작업입니다. web.dev는 WebP와 AVIF가 오래된 포맷보다 대체로 압축이 좋다고 설명하며, 구형 브라우저를 위해 JPEG·PNG 대체본을 함께 두라고 안내합니다. 로고·아이콘처럼 단순한 도형은 SVG가 적합하고, 꼭 필요하지 않은 이미지는 아예 빼는 것이 가장 좋은 최적화입니다.

⚡

서버 응답 시간

요청을 보낸 뒤 첫 바이트가 도착할 때까지 걸리는 시간(TTFB)에 가장 크게 반영됩니다. TTFB에는 리디렉션, DNS 조회, 연결·TLS 협상, 서버 처리 시간이 모두 포함되므로 서버가 느리면 뒤이어 일어나는 화면 표시도 함께 늦어집니다.

⚡

캐싱

자주 바뀌지 않는 파일을 브라우저나 중간 서버에 저장해 두고 재사용하는 기술입니다. Cache-Control 헤더로 보관 기간(max-age)과 재검증 방식(no-cache)을 정하며, 파일 이름에 버전을 넣어 두면 오래 캐싱하면서도 파일이 바뀔 때 즉시 새 버전을 받게 할 수 있습니다.

⚡

CDN(콘텐츠 전송 네트워크)

여러 지역에 분산된 서버가 같은 콘텐츠의 사본을 들고 있다가 방문자와 가까운 서버가 응답하게 하는 구조입니다. 지연 시간과 원본 서버의 부담을 줄이지만, 외부 서비스에 의존하게 되고 상황에 따라 오히려 연결 단계가 늘 수도 있습니다.

⚡

코드 압축(미니피케이션)

CSS나 자바스크립트에서 공백·줄바꿈·주석처럼 실행에 필요 없는 문자를 제거해 파일 크기를 줄이는 작업입니다. 코드의 동작은 바꾸지 않으며, 보통 빌드 도구가 자동으로 처리합니다.

⚡

지연 로딩(레이지 로딩)

처음 화면에 보이지 않는 이미지를 스크롤로 가까워졌을 때 불러오는 기술입니다. img 태그의 loading="lazy" 속성으로 쓸 수 있지만, 첫 화면에 보이는 이미지(특히 LCP 이미지)에는 쓰지 않도록 권장됩니다.

요소별로 어떤 문제를 푸는가

요소해결하려는 병목주의할 점
이미지 최적화파일 크기화질과 용량은 맞바꿈 관계라 품질 단계를 여러 개 시험해 봅니다.
서버 응답 시간첫 바이트까지의 지연프런트엔드 최적화로는 해결되지 않습니다.
캐싱반복 다운로드헤더를 비워 두어도 브라우저가 임의로 캐싱 정책을 추측합니다. 명시하는 편이 통제하기 쉽습니다.
CDN물리적 거리외부 서비스 의존, 보안 대책(SRI 등) 필요.
코드 압축CSS·JS 크기동작은 같지만 디버깅이 어려워져 원본 소스를 따로 보관해야 합니다.
지연 로딩첫 화면 요청 수첫 화면 이미지에는 쓰지 않고, width·height를 지정합니다.

실제 개선 사례

사례 1. 보다폰: 서버 렌더링과 이미지 정리를 A/B 테스트로 비교

통신사 보다폰은 유료 광고 유입을 받는 랜딩 페이지를 대상으로 두 버전을 절반씩 나눠 보여 주는 A/B 테스트를 했습니다(web.dev 사례 연구 기준, 버전당 하루 약 3만 4천 방문). 개선 버전에서는 위젯 렌더링을 클라이언트에서 서버로 옮기고, 핵심 HTML을 서버에서 만들고, 히어로 이미지 크기를 줄이고 화면 밖 이미지는 불러오지 않게 했습니다. 그 결과 현장(필드) 측정 LCP가 31% 개선되어 8.3초에서 5.7초가 되었고, 판매가 8%, 방문 대비 리드 비율이 15%, 방문 대비 장바구니 비율이 11% 늘었다고 보고됐습니다. 흥미로운 점은 DOMContentLoaded 시간은 오히려 15% 늘었다는 것입니다. 한 숫자가 좋아졌다고 모든 숫자가 좋아지는 것은 아니며, 사용자가 체감하는 지표(LCP)를 기준으로 판단해야 한다는 교훈을 줍니다.

사례 2. 르노: 여러 기법을 묶고 상관관계로 효과를 추정

르노는 싱글 페이지 애플리케이션으로 만든 랜딩 페이지에 서버 렌더링, 코드 분할, Brotli 압축, HTTP/2, CDN 캐싱, 반응형·WebP·지연 로딩 이미지, 차단 스크립트 제거, 커스텀 글꼴 축소를 함께 적용했습니다(web.dev 사례 연구 기준). 2020년 초 이후 유럽 상위 5개 시장에서 LCP 2.5초 미만인 방문자 비율이 평균 51%에서 73%로 올랐습니다. 이것은 평균 LCP가 아니라 '빠른 방문자의 비율'입니다. 또 33개국 1천만 건 이상의 방문(2020년 12월~2021년 3월)을 분석해, LCP가 1초 줄 때 이탈률이 약 14%포인트 낮아지고 전환율이 약 13% 높아지는 것으로 추정했습니다. 다만 이 값은 선형 회귀로 구한 상관관계이므로 같은 개선이 다른 사이트에서 같은 결과를 낸다는 보장은 아닙니다.

가상 예시. 사진 12장짜리 소개 페이지 점검하기

아래는 실제 사이트가 아니라 설명을 위한 가상 예시입니다. 사진이 12장 있고 한 장이 400KB라면 이미지만 4,800KB(약 4.7MB)입니다. 첫 화면에는 사진 2장만 보이는데 12장을 한꺼번에 받고 있다면, 화면 밖 10장에 loading="lazy"를 주고 사진마다 width·height를 지정하는 것이 우선순위가 높은 조치가 됩니다. 반대로 첫 화면의 대표 사진(LCP 후보)에 lazy를 걸었다면 오히려 지연을 만들 수 있으니 제거해야 합니다. 실제 개선 폭은 측정해 봐야 알 수 있습니다.

직접 점검하는 순서

흔한 오해와 정정

한계와 더 알아볼 점

이 글의 임계값(2.5초, 200밀리초, 0.1)은 web.dev가 현재 제시하는 기준이며 지표와 기준은 바뀔 수 있습니다. INP가 FID를 대체한 것이 그 예입니다. 사례 연구의 수치는 해당 회사의 트래픽·구조에서 나온 결과로, 특히 르노의 효과 추정은 상관관계입니다. 속도가 곧바로 순위나 매출을 결정한다고 단정할 근거는 이 글에서 확인한 자료에 없습니다.

이어서 읽어보세요

서버 성능이 사이트 속도에 미치는 영향이 궁금하다면 웹 호스팅 종류 완전정복도 확인해보세요. 전송 거리를 줄이는 방법은 CDN 기초 가이드, 이미지 포맷 선택은 이미지 파일 형식 가이드, 파일 용량 줄이기는 이미지 압축 가이드, 통신 방식의 변화는 HTTP 프로토콜 발전사에서 이어 볼 수 있습니다.

자주 묻는 질문

내 웹사이트 속도는 어떻게 확인하나요?

구글의 페이지스피드 인사이트 같은 무료 도구를 사용하면 웹사이트의 로딩 속도를 측정하고 개선할 점을 구체적으로 제안받을 수 있습니다. 크롬 개발자 도구의 Lighthouse로도 같은 종류의 진단을 할 수 있습니다.

CDN을 사용하면 정말 효과가 있나요?

방문자와 가까운 서버에서 사본을 내려주므로 지연 시간과 원본 서버 부담을 줄이는 데 도움이 됩니다. 다만 MDN이 지적하듯 외부 서비스에 의존하게 되고 상황에 따라 연결 단계가 늘 수도 있으니, 적용 전후를 측정해 비교하세요.

실험실 점수와 실제 사용자 데이터가 왜 다른가요?

랩 측정은 정해진 환경에서 한 번 재는 값이고, 필드 데이터는 다양한 기기·네트워크를 쓰는 실제 방문자의 값입니다. Core Web Vitals 통과 여부는 방문자의 75번째 백분위 기준으로 판단합니다.

캐시를 오래 잡으면 수정한 파일이 안 바뀌지 않나요?

파일 이름에 버전이나 해시를 넣으면 내용이 바뀔 때 주소가 달라지므로, 오래 캐싱해도 새 파일을 바로 받게 됩니다. 자주 바뀌는 HTML 문서는 재검증 방식(no-cache)을 쓰는 것이 일반적인 접근입니다.

TTFB가 높으면 무엇부터 봐야 하나요?

TTFB에는 리디렉션, DNS 조회, 연결·TLS 협상, 서버 처리가 모두 들어 있습니다. 어느 구간이 긴지 개발자 도구의 네트워크 타이밍으로 나눠 본 뒤 호스팅·CDN·서버 로직 순으로 좁혀 갑니다.