게시일: 2020년 5월 4일
사용자 경험의 품질을 최적화하는 것은 웹상의 모든 사이트가 장기적으로 성공할 수 있는 열쇠입니다. 비즈니스 소유자, 마케팅 담당자, 개발자들이 웹 바이탈을 사용하면 사이트의 실험 환경을 수치화하고 개선 기회를 파악할 수 있습니다.
개요
웹 바이탈은 웹에서 우수한 사용자 경험을 제공하는 데 필수적인 품질 신호에 대한 통합된 안내를 제공하는 Google의 이니셔티브입니다.
Google은 수년간 실적을 측정하고 보고하는 다양한 도구를 제공해 왔습니다. 이러한 도구를 사용하는 데 능숙한 개발자도 있지만, 도구와 측정항목이 너무 많아 따라잡기 어렵다고 생각하는 개발자도 있습니다.
사이트 소유자가 성능 전문가가 아니어도 사용자에게 제공하는 환경의 품질을 파악할 수 있습니다. 웹 바이탈 이니셔티브는 환경을 단순화하고 사이트가 가장 중요한 측정항목인 Core Web Vitals에 집중할 수 있도록 지원하는 것을 목표로 합니다.
코어 웹 바이탈
핵심 성능 보고서는 모든 웹페이지에 적용되는 성능 보고서의 하위 집합으로, 모든 사이트 소유자가 측정해야 하며 모든 Google 도구에 표시됩니다. 각 코어 웹 바이탈은 사용자 경험의 고유한 측면을 나타내며, 현장에서 측정 가능하며, 중요한 사용자 중심 결과의 실제 경험을 반영합니다.
코어 웹 바이탈을 구성하는 측정항목은 시간이 지남에 따라 진화합니다. 현재 세트는 사용자 환경의 세 가지 측면인 로드, 상호작용, 시각적 안정성에 중점을 두며 다음 측정항목(및 각 측정항목의 기준점)을 포함합니다.
- 최대 콘텐츠 렌더링 시간(LCP): 로드 성능을 측정합니다. 우수한 사용자 환경을 제공하려면 페이지가 처음 로드되기 시작한 지 2.5초 이내에 LCP가 발생해야 합니다.
- 다음 페인트에 대한 상호작용(INP): 상호작용을 측정합니다. 우수한 사용자 환경을 제공하려면 페이지의 INP가 200밀리초 이하여야 합니다.
- 레이아웃 변경 횟수 (CLS): 시각적 안정성을 측정합니다. 우수한 사용자 환경을 제공하려면 페이지의 CLS가 0.1 이하를 유지해야 합니다.
대부분의 사용자에게 이러한 측정항목에 대한 권장 타겟을 달성하려면 모바일 및 데스크톱 기기별로 분류된 페이지 로드의 75번째 백분위수를 측정하는 것이 좋습니다.
Core Web Vitals 규정 준수를 평가하는 도구는 페이지가 세 가지 Core Web Vitals 측정항목 모두에서 75번째 백분위수의 권장 타겟을 충족하는 경우 페이지가 통과했다고 간주해야 합니다.
Lifecycle
Core Web Vitals 트랙의 측정항목은 실험용, 대기 중, 안정화의 3단계로 구성된 수명 주기를 거칩니다.
각 단계는 개발자에게 각 측정항목에 대해 어떻게 생각해야 하는지를 알리도록 설계되었습니다.
- 실험용 측정항목은 테스트 및 커뮤니티 의견에 따라 아직 상당한 변화가 있을 수 있는 잠재적인 Core Web Vitals입니다.
- 대기 중인 측정항목은 테스트 및 의견 단계를 통과했으며 안정화될 때까지의 일정이 명확하게 정의된 향후 Core Web Vitals입니다.
- 안정적인 측정항목은 Chrome에서 훌륭한 사용자 환경을 위해 필수적이라고 간주하는 최신 Core Web Vitals입니다.
Core Web Vitals의 수명 주기 단계는 다음과 같습니다.
실험용
측정항목이 처음 개발되어 생태계에 도입되면 실험용 측정항목으로 간주됩니다.
실험 단계의 목적은 먼저 해결할 문제를 살펴보고 이전 측정항목에서 해결하지 못한 문제를 반복적으로 살펴봄으로써 측정항목의 적합성을 평가하는 것입니다. 예를 들어 다음 페인트에 대한 상호작용(INP)은 최초 입력 지연 시간(FID)보다 웹에 존재하는 런타임 성능 문제를 더 포괄적으로 해결하기 위한 실험용 측정항목으로 처음 개발되었습니다.
Core Web Vitals 수명 주기의 실험 단계는 버그를 식별하고 초기 정의의 변경사항을 살펴봄으로써 측정항목 개발에 유연성을 제공하기 위한 것입니다. 또한 이 단계에서는 커뮤니티 의견이 가장 중요합니다.
대기 중
Chrome팀에서 실험용 측정항목이 충분한 의견을 받고 그 효과가 입증되었다고 판단하면 대기 중인 측정항목이 됩니다. 예를 들어 INP는 2023년에 FID를 폐기하기 위한 목적으로 실험용에서 대기 중으로 승격되었습니다.
대기 중인 측정항목은 생태계가 적응할 시간을 주기 위해 이 단계에서 최소 6개월 동안 보류됩니다. 점점 더 많은 개발자가 이 측정항목을 사용하기 시작함에 따라 커뮤니티 의견은 이 단계에서 중요한 역할을 합니다.
정식
Core Web Vitals 후보 측정항목이 완료되면 안정적인 측정항목이 됩니다. 이때 측정항목이 Core Web Vitals가 될 수 있습니다.
안정적인 측정항목은 적극적으로 지원되며 버그 수정 및 정의 변경이 있을 수 있습니다. 안정적인 Core Web Vitals 측정항목은 일 년에 한 번 이상 변경되지 않습니다. Core Web Vitals의 변경사항은 측정항목의 공식 문서와 측정항목의 변경 로그에 명확하게 전달됩니다. 코어 웹 바이탈도 모든 평가에 포함됩니다.
Core Web Vitals를 측정하고 보고하는 도구
Google은 핵심 성능 보고서가 모든 웹 환경에 중요하다고 생각합니다. 이에 따라 모든 인기 도구에 이러한 측정항목을 표시하기 위해 노력하고 있습니다. 다음 섹션에서는 Core Web Vitals를 지원하는 도구를 자세히 설명합니다.
코어 웹 바이탈을 측정하는 현장 도구
Chrome 사용자 환경 보고서는 각 Core Web Vitals에 대한 익명처리된 실제 사용자 측정 데이터를 수집합니다. 이 데이터를 사용하면 사이트 소유자가 페이지에서 애널리틱스를 수동으로 계측하지 않고도 성능을 빠르게 평가할 수 있으며 Chrome DevTools, PageSpeed Insights, Search Console의 Core Web Vitals 보고서와 같은 도구를 지원합니다.
Chrome 사용자 환경 보고서에서 제공하는 데이터는 사이트의 성능을 빠르게 평가하는 방법을 제공하지만, 회귀를 정확하게 진단, 모니터링, 신속하게 대응하는 데 종종 필요한 페이지 조회당 세부적인 원격 분석은 제공하지 않습니다. 따라서 사이트에서 자체 실시간 사용자 모니터링을 설정하는 것이 좋습니다.
JavaScript에서 Core Web Vitals 측정
각 Core Web Vitals는 표준 웹 API를 사용하여 JavaScript에서 측정할 수 있습니다.
모든 핵심 성능 보고서를 측정하는 가장 쉬운 방법은 web-vitals JavaScript 라이브러리를 사용하는 것입니다. 이 라이브러리는 기본 웹 API를 둘러싼 소형 프로덕션 준비 래퍼로, 앞서 나열된 모든 Google 도구에서 보고되는 방식과 정확하게 일치하는 방식으로 각 측정항목을 측정합니다.
web-vitals 라이브러리를 사용하면 단일 함수를 호출하여 각 측정항목을 측정할 수 있습니다. 전체 사용 및 API 세부정보는 문서를 참고하세요.
import {onCLS, onINP, onLCP} from 'web-vitals';
function sendToAnalytics(metric) {
const body = JSON.stringify(metric);
// Use `navigator.sendBeacon()` if available, falling back to `fetch()`.
(navigator.sendBeacon && navigator.sendBeacon('/analytics', body)) ||
fetch('/analytics', {body, method: 'POST', keepalive: true});
}
onCLS(sendToAnalytics);
onINP(sendToAnalytics);
onLCP(sendToAnalytics);
web-vitals 라이브러리를 사용하여 코어 웹 바이탈 데이터를 측정하고 애널리틱스 엔드포인트로 전송하도록 사이트를 구성했다면 다음 단계는 이 데이터를 집계하고 보고하여 페이지 방문의 75% 이상에서 권장 기준점을 충족하는지 확인하는 것입니다.
일부 분석 제공업체는 Core Web Vitals 측정항목을 기본적으로 지원하지만, 지원하지 않는 제공업체도 도구에서 Core Web Vitals를 측정할 수 있는 기본 맞춤 측정항목 기능을 포함해야 합니다.
기본 웹 API를 사용하여 이러한 측정항목을 직접 측정하려는 개발자는 구현 세부정보에 다음 측정항목 가이드를 대신 사용할 수 있습니다.
인기 있는 분석 서비스 또는 자체 내부 분석 도구를 사용하여 이러한 측정항목을 측정하는 방법에 관한 자세한 내용은 필드에서 웹 바이탈을 측정하기 위한 권장사항을 참고하세요.
코어 웹 바이탈을 측정하는 실험실 도구
모든 Core Web Vitals는 무엇보다도 필드 측정항목이지만 그중 많은 항목은 실험실에서도 측정할 수 있습니다.
실험실 측정은 기능이 사용자에게 출시되기 전에 개발 중에 기능의 성능을 테스트하는 가장 좋은 방법입니다. 성능 저하가 발생하기 전에 포착하는 가장 좋은 방법이기도 합니다.
다음 도구를 사용하여 실습 환경에서 Core Web Vitals를 측정할 수 있습니다.
LCP | INP | CLS | |
---|---|---|---|
Chrome DevTools | |||
Lighthouse | TBT 사용) | (대신
실험실 측정은 우수한 환경을 제공하는 데 필수적이지만 현장 측정을 대체할 수는 없습니다.
사이트의 성능은 사용자의 기기 기능, 네트워크 상태, 기기에서 실행 중인 다른 프로세스, 페이지와 상호작용하는 방식에 따라 크게 달라질 수 있습니다. 실제로 각 Core Web Vitals 측정항목의 점수는 사용자 상호작용의 영향을 받을 수 있습니다. 현장 측정만이 전체 사진을 정확하게 캡처할 수 있습니다.
점수 개선을 위한 권장사항
다음 가이드에서는 각 Core Web Vitals의 페이지를 최적화하는 방법에 관한 구체적인 권장사항을 제공합니다.
핵심 성능 보고서를 개선하는 방법에는 여러 가지가 있으며 각 접근 방식에는 상황에 따라 다양한 수준의 영향, 관련성, 사용 편의성이 있습니다. Chrome팀의 주요 권장사항을 확인하려면 Core Web Vitals를 개선하는 가장 효과적인 방법을 참고하세요.
기타 웹 바이탈
Core Web Vitals는 우수한 사용자 환경을 이해하고 제공하는 데 중요한 측정항목이지만 이를 보완하는 다른 측정항목도 있습니다.
이러한 다른 측정항목은 환경의 더 많은 부분을 포착하거나 특정 문제를 진단하는 데 도움이 되도록 핵심 성능 보고서의 세 가지 측정항목을 대리하거나 보완하는 측정항목으로 사용할 수 있습니다.
예를 들어 첫 바이트까지의 시간 (TTFB) 및 첫 콘텐츠 페인트 (FCP) 측정항목은 모두 로드 환경의 중요한 측면이며 LCP 문제 (각각 느린 서버 응답 시간 또는 렌더링 차단 리소스)를 진단하는 데 유용합니다.
마찬가지로 총 차단 시간 (TBT)과 같은 측정항목은 INP에 영향을 줄 수 있는 잠재적인 상호작용 문제를 포착하고 진단하는 데 중요한 실험실 측정항목입니다. 하지만 현장 측정이 불가능하거나 사용자 중심 결과를 반영하지 않으므로 Core Web Vitals 세트에 포함되지 않습니다.
웹 바이탈 변경사항
웹 바이탈과 Core Web Vitals는 현재 개발자가 웹 전반의 환경 품질을 측정하는 데 사용할 수 있는 가장 우수한 신호이지만, 이러한 신호는 완벽하지 않으며 향후 개선 또는 추가가 있을 것으로 예상됩니다.
핵심 성능 보고서는 모든 웹페이지와 관련이 있으며 관련 Google 도구에 표시됩니다. 이러한 측정항목의 변경사항은 광범위한 영향을 미칩니다. 따라서 개발자는 Core Web Vitals의 정의와 기준점이 안정적이고 업데이트가 사전 공지되고 예측 가능한 연간 주기로 이루어질 것으로 예상해야 합니다.
다른 웹 바이탈은 컨텍스트 또는 도구에 따라 다르며 핵심 웹 바이탈보다 실험적일 수 있습니다. 따라서 정의와 기준점이 더 자주 변경될 수 있습니다.
모든 웹 바이탈의 변경사항은 이 공개 CHANGELOG에 명확하게 문서화됩니다.