피드로 돌아가기
How I Added Pre-Rendering to a Vite Multi-Page App Without SSR
Dev.toDev.to
Frontend

빌드 시간 0.3초 증가로 1,449개 페이지 SEO 가시성 확보

How I Added Pre-Rendering to a Vite Multi-Page App Without SSR

Bright Agbomado2026년 5월 11일4intermediate

Context

런타임에 JS로 콘텐츠를 주입하는 Vite MPA 구조로 인해 JS 미지원 크롤러의 인덱싱 불가 문제 발생. Cloudflare Pages 정적 호스팅 환경 및 기존 코드베이스 유지 필요성으로 인해 SSR 및 SSG 프레임워크 전환이 불가능한 제약 상황임.

Technical Solution

  • Vite Build Plugin을 확장하여 빌드 단계에서 i18n 딕셔너리 데이터를 정적 HTML에 직접 주입하는 Hybrid Pre-rendering 설계
  • 전체 UI 재구현 대신 H1, Description, FAQ 등 SEO 핵심 메타데이터만 선택적으로 주입하여 리소스 낭비 최소화
  • 빌드 시점에 다국어 i18n 데이터를 참조하여 언어별 HTML 파일의 Title 및 Meta 태그를 동적으로 생성하는 로직 구현
  • JS 실행 전 정적 콘텐츠를 먼저 보여주고 실행 후 인터랙티브 UI로 교체하는 하이브리드 렌더링 전략 채택
  • FOUC 현상 방지를 위해 경로별 템플릿 기반의 URL 구조 최적화 수행
  • Cloudflare Browser Integrity Check 설정을 통한 소셜 스크래퍼 접근 제어 최적화

- JS 의존적 렌더링 환경에서 크롤러 접근성 확인을 위한 View-source 검증 단계 추가 - SSR 도입 전, 빌드 타임에 정적 텍스트만 주입하는 가벼운 Pre-rendering 가능성 검토 - 다국어 서비스의 경우 HTML 언어 설정과 메타데이터의 일관성 검증 로직 구현 - 인프라 수준의 Bot Protection 설정이 외부 API 및 스크래퍼에 미치는 영향 확인

원문 읽기