스택 실행 가이드 · 스냅샷 2026년 10월 23일
Next.js: 준비도 실행 가이드
이 플랫폼 또는 프레임워크에서 측정한 사이트 11,061개가 잘하고 있는 부분과 부족한 부분, 그리고 각 미비점을 해소하는 Next.js 전용 조치.
- 측정한 사이트
- 11,061
- 준비 상태 지수 중앙값
- 70/100
- 이 스택의 프로필
- 1,842
홈페이지 HTML 및 헤더에서 감지됨
전체 사이트: 64
상위 5만 개 사이트
영역별 준비도
활성화
84/100
전체 사이트 77
강화
61/100
전체 사이트 55
가속화
72/100
전체 사이트 63
복구
7/100
전체 사이트 11
Next.js 실행 가이드
영향도순으로 정렬한 미비점과, 해당하는 경우 플랫폼별 조치 단계.
security.txt 게시
7.4% 관찰됨 · 전체 사이트 5.5%
RFC 9116에서 요구하는 대로 최소한 Contact 및 Expires 필드를 포함하여 /.well-known/security.txt를 게시하고, 만료되기 전에 검토하세요.
head 요소에 렌더링 차단 스크립트 없음
32% 관찰됨 · 전체 사이트 44%
DOM이 필요한 스크립트에는 defer를, 분석 도구처럼 독립적인 스크립트에는 async를 추가하거나, 스크립트를 body의 끝으로 옮기세요.
Next.js에서: 적절한 로딩 전략과 함께 next/script 컴포넌트를 사용하세요.
최신 이미지 형식 사용
44% 관찰됨 · 전체 사이트 40%
이미지 CDN을 이용하거나 빌드 시 두 형식을 모두 생성하여, JPEG 또는 PNG 대체 이미지와 함께 WebP 또는 AVIF를 제공하세요.
Next.js에서: next/image 컴포넌트가 최적화된 형식을 자동으로 제공합니다.
CAA 레코드로 인증서 발급 주체 제한
18% 관찰됨 · 전체 사이트 11%
실제로 사용하는 모든 CA를 지정하는 CAA 레코드를 게시하세요. CDN이 관리형 인증서에 사용하는 CA도 포함해야 합니다. 보고서를 받으려면 iodef 연락처를 추가하세요.
HSTS 최소 1년 유지
53% 관찰됨 · 전체 사이트 31%
HTTPS 응답에 Strict-Transport-Security를 전송하세요. 짧은 max-age(예: 300초)로 시작하고, 모든 하위 도메인이 HTTPS로 작동하는지 확인한 다음 31536000까지 단계적으로 늘리세요. 모든 하위 도메인이 HTTPS를 사용할 때만 includeSubDomains를 추가하세요. HSTS 사전 로드는 선택 사항이며 되돌리기 어렵습니다. hstspreload.org 자체도 이를 기본적으로 권장하지 않습니다.
Next.js에서: next.config.js의 headers() 옵션에 모든 경로에 적용할 헤더를 추가하세요.
DMARC 정책으로 격리 또는 거부 적용
46% 관찰됨 · 전체 사이트 31%
먼저 p=none과 보고서 수신 주소를 지정하여 DMARC를 게시하세요. SPF 또는 DKIM 정렬에 실패하는 정상 발신자의 문제를 해결한 다음, quarantine으로 전환하고 마지막으로 reject로 전환하세요.
DNSSEC 서명 적용
8% 관찰됨 · 전체 사이트 8.1%
DNS 제공업체에서 DNSSEC를 활성화한 다음, 도메인 등록기관에 DS 레코드를 추가하세요. 제공업체 변경은 신중하게 계획하세요. 오래된 DS 레코드가 남아 있으면 도메인 이름 해석이 실패할 수 있습니다.
HTTP/3 지원 공표
34% 관찰됨 · 전체 사이트 36%
CDN에서 HTTP/3를 활성화하세요. 브라우저는 자동으로 HTTP/2로 전환하므로 위험이 낮습니다.
Next.js 사이트가 앞서는 영역
- 정적 파일을 30일 이상 캐시관측 결과 84%전체 사이트 50%
- 화면 밖 이미지 지연 로딩관측 결과 91%전체 사이트 61%
- HSTS 최소 1년 유지53% 관찰됨전체 사이트 31%
- DMARC 정책으로 격리 또는 거부 적용관측 결과 46%전체 사이트 31%
Next.js의 전체 31개 점검 항목
| 점검 항목 | 영역 | 관찰됨 | 전체 사이트 | 측정됨 |
|---|---|---|---|---|
| HTTP 요청을 HTTPS로 전환 | 강화 | 95% | 91% | 10,301 |
| HSTS 최소 1년 유지 | 강화 | 53% | 31% | 11,061 |
| TLS 1.3 협상 완료 | 강화 | 95% | 92% | 10,908 |
| 인증서의 남은 유효기간이 14일 초과 | 강화 | >99% | >99% | 10,908 |
| 인증서 유효기간이 100일 이하 | 강화 | 64% | 75% | 10,908 |
| CAA 레코드로 인증서 발급 주체 제한 | 강화 | 18% | 11% | 11,051 |
| DNSSEC 서명 적용 | 강화 | 8% | 8.1% | 11,053 |
| security.txt 게시 | 강화 | 7.4% | 5.5% | 10,626 |
| DMARC 정책으로 격리 또는 거부 적용 | 강화 | 46% | 31% | 11,061 |
| X-Content-Type-Options: nosniff | 강화 | 47% | 48% | 11,061 |
| 프레임 삽입 제한 | 강화 | 50% | 49% | 11,061 |
| 콘텐츠 보안 정책 존재 | 강화 | 35% | 31% | 11,061 |
| Referrer-Policy 설정 | 강화 | 35% | 23% | 11,061 |
| HTTP/2 협상 완료 | 가속화 | 94% | 89% | 10,908 |
| HTTP/3 지원 공표 | 가속화 | 34% | 36% | 11,061 |
| HTML 압축 | 가속화 | 99% | 93% | 11,061 |
| 정적 파일을 30일 이상 캐싱 | 가속화 | 84% | 50% | 10,311 |
| 최신 이미지 형식 사용 | 가속화 | 44% | 40% | 9,522 |
| 화면 밖 이미지 지연 로딩 | 가속화 | 91% | 61% | 8,938 |
| head 요소에 렌더링 차단 스크립트 없음 | 가속화 | 32% | 44% | 11,061 |
| robots.txt 게시 | 활성화 | 90% | 79% | 10,666 |
| XML 사이트맵 발견 가능 | 활성화 | 84% | 73% | 10,960 |
| IPv6을 통한 접근 가능 | 활성화 | 42% | 44% | 11,058 |
| 대표 URL 선언 | 활성화 | 76% | 70% | 11,061 |
| 메타 설명 작성 | 활성화 | 95% | 82% | 11,061 |
| 모바일 뷰포트 구성 | 활성화 | >99% | 96% | 11,061 |
| 구조화된 데이터 존재 | 활성화 | 56% | 53% | 11,061 |
| 소셜 미리보기 이미지 설정 | 활성화 | 68% | 55% | 11,061 |
| 페이지 언어 선언 | 활성화 | 96% | 91% | 11,061 |
| 홈페이지까지 리디렉션 최대 1회 | 활성화 | 97% | 98% | 11,061 |
| 여러 제공업체에 네임서버 분산 | 복구 | 7% | 11% | 11,041 |