Performance 항목에서는 웹 성능을 측정한다.
Google Lighthouse가 이 페이지가 더 빠를 수 있는 리스트를 제안하는 것
- Eliminate render-blocking resources
- Properly size images
- Defer offscreen images
- Minify CSS
- Minify JavaScript
- Remove unused CSS
- Efficiently encode images
- Serve images in modern formats
- Enable text compression
- your webpage load performance.
- Preconnect to required origins
- Reduce server response times (TTFB)
- Avoid multiple page redirects
- speed and how to avoid them.
- Preload key requests
- Use video formats for animated content
- Reduce the impact of third-party code
- Avoid non-composited animations
- Lazy load third-party resources with facades
출처: https://developer.chrome.com/en/docs/lighthouse/performance/
항목이 많으니 3개만 알아보자.
사용하지 않는 JavaScript를 줄이면 렌더링 차단 동작을 줄여 페이지 로드 속도를 높이고 방문자의 페이지 경험을 개선할 수 있다.
사용하지 않는 JavaScript는 브라우저 실행 시간을 불필요하게 늘려 페이지 로드 속도를 늦춘다.
트리 쉐이킹
은 데드 코드 제거를 위해 JavaScript 컨텍스트에서 일반적으로 사용되는 용어이다.LCP 이미지를 미리 로드하면 페이지 로드 초기에 페이지가 시각적으로 완성되어 페이지 콘텐츠가 더 빠르게 로드되고 있음을 방문자에게 알릴 수 있다.
뷰포트를 차지하는 가장 큰 콘텐츠(이미지 또는 텍스트 블록)의 렌더 시간을 측정하며, 이를 이용해 주요 콘텐츠가 유저에게 보이는 시간까지를 가늠할 수 있다.
HTML 헤더의 링크 태그를 사용하여 미리 로드할 수 있다.
<head>
HTML에 다음 코드를 추가한다.
<link rel = "preload" href = "/path/to/image.jpg" as = "이미지" >
다음과 같이 더 빠른 이미지 로드를 위해 반응형 이미지와 함께 사용할 수도 있 다.
<link rel="preload">
<link rel = "preload" as = "image" href = "/path/to/image.jpg"
imagesrcset = "image_400px.jpg 400w, image_800px.jpg 800w, image_1600px.jpg 1600w"
이미지 크기 = "50vw" />
레이아웃과 방문자의 장치에 따라 스크롤 없이 볼 수 있는 콘텐츠를 렌더링하는 데 필요하지 않은 CSS 규칙을 로드하면 측정 및 인식 측면에서 페이지 성능에 큰 영향을 미칠 수 있으며,전반적으로 사용하지 않는 CSS의 양을 줄이면 브라우저 실행 시간 과 소비되는 대역폭이 줄어들어 페이지 로딩 속도가 빨라진다.