# [[React SEO]] ## πŸ“Œ Brief Summary React SEOλŠ” 기본적으둜 ν΄λΌμ΄μ–ΈνŠΈ μ‚¬μ΄λ“œ λ Œλ”λ§(CSR)을 μ‚¬μš©ν•˜λŠ” React 기반의 μ‹±κΈ€ νŽ˜μ΄μ§€ μ• ν”Œλ¦¬μΌ€μ΄μ…˜(SPA)이 검색 μ—”μ§„ 봇에 μ˜ν•΄ μ›ν™œν•˜κ²Œ 크둀링되고 μƒ‰μΈλ˜λ„λ‘ 기술적으둜 μ΅œμ ν™”ν•˜λŠ” 과정을 μ˜λ―Έν•©λ‹ˆλ‹€. 초기 HTML 셸이 λΉ„μ–΄ μžˆμ–΄ λ°œμƒν•˜λŠ” 검색 μ—”μ§„μ˜ 색인 μ§€μ—° 및 λ Œλ”λ§ μ‹€νŒ¨ 문제λ₯Ό κ·Ήλ³΅ν•˜κΈ° μœ„ν•΄ μ„œλ²„ μ‚¬μ΄λ“œ λ Œλ”λ§(SSR), 정적 μ‚¬μ΄νŠΈ 생성(SSG), 메타데이터 동적 관리 및 μ½”μ–΄ μ›Ή λ°”μ΄νƒˆ(Core Web Vitals) μ„±λŠ₯ κ°œμ„  μ „λž΅μ„ ν¬κ΄„ν•©λ‹ˆλ‹€. ꢁ극적으둜 검색 μ—”μ§„ κ°€μ‹œμ„±μ„ 높이고 κ³ ν’ˆμ§ˆμ˜ μ‚¬μš©μž κ²½ν—˜μ„ μ œκ³΅ν•˜λŠ” 것이 λͺ©ν‘œμž…λ‹ˆλ‹€. ## πŸ“– Core Content * **React λ Œλ”λ§ λ°©μ‹μ˜ SEO ν•œκ³„ (CSR의 문제점)** 기본적인 React 앱은 ν΄λΌμ΄μ–ΈνŠΈ μ‚¬μ΄λ“œ λ Œλ”λ§(CSR)을 μ‚¬μš©ν•˜λ©°, λΈŒλΌμš°μ €κ°€ μ²˜μŒμ— λ‹€μš΄λ‘œλ“œν•˜λŠ” 것은 λ‚΄μš©μ΄ μ—†λŠ” 빈 HTML μ…Έμž…λ‹ˆλ‹€ [1, 2]. ꡬ글봇이 JavaScriptλ₯Ό μ‹€ν–‰ν•˜μ—¬ μ½˜ν…μΈ λ₯Ό λ Œλ”λ§ν•  μˆ˜λŠ” μžˆμœΌλ‚˜, 이 과정은 두 λ‹¨κ³„μ˜ 색인화(Two-wave indexing)λ₯Ό 거치게 되며 검색 μ—”μ§„μ˜ 크둀링 μ˜ˆμ‚°μ„ λ‚­λΉ„ν•˜κ²Œ λ§Œλ“­λ‹ˆλ‹€ [1, 3, 4]. λ˜ν•œ μžλ°”μŠ€ν¬λ¦½νŠΈ μ‹€ν–‰ μ§€μ—°, νƒ€μž„μ•„μ›ƒ, λ Œλ”λ§ μ‹€νŒ¨ μ‹œ μ½˜ν…μΈ κ°€ 검색 κ²°κ³Όμ—μ„œ λˆ„λ½λ  μœ„ν—˜μ΄ ν½λ‹ˆλ‹€ [1, 3, 5]. * **SEO μΉœν™”μ μΈ λ Œλ”λ§ μ „λž΅ (SSR, SSG, ISR)** * **μ„œλ²„ μ‚¬μ΄λ“œ λ Œλ”λ§ (SSR):** 각 μš”μ²­λ§ˆλ‹€ μ„œλ²„μ—μ„œ μ™„μ„±λœ HTML을 μƒμ„±ν•˜μ—¬ μ œκ³΅ν•˜λŠ” λ°©μ‹μœΌλ‘œ, 봇이 JavaScriptλ₯Ό μ‹€ν–‰ν•  ν•„μš” 없이 μ¦‰μ‹œ μ½˜ν…μΈ λ₯Ό 크둀링할 수 있게 ν•©λ‹ˆλ‹€(예: Next.js, Remix) [6-8]. * **정적 μ‚¬μ΄νŠΈ 생성 (SSG):** λΉŒλ“œ μ‹œμ μ— λͺ¨λ“  HTML을 미리 λ Œλ”λ§ν•˜μ—¬ 정적 파일둜 μ„œλΉ™ν•©λ‹ˆλ‹€. λΈ”λ‘œκ·Έλ‚˜ λ§ˆμΌ€νŒ… νŽ˜μ΄μ§€ 등에 μ ν•©ν•˜λ©°, λ‘œλ”© 속도가 κ°€μž₯ λΉ λ₯΄κ³  크둀링 효율이 κ·ΉλŒ€ν™”λ©λ‹ˆλ‹€ [6, 9, 10]. * **점진적 정적 μž¬μƒμ„± (ISR):** SSG의 속도와 SSR의 μ΅œμ‹ μ„±μ„ κ²°ν•©ν•˜μ—¬, λ°±κ·ΈλΌμš΄λ“œμ—μ„œ 주기적으둜 정적 νŽ˜μ΄μ§€λ₯Ό μ—…λ°μ΄νŠΈν•¨μœΌλ‘œμ¨ λ‰΄μŠ€λ‚˜ μ „μžμƒκ±°λž˜ μ‚¬μ΄νŠΈμ— μœ λ¦¬ν•©λ‹ˆλ‹€ [6, 10, 11]. * **메타데이터 및 κ΅¬μ‘°ν™”λœ 데이터 μ΅œμ ν™”** * **동적 메타 νƒœκ·Έ 관리:** React μ•± λ‚΄μ—μ„œ νŽ˜μ΄μ§€(라우트)κ°€ 변경될 λ•Œλ§ˆλ‹€ `` 및 `<meta>` νƒœκ·Έκ°€ λ™μ μœΌλ‘œ μ—…λ°μ΄νŠΈλ˜λ„λ‘ React Helmet λ˜λŠ” Next.js의 `<Head>` μ»΄ν¬λ„ŒνŠΈλ₯Ό ν•„μˆ˜μ μœΌλ‘œ μ μš©ν•΄μ•Ό ν•©λ‹ˆλ‹€ [12-14]. * **Schema Markup (JSON-LD):** 검색 μ—”μ§„ 및 AI 기반 λ‹΅λ³€ μ—”μ§„(AEO)이 λ¬Έλ§₯을 이해할 수 μžˆλ„λ‘ JSON-LD 슀크립트λ₯Ό 톡해 κ΅¬μ‘°ν™”λœ 데이터λ₯Ό μ‚½μž…ν•΄μ•Ό ν•©λ‹ˆλ‹€. μ΄λŠ” 리치 μŠ€λ‹ˆνŽ« 확보에 ν•„μˆ˜μ μž…λ‹ˆλ‹€ [12, 15, 16]. * **React Router μ΅œμ ν™” 및 404 처리** * ν•΄μ‹œ λΌμš°νŒ…(`#/`)은 검색 엔진이 κ°œλ³„ νŽ˜μ΄μ§€λ‘œ μ‹λ³„ν•˜μ§€ λͺ»ν•˜λ―€λ‘œ, HTML5 History APIλ₯Ό ν™œμš©ν•˜λŠ” `BrowserRouter` 기반의 κΉ”λ”ν•œ URL ꡬ쑰λ₯Ό μ‚¬μš©ν•΄μ•Ό ν•©λ‹ˆλ‹€ [12, 17-19]. * ν΄λΌμ΄μ–ΈνŠΈ μΈ‘ λΌμš°νŒ… μ‹œ 봇과 μ‚¬μš©μžμ—κ²Œ λ‚΄λΆ€ 이동을 μΈμ‹μ‹œν‚€κΈ° μœ„ν•΄ λ‹¨μˆœν•œ `onClick` μ΄λ²€νŠΈκ°€ μ•„λ‹Œ μ‹€μ œ `<a href>` 액컀 νƒœκ·Έ λ˜λŠ” `<Link>` μ»΄ν¬λ„ŒνŠΈλ₯Ό ν™œμš©ν•˜μ—¬ 링크λ₯Ό ꡬ성해야 ν•©λ‹ˆλ‹€ [17, 19]. * μ—†λŠ” 경둜둜 μ ‘κ·Ό μ‹œ λ‹¨μˆœν•œ "Not Found" UI만 λ„μš°κ³  μƒνƒœ μ½”λ“œ 200을 λ°˜ν™˜ν•˜λ©΄ μ†Œν”„νŠΈ 404(Soft 404) λ¬Έμ œκ°€ λ°œμƒν•˜λ―€λ‘œ, μ„œλ²„μ—μ„œ λͺ…ν™•ν•˜κ²Œ 404 μƒνƒœ μ½”λ“œλ₯Ό μ „λ‹¬ν•˜λ„λ‘ ꡬ성해야 ν•©λ‹ˆλ‹€ [18, 20]. * **μ„±λŠ₯ 및 Core Web Vitals ν–₯상** λŒ€κ·œλͺ¨ JavaScript λ²ˆλ“€ 및 ν•˜μ΄λ“œλ ˆμ΄μ…˜(Hydration) 지연은 LCP(μ΅œλŒ€ μ½˜ν…μΈ  ν’€ 페인트)와 INP(λ‹€μŒ νŽ˜μΈνŠΈμ— λŒ€ν•œ μƒν˜Έμž‘μš©)λ₯Ό 크게 μ•…ν™”μ‹œν‚΅λ‹ˆλ‹€ [17, 21]. 이λ₯Ό ν•΄κ²°ν•˜κΈ° μœ„ν•΄ 라우트 및 μ»΄ν¬λ„ŒνŠΈ μˆ˜μ€€μ˜ μ½”λ“œ λΆ„ν• (Code Splitting), 비핡심 μžμ‚°μ˜ μ§€μ—° λ‘œλ”©(Lazy Loading), 점진적 ν•˜μ΄λ“œλ ˆμ΄μ…˜ 등을 λ„μž…ν•˜μ—¬ 초기 λ‘œλ”© μ„±λŠ₯을 획기적으둜 κ°œμ„ ν•΄μ•Ό ν•©λ‹ˆλ‹€ [22-24]. ## πŸ”— Knowledge Connections - **Related Topics:** [[Server-Side Rendering (SSR)]], [[Static Site Generation (SSG)]], [[Client-Side Rendering (CSR)]], [[Core Web Vitals]], [[React Router]] - **Projects/Contexts:** [[Next.js E-commerce Migration Case Study]] - **Contradictions/Notes:** λ΄‡μ—κ²Œλ§Œ 사전 λ Œλ”λ§λœ HTML을 μ œκ³΅ν•˜λŠ” 동적 λ Œλ”λ§(Dynamic Rendering) κΈ°μˆ μ€ κ³Όκ±° React SEO의 λŒ€μ•ˆμœΌλ‘œ μ“°μ˜€μœΌλ‚˜, 인간과 λ΄‡μ—κ²Œ λ‹€λ₯Έ μ½˜ν…μΈ λ₯Ό λ³΄μ—¬μ£ΌλŠ” ν΄λ‘œν‚Ή(Cloaking)으둜 κ°„μ£Όλ˜μ–΄ νŽ˜λ„ν‹°λ₯Ό 받을 μœ„ν—˜μ΄ μžˆμœΌλ―€λ‘œ, 2026λ…„ κΈ°μ€€ ꡬ글은 이λ₯Ό ꢌμž₯ν•˜μ§€ μ•ŠμœΌλ©° SSRμ΄λ‚˜ SSGλ₯Ό κ΅¬ν˜„ν•  수 μ—†λŠ” μ΅œν›„μ˜ μˆ˜λ‹¨μœΌλ‘œλ§Œ μ‚¬μš©ν•΄μ•Ό ν•©λ‹ˆλ‹€ [25, 26]. --- *Last updated: 2026-04-26*