/JavaScript SEO
📘개념⭐️ Pillar

JavaScript SEO

최종 업데이트:

정의

JavaScript SEO는 JavaScript(JS)로 구현된 웹 페이지가 검색엔진 크롤러와 AI 봇에 올바르게 발견·색인·평가될 수 있도록 최적화하는 기술 SEO의 한 영역이다.

2010년대 React, Vue, Angular 같은 JavaScript 프레임워크가 보편화되면서 클라이언트 사이드 렌더링(CSR)이 증가했고, 이로 인해 봇이 콘텐츠를 인식하지 못하는 문제가 심화됐다.


요약

JavaScript SEO 핵심: HTML 소스(Ctrl+U)에 콘텐츠가 있으면 봇에게 보인다. 없으면 CSR이고, 구글은 지연 후 보지만 AI 봇은 거의 보지 못한다. 해결책은 SSR 또는 SSG. Next.js 기반 사이트는 기본적으로 SSR/SSG를 제공해 JavaScript SEO 문제에서 자유롭다.


JavaScript SEO가 문제가 되는 이유

1. 봇의 JavaScript 처리 방식 차이

모든 봇이 JavaScript를 동일하게 처리하지 않는다:

JS 실행비고
GooglebotO (지연 가능)2단계 렌더링 큐
Bing Bot부분적제한적 JS 실행
GPTBotX (대부분)HTML만 처리
ClaudeBotX (대부분)HTML만 처리
PerplexityBotX (대부분)HTML만 처리
네이버 Yeti부분적제한적 JS 실행

2. Googlebot의 2단계 렌더링

Googlebot은 페이지 크롤 → JS 실행 렌더링의 2단계로 처리한다. 1단계(크롤)는 즉시 이루어지지만, 2단계(JS 렌더링)는 큐에 대기하다 나중에 처리된다. 대형 사이트에서는 수일이 걸릴 수 있다.

즉, CSR 페이지의 JS 콘텐츠는 색인되지만 즉각적이지 않고 지연된다.

3. AI 봇의 JS 미실행 문제

GPTBot, ClaudeBot, PerplexityBot 등 AI 봇은 대부분 JavaScript를 실행하지 않는다. 순수 CSR 사이트는 이들 봇에게 빈 페이지처럼 인식된다. AEO(Answer Engine Optimization) 시대에 AI 인용을 목표로 한다면 JavaScript SEO는 필수 고려사항이다.

자세히는 robots.txt에 AI 봇 허용 항목 참조.


렌더링 방식 4가지와 SEO 영향

[COMPARISON_TABLE: CSR vs SSR vs SSG vs ISR SEO 비교]

1. CSR (Client-Side Rendering)

서버는 빈 HTML + JS 번들을 전송하고, 브라우저에서 JS 실행 후 콘텐츠가 렌더링된다.

<!-- CSR의 HTML 소스 - 봇에게 보이는 것 -->
<html>
  <head>
    <title></title>
  </head>
  <body>
    <div id="app"></div>
    <script src="bundle.js"></script>
  </body>
</html>

HTML 소스에 콘텐츠가 없다 = Googlebot은 지연 후 봄 / AI 봇은 못 봄.

2. SSR (Server-Side Rendering)

서버에서 HTML을 완성해 전송. 브라우저에서 추가 JS 실행(Hydration).

<!-- SSR의 HTML 소스 - 봇에게 즉시 보이는 것 -->
<html>
  <head>
    <title>키워드 리서치 가이드</title>
  </head>
  <body>
    <h1>키워드 리서치 완전 가이드</h1>
    <p>키워드 리서치는...</p>
  </body>
</html>

HTML 소스에 콘텐츠가 있다 = 모든 봇이 즉시 볼 수 있음.

3. SSG (Static Site Generation)

빌드 시 모든 페이지를 HTML로 생성하고 CDN에 배포. 요청마다 DB 조회 없이 HTML 파일을 직접 서빙.

SEO 관점에서 가장 좋은 방식:

  • 즉각적인 TTFB
  • 모든 봇이 즉시 접근 가능
  • CDN으로 글로벌 배포 용이

4. ISR (Incremental Static Regeneration)

SSG의 장점 + 정기적 콘텐츠 업데이트. 백그라운드에서 페이지를 재생성하고 CDN 캐시를 갱신.

Next.js ISR:

export const revalidate = 3600 // 1시간마다 재생성

자세히는 렌더링 항목 참조.


JavaScript SEO 진단 5가지 방법

1. HTML 소스 직접 확인

Ctrl+U (Windows) / Cmd+Option+U (Mac)으로 HTML 소스를 확인. 중요한 콘텐츠(H1, 본문, 메타 태그)가 소스에 없으면 CSR 문제다.

2. JavaScript 비활성화 테스트

Chrome DevTools → 설정(F1) → Preferences → Debugger → Disable JavaScript 체크 → 페이지 새로고침. JavaScript 없이 콘텐츠가 보이면 SEO 친화, 빈 화면이면 CSR 의존이 높다.

3. Google Search Console URL 검사

GSC → URL 검사 → "라이브 URL 테스트" → "렌더링된 페이지" 확인. Googlebot이 실제로 본 렌더링 결과를 보여준다. 자세히는 구글 서치 콘솔 항목 참조.

4. Lighthouse

Chrome DevTools → Lighthouse → SEO 감사에서 JavaScript SEO 관련 항목 확인. 특히 "링크가 크롤 가능한가", "meta description이 있는가" 등을 확인한다.

5. Screaming Frog (JavaScript 렌더링 모드)

Screaming Frog SEO Spider의 JavaScript 렌더링 모드를 활성화하면 실제 렌더링 결과를 기반으로 크롤한다. 렌더링 전후를 비교해 JS에 의존하는 콘텐츠를 식별한다.


JavaScript SEO 5가지 핵심 원칙

원칙 1: 핵심 콘텐츠는 HTML에

봇이 즉시 볼 수 있는 HTML에 핵심 콘텐츠(H1, 본문, 메타 태그)를 포함해야 한다. JS로 동적으로 추가되는 콘텐츠는 색인 지연이나 누락 위험이 있다.

원칙 2: 메타 데이터는 반드시 HTML

타이틀 태그, 메타 디스크립션, 카노니컬, 구조화 데이터(JSON-LD)는 초기 HTML에 포함되어야 한다. JS로 동적으로 생성하면 Googlebot 렌더링 전까지 메타 정보가 없는 상태가 된다.

자세히는 타이틀 태그, 카노니컬 태그 항목 참조.

원칙 3: 내부 링크는 <a href> 태그

// 나쁨: JS 이벤트로 내비게이션
document.getElementById('link').addEventListener('click', () => {
  window.location.href = '/target-page'
})

// 좋음: HTML a 태그
;<a href="/target-page">링크 텍스트</a>

Googlebot은 JS 이벤트 핸들러보다 <a href> 태그를 더 확실하게 크롤한다. 자세히는 내부 링크 항목 참조.

원칙 4: SSR 또는 SSG 사용

SPA(Single Page Application)를 운영 중이라면 SSR 또는 SSG로 마이그레이션하는 것이 JavaScript SEO의 근본 해결책이다.

원칙 5: Progressive Enhancement

JavaScript 없이 기본 기능이 작동하도록 설계하고, JavaScript를 점진적 향상으로 사용한다. 이 원칙을 따르면 자동으로 JavaScript SEO 문제가 최소화된다.


Next.js와 JavaScript SEO

Next.js는 React 기반 프레임워크로 SSR, SSG, ISR을 모두 지원한다.

// SSG: 빌드 시 HTML 생성
export async function getStaticProps() {
  const data = await fetchData()
  return { props: { data } }
}

// ISR: 1시간마다 재생성
export const revalidate = 3600

// SSR: 매 요청마다 서버에서 렌더링
export async function getServerSideProps() {
  const data = await fetchData()
  return { props: { data } }
}

Next.js를 사용하는 사이트는 기본적으로 JavaScript SEO 문제에서 상당 부분 자유롭다. alleo.wiki도 Next.js 기반으로 운영되어 SSG를 통한 최적의 크롤 환경을 제공한다.


AEO 시대의 JavaScript SEO

AI 봇의 JS 미실행 현황

2026년 기준 대부분의 AI 봇은 JavaScript를 실행하지 않는다. 순수 CSR 사이트는 AI 인덱스에서 콘텐츠가 누락될 수 있다.

실질적 영향: AI 봇이 크롤하지 못하면

  • ChatGPT가 해당 콘텐츠를 답변에 인용하지 않음
  • Perplexity가 출처로 참조하지 않음
  • Google AI Overview에서 제외 가능

SSR/SSG는 AI 시대에 더욱 중요해졌다. 자세히는 llms.txt 작성 가이드 항목 참조.

Edge SSR의 부상

Cloudflare Workers, Vercel Edge Functions 같은 엣지 컴퓨팅이 SSR을 CDN 수준으로 빠르게 만들고 있다. SSR의 서버 부하 단점이 줄어드는 추세다.


한국 시장 적용

한국 SaaS의 CSR 문제

많은 한국 SaaS 서비스가 순수 React/Vue CSR로 구현되어 있다. 마케팅 랜딩 페이지가 CSR이면 SEO 효과가 거의 없다. 랜딩 페이지는 최소한 SSR 또는 SSG로 구현해야 한다.

워드프레스 = PHP SSR

카페24, 워드프레스, 아임웹 기반 사이트는 기본적으로 PHP 서버 사이드 렌더링이므로 JavaScript SEO 문제가 없다. 자체 개발 SPA 사이트에서 문제가 집중된다.

네이버 Yeti와 JavaScript

네이버 Yeti 봇은 JavaScript를 부분적으로 실행한다. 완전한 CSR은 네이버 색인에서도 불리하다. SSR/SSG는 구글과 네이버 모두에게 유리하다.


자주 묻는 질문

Q. SPA 사이트는 SEO가 절대 불가능한가요?
A. 아니다. Googlebot이 JavaScript를 실행하므로 CSR 콘텐츠도 색인된다. 그러나 색인 지연, AI 봇 미인식, 메타 데이터 문제 등 불리함이 있다. SSR/SSG 마이그레이션이 가장 근본적인 해결책이지만, CSR 상태에서도 HTML 소스에 중요 메타 데이터를 포함하고 내부 링크를 올바르게 구성하는 것으로 부분 개선이 가능하다.

Q. Googlebot이 JS를 실행하는데 왜 SSR이 여전히 필요한가요?
A. 두 가지 이유다. 첫째, Googlebot의 JS 실행은 지연이 있어 즉각적인 색인이 어렵다. 둘째, AI 봇들은 JS를 실행하지 않아 CSR 콘텐츠를 볼 수 없다. AEO를 고려한다면 SSR/SSG가 필수다.

Q. Next.js로 만들면 자동으로 SEO 친화인가요?
A. 기본 설정에서는 그렇다. 그러나 getServerSidePropsgenerateStaticParams 없이 클라이언트 컴포넌트만으로 구성하면 CSR처럼 동작할 수 있다. Next.js를 사용하더라도 메타 데이터 설정, 서버 컴포넌트 활용, 올바른 링크 구조를 확인해야 한다.

Q. Dynamic Rendering은 여전히 유효한가요?
A. 구글은 2023년 이후 Dynamic Rendering(봇에게 SSR, 사용자에게 CSR)을 더 이상 권장하지 않는다. 클로킹과 유사한 패턴이어서 자세히는 클로킹 항목의 위험성을 참조한다. SSR/SSG가 올바른 대안이다.

Q. AI 봇이 언제쯤 JavaScript를 실행할까요?
A. 기술적으로 가능하지만, 수억 페이지를 크롤하는 봇에게 JS 실행은 매우 비용이 크다. Googlebot도 2단계 렌더링 큐를 운영하는 이유가 이 비용 때문이다. AI 봇들이 JS를 실행하게 되더라도 수년이 걸릴 것으로 예상되며, 그때까지는 SSR/SSG가 표준이다.


관련 출처

이 페이지를 참조하는 항목

관련 항목

📙How-to
llms.txt 작성 가이드
llms.txt는 사이트 콘텐츠를 LLM이 효율적으로 이해하도록 돕는 마크다운 형식 메타데이터 파일로, 사이트 루트(/)에 배치하는 AI 친화적 사이트 가이드다.
📙How-to
인덱싱 커버리지 진단
인덱싱 커버리지 진단은 GSC 색인 보고서로 사이트의 전체 색인 상태를 점검하고, 색인되지 않은 페이지의 원인을 파악해 수정하는 SEO 핵심 작업이다.
📘개념Pillar
GEO 마스터 가이드: 5대 영역 체크리스트
GEO 5대 영역(콘텐츠·구조·기술·외부·측정)을 망라한 생성형 AI 최적화 실행 가이드다.
📘개념Pillar
AEO란?
AEO는 AI 답변 엔진이 콘텐츠를 인용하도록 최적화하는 기법이다.
📘개념Pillar
중복 콘텐츠 (Duplicate Content)
중복 콘텐츠(Duplicate Content)는 여러 URL에 같거나 매우 유사한 콘텐츠가 존재하는 상태로, 검색엔진의 권위 분산과 색인 혼란을 일으키는 흔한 기술 SEO 문제다.
📘개념Pillar
씬 콘텐츠 (Thin Content)
씬 콘텐츠(Thin Content)는 사용자에게 충분한 가치를 제공하지 못하는 얕은 페이지로, Helpful Content 시스템이 감지해 사이트 전체 품질을 낮추는 SEO 페널티 원인이다.
📘개념Pillar
캐노니컬 태그 (Canonical Tag)
캐노니컬 태그(canonical tag)는 중복·유사 콘텐츠가 여러 URL에 존재할 때 검색엔진에 '이 URL이 대표 버전'임을 알려주는 HTML 메타 태그로, 중복 콘텐츠 문제를 해결하고 PageRank를 정규 URL에 집중시키는 온페이지 SEO 핵심 도구다.
📘개념Pillar
내부 링크 전략
내부 링크 전략은 자사 사이트 내 페이지를 의미적으로 연결해 토픽 권위와 봇·사용자 탐색을 최적화하는 작업이다.
📘개념
Noindex (노인덱스)
noindex는 robots meta 태그나 HTTP 헤더로 검색엔진 봇에 '이 페이지를 검색 결과에 포함하지 말라'고 지시하는 온페이지 크롤링 제어 지시자로, 검색 노출이 불필요하거나 해가 되는 페이지를 인덱스에서 제외해 크롤 예산을 절약하고 사이트 품질 시그널을 개선한다.
📘개념
페이지네이션 (Pagination)
페이지네이션(Pagination)은 긴 콘텐츠·상품 목록을 여러 페이지로 분할하는 기법으로, rel=prev/next가 2019년 폐기된 이후 카노니컬·무한 스크롤·자세히 보기 방식으로 대체 관리된다.
📘개념Pillar
타이틀 태그 (Title Tag)
타이틀 태그는 HTML head의 title 요소로, 검색 결과와 AI 답변에서 페이지를 식별하는 핵심 온페이지 SEO 시그널이다.
📘개념Pillar
크롤러빌리티 (Crawlability)
크롤러빌리티(Crawlability)는 검색엔진·AI 봇이 웹사이트 페이지에 접근하고 콘텐츠를 읽을 수 있는 능력으로, SEO·AEO의 가장 기본 조건이며 색인(Indexing)과 랭킹(Ranking)보다 선행되는 필수 단계다.
📘개념
크롤링 vs 인덱싱
크롤링(Crawling)은 검색엔진 봇이 링크를 따라 웹을 순회하며 페이지를 수집하는 과정이고, 인덱싱(Indexing)은 수집된 페이지를 분석해 검색 데이터베이스에 저장하는 과정으로, SEO 3단계(크롤링→인덱싱→랭킹)의 첫 두 단계다.
📘개념Pillar
렌더링 (Rendering)
렌더링(Rendering)은 HTML·CSS·JavaScript를 처리해 사용자와 봇이 보는 최종 화면을 생성하는 과정으로, CSR·SSR·SSG·ISR의 선택이 SEO·AEO 가능성을 결정한다.
📙How-to
robots.txt에 AI 봇 허용하는 방법
AI 봇 허용은 GPTBot·ClaudeBot·PerplexityBot 등 주요 AI 크롤러의 사이트 접근을 robots.txt에서 명시해 생성형 AI 답변 인용에 자사 콘텐츠를 노출시키는 기술 설정이다.

이런 항목도 있어요

이 페이지가 도움이 됐나요?

게시:

업데이트: