성능 · 사용성

CLS란?

Cumulative Layout Shift

페이지가 로드되는 동안 화면 요소가 예기치 않게 밀리는 정도를 나타내는 코어 웹 바이탈 지표입니다. 0.1 이하가 "좋음" 기준이며, 이미지·광고 영역의 크기를 미리 지정하면 줄일 수 있습니다.

CLS가 나빠지는 원인

레이아웃 이동은 이미 그려진 요소가 뒤늦게 위치를 바꿀 때 생기며, 퍼스트뷰에서 일어나면 사용자가 바로 불편을 느낍니다. 글을 읽다가 문단이 갑자기 내려가거나, 버튼을 누르려는 순간 광고가 끼어들어 다른 곳을 누르게 되는 경험이 대표적입니다. 주요 원인은 다음과 같습니다.

  • width·height 속성이 없는 이미지와 동영상: 파일을 받기 전까지 자리를 차지하지 않다가 로드된 뒤 본문을 밀어냅니다.
  • 크기를 예약하지 않은 광고·임베드·iframe
  • 페이지 위쪽에 뒤늦게 삽입되는 배너, 알림 띠, 추천 영역
  • 웹폰트가 로드되면서 글자 폭이 바뀌어 줄바꿈이 달라지는 경우

사용자가 클릭하거나 키를 누른 직후 0.5초 안에 일어난 이동은 의도된 변화로 보고 CLS에서 제외합니다. 아코디언을 펼쳐 아래 내용이 밀리는 것은 문제가 되지 않습니다.

CLS를 줄이는 방법

이미지와 동영상에는 width·height 속성을 넣거나 CSS aspect-ratio로 비율을 지정해 미리 자리를 확보합니다. 광고나 위젯이 들어갈 영역에는 최소 높이를 지정하고, 새 콘텐츠는 기존 콘텐츠 위가 아니라 아래에 추가합니다. Lazy load로 불러오는 이미지도 크기를 지정해 두면 이동이 생기지 않습니다.

개발 환경에서는 문제가 없어 보여도 실제 사용자 환경에서는 광고나 느린 네트워크 때문에 이동이 생길 수 있습니다. 페이지 스피드 인사이트의 필드 데이터로 실제 수치를 확인하고 진단 항목에서 이동을 일으킨 요소를 찾습니다. LCP·INP와 마찬가지로 75번째 백분위수 값으로 판정합니다.

관련 용어

성능 · 사용성

LCP

화면에서 가장 큰 이미지나 텍스트 블록이 표시되기까지 걸린 시간을 재는 코어 웹 바이탈 지표입니다. 2.5초 이하가 "좋음" 기준입니다.

성능 · 사용성

INP

클릭·탭·키 입력 같은 조작에 페이지가 화면으로 반응하기까지 걸린 시간을 재는 코어 웹 바이탈 지표입니다. 2024년 3월 FID를 대체했으며 200ms 이하가 "좋음" 기준입니다.

성능 · 사용성

퍼스트뷰

페이지를 열었을 때 스크롤하지 않고 처음 보이는 화면 영역입니다. 사용자가 머물지 떠날지 판단하는 구간이라 핵심 메시지와 검색 의도에 대한 답을 여기에 둡니다. LCP 요소도 대부분 이 영역에 있습니다.

성능 · 사용성

Lazy load

화면 밖의 이미지·동영상을 사용자가 스크롤해 가까워질 때 불러오는 기법입니다. 초기 로딩을 빠르게 하지만, 퍼스트뷰의 주요 이미지에 적용하면 LCP가 늦어지므로 화면 아래 요소에만 씁니다. HTML의 loading="lazy" 속성으로 구현할 수 있습니다.

성능 · 사용성

페이지 스피드 인사이트

구글이 제공하는 무료 페이지 속도 진단 도구(PageSpeed Insights)입니다. 실제 사용자 데이터(CrUX)의 코어 웹 바이탈과 Lighthouse 측정 결과를 함께 보여주고 개선 항목을 제안합니다.

관련 서비스 → SEO/GEO 교육