Communitygithub.com

웹사이트 성능 개선

사이트의 외형 변경 없이 속도와 Google PageSpeed / Core Web Vitals 점수(LCP, TBT/INP, CLS, FCP)를 향상시킵니다. 사용자가 PageSpeed, Lighthouse, 느린 페이지, 모바일 점수, Core Web Vitals 또는 무거운 스크립트를 언급할 때 사용합니다.

웹사이트 성능 개선란 무엇인가요?

이 스킬은 웹사이트 속도 최적화 전문 에이전트를 위한 것으로, Google PageSpeed Insights 및 Core Web Vitals 점수(LCP, TBT/INP, CLS, FCP)를 개선하는 체계적인 방법을 제공합니다. 주요 기능은 시각적 디자인을 유지하면서 성능을 향상시키는 것으로, 먼저 브랜드 가이드를 로드하여 속도 수정이 브랜드 외관을 변경하지 않도록 하고, 변경 안전 절차를 따릅니다. 방법론은 PageSpeed Insights 모바일 기준 측정, 보고서 분석(긴 작업, 부팅 시간, 렌더링 차단 리소스 등), 한 번에 하나의 원인 수정 후 재측정, 그리고 가능한 경우 로컬 A/B 테스트로 구성됩니다. 일반적으로 가장 큰 영향을 미치는 수정 사항으로는 서드파티 및 플랫폼 무게 줄이기(원치 않는 위젯 제거, 지연 로딩, 중복 제거), JavaScript 로드 최적화(캐러셀 설정 개선, 페이지 빌더 플러그인 관리), LCP 개선(배경 이미지 프리로드, fetchpriority 사용), 첫 페인트/렌더링 차단 해결(스타일시트 분할, 폰트 font-display 설정), 레이아웃 시프트 방지(이미지, 임베드에 공간 예약) 등이 포함됩니다. 이 스킬은 최종 보고서에 페이지별 전/후 수치, 필드 데이터 상태, 변경 사항 및 소유자 결정이 필요한 사항(예: 서드파티 트레이드오프)을 제공하며, 실험실 점수는 변동될 수 있으므로 트렌드와 필드 데이터를 더 중요하게 강조합니다.

지원 대상~Claude Code~Codex CLI~Cursor
npx skills add https://github.com/4RCustoms/jordan-harris-ux-ui-seo-website-skill/tree/main/skills/website-performance

즐겨 사용하는 AI에게 물어보기

이 에이전트 스킬이 미리 로드된 새 채팅을 엽니다.

문서

웹사이트 성능

brand-guide를 로드하여 속도 수정이 브랜드 외관을 변경하지 않도록 하고, website-change-safety 절차를 따릅니다.

방법

  1. PageSpeed Insights 모바일 기준 측정: 페이지당 2~3회 실행, 필드 데이터 포함. LCP 요소를 기록합니다.
  2. 보고서에서 원인 찾기: 긴 작업, 부팅 시간/서드파티 요약, 렌더링 차단 요청, LCP 분석(로드 지연 vs 렌더링 지연), DOM 크기, 강제 리플로우.
  3. 한 번에 하나의 원인을 수정하고 다시 측정하여 도움이 되는 것만 유지합니다.
  4. 가능하면 게시 전에 로컬에서 A/B 테스트: 요청 가로채기를 통해 라이브 페이지에 새로운 JS/HTML/CSS를 제공하고, 두 버전을 동일한 방식으로 제공합니다(압축되지 않은 로컬 파일과 gzip 압축된 라이브 파일을 비교하면 시뮬레이션된 타이밍이 왜곡됨). 메인 스레드 시간, DOM 크기, 스타일/레이아웃 시간을 비교합니다.

실제로 점수를 올린 수정 사항 (먼저 확인할 것)

서드파티 및 플랫폼 무게 (보통 가장 큼)

  • 계속 로드되는 제거된 앱. 남아 있는 페이지 빌더 위젯과 스크립트 항목을 제거합니다. 일부 플랫폼은 앱이 제거된 후에도 통합 스크립트(예: 50개 이상의 파일로 구성된 비주얼 에디터 런타임)를 계속 삽입합니다. 채널/스토어프론트 수준의 "비활성화" 스위치를 찾거나 플랫폼 지원팀에 문의하세요.
  • 모든 페이지가 아닌 필요할 때만 로드: 동영상 플레이어(포스터 이미지 + 재생 버튼을 표시하고 클릭 시 iframe 생성), 캡차(양식이 열릴 때 로드), 채팅 위젯, 로열티/리워드 위젯(필요한 페이지만), 접힌 부분 아래의 리뷰 위젯.
  • 페이지 빌더를 통해 추가된 임베디드 동영상 블록은 테마에서 지연시킬 수 없습니다. 해당 동영상을 클릭하여 로드하는 퍼사드를 사용하는 테마 자체 동영상 영역으로 이동하세요.
  • 중복: 두 개의 분석 라이브러리, 동일한 태그가 두 번, 이전 픽셀과 새 픽셀.
  • 소유자의 승인 없이 광고/분석 태그를 상호작용할 때까지 지연시키지 마세요. 데이터가 변경됩니다.

로드 시 너무 많은 작업을 수행하는 JavaScript

  • 캐러셀/슬라이더: 데스크톱 우선 슬라이더 설정은 종종 데스크톱 레이아웃을 구축한 다음 휴대폰용으로 다시 빌드합니다. 모바일 우선 설정으로 전환하세요. "무한/루프" 모드는 모든 슬라이드를 2~3배 복제하여 수백 개의 추가 요소를 생성합니다. 필요하지 않은 곳에서는 루핑을 끄세요. 첫 화면 아래에서 시작하는 슬라이더는 뷰포트 근처에 올 때만 초기화하고(IntersectionObserver 사용), 초기화되지 않은 행이 동일한 높이로 표시되도록 CSS를 적용하여 점프가 발생하지 않도록 합니다.
  • 페이지 빌더 및 플러그인 (특히 WordPress/Wix/Squarespace): 각 플러그인은 모든 페이지에 자체 CSS/JS를 추가할 수 있습니다. 사용하지 않는 것은 비활성화하고 나머지는 필요한 곳에서만 로드하세요.
  • 숨겨진 중복 마크업: 예: 그리드와 모든 제품의 숨겨진 목록 보기를 모두 렌더링하는 목록 페이지. 하나만 렌더링하세요.
  • 남아 있는 디버그 로깅 및 여전히 실행되는 데드 코드 경로를 제거하세요.

최대 콘텐츠 페인트 (LCP)

  • 실제 LCP 요소를 식별하세요. CSS 배경 이미지인 경우 브라우저가 늦게 찾습니다. 해당 페이지에만 <link rel="preload" as="image" fetchpriority="high">를 추가하고, URL이 CSS가 확인하는 URL과 바이트 단위로 동일한지 확인하세요(그렇지 않으면 두 번 다운로드됨).
  • 보이는 첫 번째 이미지 행에만 fetchpriority="high"를 설정하세요(예: 2열 휴대폰 그리드에서 2개). 더 많은 높은 우선순위 이미지는 실제 LCP 이미지와 대역폭을 나누게 됩니다.
  • LCP 이미지를 절대 지연 로드하지 마세요. 접힌 부분 아래의 모든 것은 지연 로드하세요.
  • 플랫폼이 이미 제공하는 형식을 확인하세요(많은 CDN이 자동으로 WebP/AVIF로 변환). 이미지를 다시 저장해도 얻는 것이 없을 수 있습니다. 큰 개선은 과도하게 큰 원본 이미지와 잘못된 sizes에서 비롯됩니다.

첫 페인트 / 렌더링 차단

  • 테마의 기본 스타일시트가 일반적으로 병목 현상입니다. 페이지별 CSS를 분리하거나 중요한 CSS를 인라인할 수 있지만, 이는 더 크고 위험한 프로젝트입니다. 제안은 하되, 몰래 포함시키지 마세요.
  • <head>에 있는 모든 추가 렌더링 차단 스타일시트 또는 동기 스크립트(종종 앱에 의해 삽입됨)는 지연을 추가합니다.
  • 폰트: font-display 선택을 의도적으로 유지하세요(아이콘 폰트는 block이 필요하고, 텍스트 폰트는 대체 메트릭이 레이아웃 변경을 피할 만큼 충분히 가까운 경우에만 swap할 수 있음).

레이아웃 변경 (CLS)

  • 이미지(너비/높이), 임베드(aspect-ratio 상자), 늦은 배너 및 위젯을 위한 공간을 예약하세요.
  • JS로 초기화되는 모든 것은 동일한 크기의 사전 초기화 CSS가 있어야 합니다.

보고서

페이지별 전/후 수치(범위), 필드 데이터 상태, 변경된 사항 및 소유자의 결정이 필요한 사항(서드파티 트레이드오프)입니다. 실험실 점수는 변동될 수 있으며, 트렌드와 필드 데이터가 단일 실행보다 더 중요하다는 점을 상기시킵니다.

Individual skills in this repo

This repo contains 2 individual skills — each has its own dedicated page.

관련 스킬