MERJ와 Vercel의 공동 연구팀이 100,000건 이상의 Googlebot 크롤 데이터를 분석해 JavaScript SEO에 대한 4가지 주요 오해를 실증적으로 검증했다. 현대 Googlebot이 React Server Components·스트리밍·CSR을 포함한 모든 HTML 페이지를 완전히 렌더링함을 실측 데이터로 확인했다.
핵심 포인트- 100% 렌더링: 100,000건 이상의 요청에서 모든 HTML 페이지가 완전 렌더링됨 (CSR, SSR, RSC 스트리밍 포함)
- 렌더링 지연: 중앙값 10초, 90th 퍼센타일 ~3시간 — 렌더링 큐가 SEO에 미치는 영향은 예상보다 작음
- `noindex` 주의: 초기 HTML에 포함된 noindex만 유효, 클라이언트 사이드에서 제거해도 Google은 렌더링 자체를 건너뜀
- 비렌더링 JS 페이로드 내 링크도 발견: RSC payload 등 비렌더 JS에서도 URL-like 문자열로 링크 수집 (인코딩 URL 제외)
- 쿼리 스트링이 있는 URL은 렌더링 지연 증가: 90th 퍼센타일 기준 일반 URL ~2.5시간 vs 쿼리 URL ~8.5시간
- sitemap.xml 정기 업데이트가 렌더링 전략 간 페이지 발견 속도 차이를 상쇄
상세 정리- 연구 방법론: Edge Middleware로 봇 요청 감지 + JS beacon으로 렌더링 완료 시점 측정, 37,000건 이상 서버-비콘 매칭
- Googlebot 버전: 현재 최신 안정 Chrome/Chromium 사용, 2015~2018 구버전 대비 현대 JS 기능 완전 지원
- 정적 렌더링(무 상태): 쿠키·세션 미유지, 탭 클릭·쿠키 배너 등 상호작용 없음 — 개인화는 stateful 방법으로 구현 필요
- 자산 캐싱: Google은 HTTP Cache-Control 무시하고 내부 휴리스틱으로 자산 신선도 판단
- 304 상태 코드: 원본 200 콘텐츠로 렌더링, 3xx/4xx/5xx는 렌더링 안 함
- RSC 스트리밍: Googlebot이 incremental streaming을 완전히 렌더링, SEO 영향 없음
- 링크 발견 vs 가치 평가 분리: 발견은 렌더 전에도 가능, 가치 평가는 렌더 완료 후 수행
- 인코딩된 URL(`https%3A%2F%2F...`): RSC 페이로드에서 발견 안 됨, 일반 형태로 포함해야 수집
- 크롤 효율성: SSG/ISR > SSR >> CSR 순서
- 콘텐츠 업데이트 빈도가 렌더링 우선순위에 영향: 자주 변경되는 `/docs` 경로가 더 짧은 렌더링 지연
왜 읽나실측 데이터로 검증된 Googlebot의 렌더링 동작을 이해하면, 막연한 "SSR이 SEO에 좋다"는 통념 대신 실제 크롤 예산과 렌더링 우선순위에 근거한 아키텍처 결정을 내릴 수 있다.