스택 실행 가이드 · 스냅샷 2026년 10월 23일
Next.js on Vercel: 준비도 실행 가이드
이 스택에서 측정한 2,044개 사이트가 잘하고 있는 부분, 부족한 부분, 그리고 각 미비점을 해소하는 Next.js on Vercel별 조치 단계.
- 측정한 사이트
- 2,044
- 준비 상태 지수 중앙값
- 73/100
- 이 스택의 프로필
- 149
홈페이지 HTML 및 헤더에서 감지됨
전체 사이트: 64
상위 5만 개 사이트
영역별 준비도
활성화
85/100
전체 사이트 77
강화
69/100
전체 사이트 55
가속화
72/100
전체 사이트 63
복구
5/100
전체 사이트 11
Next.js on Vercel 실행 가이드
영향도순으로 정렬한 미비점과, 해당하는 경우 플랫폼별 조치 단계.
head 요소에 렌더링 차단 스크립트 없음
23% 관찰됨 · 전체 사이트 44%
DOM이 필요한 스크립트에는 defer를, 분석 도구처럼 독립적인 스크립트에는 async를 추가하거나, 스크립트를 body의 끝으로 옮기세요.
Next.js에서: 적절한 로딩 전략과 함께 next/script 컴포넌트를 사용하세요.
security.txt 게시
9.4% 관찰됨 · 전체 사이트 5.5%
RFC 9116에서 요구하는 대로 최소한 Contact 및 Expires 필드를 포함하여 /.well-known/security.txt를 게시하고, 만료되기 전에 검토하세요.
HTTP/3 지원 공표
14% 관찰됨 · 전체 사이트 36%
CDN에서 HTTP/3를 활성화하세요. 브라우저는 자동으로 HTTP/2로 전환하므로 위험이 낮습니다.
최신 이미지 형식 사용
43% 관찰됨 · 전체 사이트 40%
이미지 CDN을 이용하거나 빌드 시 두 형식을 모두 생성하여, JPEG 또는 PNG 대체 이미지와 함께 WebP 또는 AVIF를 제공하세요.
Next.js에서: next/image 컴포넌트가 최적화된 형식을 자동으로 제공합니다.
Vercel에서: Vercel Image Optimization은 최신 형식을 제공합니다.
DMARC 정책으로 격리 또는 거부 적용
47% 관찰됨 · 전체 사이트 31%
먼저 p=none과 보고서 수신 주소를 지정하여 DMARC를 게시하세요. SPF 또는 DKIM 정렬에 실패하는 정상 발신자의 문제를 해결한 다음, quarantine으로 전환하고 마지막으로 reject로 전환하세요.
DNSSEC 서명 적용
10% 관찰됨 · 전체 사이트 8.1%
DNS 제공업체에서 DNSSEC를 활성화한 다음, 도메인 등록기관에 DS 레코드를 추가하세요. 제공업체 변경은 신중하게 계획하세요. 오래된 DS 레코드가 남아 있으면 도메인 이름 해석이 실패할 수 있습니다.
콘텐츠 보안 정책 존재
34% 관찰됨 · 전체 사이트 31%
Content-Security-Policy-Report-Only로 시작하여 어떤 기능에 문제가 생길지 확인하고, 몇 주에 걸쳐 정책을 강화한 다음 실제로 적용하세요.
Next.js에서: Next.js는 미들웨어를 사용하는 nonce 기반 CSP를 문서로 안내합니다.
프레임 삽입 제한
46% 관찰됨 · 전체 사이트 49%
Content-Security-Policy: frame-ancestors 'self'(또는 신뢰할 수 있는 출처 목록)를 전송하세요. X-Frame-Options: SAMEORIGIN은 구형 브라우저를 지원합니다.
Next.js에서: next.config.js의 headers()에 추가하세요.
Next.js on Vercel 사이트가 앞서는 영역
- HSTS 최소 1년 유지97% 관찰됨전체 사이트 31%
- 정적 파일을 30일 이상 캐시관측 결과 98%전체 사이트 50%
- CAA 레코드로 인증서 발급 주체 제한관측 결과 49%전체 사이트 11%
- 화면 밖 이미지 지연 로딩관측 결과 95%전체 사이트 61%
Next.js on Vercel의 전체 31개 점검 항목
| 점검 항목 | 영역 | 관찰됨 | 전체 사이트 | 측정됨 |
|---|---|---|---|---|
| HTTP 요청을 HTTPS로 전환 | 강화 | >99% | 91% | 1,945 |
| HSTS 최소 1년 유지 | 강화 | 97% | 31% | 2,044 |
| TLS 1.3 협상 완료 | 강화 | >99% | 92% | 2,024 |
| 인증서의 남은 유효기간이 14일 초과 | 강화 | >99% | >99% | 2,024 |
| 인증서 유효기간이 100일 이하 | 강화 | 93% | 75% | 2,024 |
| CAA 레코드로 인증서 발급 주체 제한 | 강화 | 49% | 11% | 2,044 |
| DNSSEC 서명 적용 | 강화 | 10% | 8.1% | 2,044 |
| security.txt 게시 | 강화 | 9.4% | 5.5% | 1,965 |
| DMARC 정책으로 격리 또는 거부 적용 | 강화 | 47% | 31% | 2,044 |
| X-Content-Type-Options: nosniff | 강화 | 40% | 48% | 2,044 |
| 프레임 삽입 제한 | 강화 | 46% | 49% | 2,044 |
| 콘텐츠 보안 정책 존재 | 강화 | 34% | 31% | 2,044 |
| Referrer-Policy 설정 | 강화 | 33% | 23% | 2,044 |
| HTTP/2 협상 완료 | 가속화 | >99% | 89% | 2,024 |
| HTTP/3 지원 공표 | 가속화 | 14% | 36% | 2,044 |
| HTML 압축 | 가속화 | >99% | 93% | 2,044 |
| 정적 파일을 30일 이상 캐싱 | 가속화 | 98% | 50% | 1,972 |
| 최신 이미지 형식 사용 | 가속화 | 43% | 40% | 1,752 |
| 화면 밖 이미지 지연 로딩 | 가속화 | 95% | 61% | 1,641 |
| head 요소에 렌더링 차단 스크립트 없음 | 가속화 | 23% | 44% | 2,044 |
| robots.txt 게시 | 활성화 | 91% | 79% | 1,983 |
| XML 사이트맵 발견 가능 | 활성화 | 87% | 73% | 2,037 |
| IPv6을 통한 접근 가능 | 활성화 | 23% | 44% | 2,044 |
| 대표 URL 선언 | 활성화 | 77% | 70% | 2,044 |
| 메타 설명 작성 | 활성화 | 96% | 82% | 2,044 |
| 모바일 뷰포트 구성 | 활성화 | 100% | 96% | 2,044 |
| 구조화된 데이터 존재 | 활성화 | 60% | 53% | 2,044 |
| 소셜 미리보기 이미지 설정 | 활성화 | 73% | 55% | 2,044 |
| 페이지 언어 선언 | 활성화 | 98% | 91% | 2,044 |
| 홈페이지까지 리디렉션 최대 1회 | 활성화 | 98% | 98% | 2,044 |
| 여러 제공업체에 네임서버 분산 | 복구 | 5.2% | 11% | 2,042 |