# [[SEO for React Applications]] ## π Brief Summary React μ ν리μΌμ΄μ μ μν SEOλ κΈ°λ³Έμ μΌλ‘ ν΄λΌμ΄μΈνΈ μ¬μ΄λ λ λλ§(CSR)μ μ¬μ©νλ Reactμ νΉμ±μ κ²μ μμ§ λ΄μ΄ μ΄κΈ° μμ² μ λΉ HTML μ Έλ§μ λ³΄κ² λλ λ¬Έμ λ₯Ό ν΄κ²°νλ κ³Όμ μ λλ€ [1, 2]. μ΄λ₯Ό 극볡νκΈ° μν΄ μλ² μ¬μ΄λ λ λλ§(SSR), μ μ μ¬μ΄νΈ μμ±(SSG), μ¬λ°λ₯Έ λ©νλ°μ΄ν° κ΄λ¦¬ λ±μ λμ νμ¬ κ²μ μμ§μ΄ μ½ν μΈ λ₯Ό ν¨κ³Όμ μΌλ‘ ν¬λ‘€λ§, λ λλ§ λ° μμΈν μ μλλ‘ μ΅μ νν©λλ€ [3-5]. ## π Core Content * **Reactμ SEO λ¬Έμ μ (CSRμ νκ³):** κΈ°λ³Έ React μ ν리μΌμ΄μ μ ν΄λΌμ΄μΈνΈ μ¬μ΄λ λ λλ§(CSR)μ μ¬μ©νμ¬ λΈλΌμ°μ μ μ΅μνμ HTML λΌλλ§ μ μ‘ν©λλ€ [2, 6]. μ€μ μ½ν μΈ λ μλ°μ€ν¬λ¦½νΈκ° λ€μ΄λ‘λλκ³ μ€νλ νμμΌ DOMμ λνλκ² λ©λλ€ [6]. μ΄λ κ²μ μμ§μ΄ μ΄κΈ° HTMLμ λ¨Όμ μμΈνκ³ μ΄νμ λ λλ§μ μν΄ λκΈ°μ΄μ λ£λ "λ λ¨κ³ μμΈ(Two-wave indexing)" μ§μ°μ μ΄λνλ©°, ν¬λ‘€λ§ μμ°μ λλΉνκ² λ§λλλ€ [2, 7, 8]. * **κ²μ μμ§ μ΅μ νλ₯Ό μν λ λλ§ μ λ΅:** * **μλ² μ¬μ΄λ λ λλ§(SSR):** κ° μμ²λ§λ€ μλ²μμ μμ ν HTMLμ μμ±νμ¬ μ μ‘ν©λλ€ [3, 9]. ν¬λ‘€λ¬κ° μλ°μ€ν¬λ¦½νΈ μ€νμ κΈ°λ€λ¦΄ νμ μμ΄ μ¦μ μ½ν μΈ λ₯Ό μ½μ μ μμ΄ SEOμ λ§€μ° ν¨κ³Όμ μ΄λ©°, Next.jsλ Remix κ°μ νλ μμν¬ μ¬μ©μ΄ κΆμ₯λ©λλ€ [5, 9, 10]. * **μ μ μ¬μ΄νΈ μμ±(SSG):** λΉλ μμ μ HTMLμ 미리 λ λλ§νμ¬ κ°μ₯ λΉ λ₯΄κ³ ν¬λ‘€λ§νκΈ° μ½μ΅λλ€ [3, 11]. λΈλ‘κ·Έ, λ¬Έμ νμ΄μ§, λλ© νμ΄μ§ λ±μ μ ν©ν©λλ€ [11, 12]. * **μ μ§μ μ μ μ¬μμ±(ISR):** SSGμ μλμ SSRμ μ΅μ μ± μ μ§λ₯Ό κ²°ν©ν λ°©μμΌλ‘, μ μμκ±°λ μΉ΄νλ‘κ·Έλ λ΄μ€ μ¬μ΄νΈμ²λΌ μ£ΌκΈ°μ μΌλ‘ μ λ°μ΄νΈλλ λκ·λͺ¨ μ¬μ΄νΈμ μ ν©ν©λλ€ [12, 13]. * **λμ λ©νλ°μ΄ν° λ° κ΅¬μ‘°νλ λ°μ΄ν° κ΄λ¦¬:** Reactμ κ°μ λ¨μΌ νμ΄μ§ μ ν리μΌμ΄μ (SPA)μ λΌμ°νΈκ° λ³κ²½λμ΄λ `
` νκ·Έκ° μμ°μ μΌλ‘ μ λ°μ΄νΈλμ§ μμ΅λλ€ [14]. React Helmet Async λΌμ΄λΈλ¬λ¦¬λ Next.jsμ λ΄μ₯ μ»΄ν¬λνΈλ₯Ό μ¬μ©νμ¬ κ° νμ΄μ§μ λ§λ κ³ μ ν μ λͺ©, λ©ν μ€λͺ , Open Graph νκ·Έλ₯Ό λμ μΌλ‘ μ£Όμ ν΄μΌ ν©λλ€ [14-17]. λν, κ²μ μμ§μ΄ μ½ν μΈ μ λ§₯λ½μ μ νν μ΄ν΄ν μ μλλ‘ JSON-LDλ₯Ό ν΅ν ꡬ쑰νλ λ°μ΄ν°(Schema Markup) μΆκ°κ° νμμ μ λλ€ [15, 18]. * **λΌμ°ν λ° URL ꡬ쑰 μ΅μ ν:** κ²μ μμ§μ ν΄μ(`#`) κΈ°νΈ μ΄νμ URLμ 무μνλ κ²½ν₯μ΄ μμΌλ―λ‘, SEOλ₯Ό μν΄μλ ν΄μ λΌμ°ν λμ HTML5 History APIμ κΈ°λ°ν `BrowserRouter`λ₯Ό μ¬μ©ν΄ κΉλν URLμ μ 곡ν΄μΌ ν©λλ€ [15, 19-21]. λν λ΄λΆ λ΄λΉκ²μ΄μ μ `onClick` μ΄λ²€νΈ νΈλ€λ¬λ₯Ό μ¬μ©νλ©΄ ν¬λ‘€λ¬κ° λ§ν¬λ₯Ό λ°κ²¬νμ§ λͺ»νλ―λ‘, λ°λμ νμ€ `` νκ·Έλ `` μ»΄ν¬λνΈλ₯Ό μ¬μ©ν΄μΌ ν©λλ€ [19, 21]. * **μ½μ΄ μΉ λ°μ΄ν(Core Web Vitals) λ° μ±λ₯ ν₯μ:** λκ·λͺ¨ μλ°μ€ν¬λ¦½νΈ λ²λ€κ³Ό νμ΄λλ μ΄μ (Hydration) μ§μ°μ LCP(μ΅λ μ½ν μΈ ν νμΈνΈ), CLS(λμ λ μ΄μμ μ΄λ), INP(λ€μ νμΈνΈμ λν μνΈμμ©) κ°μ μ½μ΄ μΉ λ°μ΄ν μ§νμ μ μν₯μ λ―Έμ³ λνΉμ νλ½μν΅λλ€ [19, 22, 23]. μ΄λ₯Ό κ°μ νκΈ° μν΄ λΌμ°νΈ κΈ°λ° μ½λ λΆν (Code Splitting), νλ©΄ μλ μ½ν μΈ μ μ§μ° λ‘λ©(Lazy Loading), μ μ§μ νμ΄λλ μ΄μ λ° μ΄λ―Έμ§ μ΅μ νλ₯Ό μ² μ ν μ μ©ν΄μΌ ν©λλ€ [22, 24, 25]. ## π Knowledge Connections - **Related Topics:** [[Server-Side Rendering (SSR)]], [[Client-Side Rendering (CSR)]], [[Core Web Vitals]], [[Single Page Applications (SPA)]], [[React Router]] - **Projects/Contexts:** λκ·λͺ¨ μ μμκ±°λ μ¬μ΄νΈκ° κΈ°μ‘΄ CSR κΈ°λ°(Create React App)μμ Next.jsμ ISR νκ²½μΌλ‘ λ§μ΄κ·Έλ μ΄μ νμ¬ νΈλν½κ³Ό μμΈ λΉμ¨μ νκΈ°μ μΌλ‘ ν₯μμν¨ νλ‘μ νΈ [5, 26, 27]. - **Contradictions/Notes:** λ΄μκ²λ μλ² λ λλ§λ HTMLμ μ 곡νκ³ μ¬μ©μμκ²λ ν΄λΌμ΄μΈνΈ μ¬μ΄λ λ λλ§μ μ 곡νλ λμ λ λλ§(Dynamic Rendering)μ κ³Όκ±°μ μ°νμ± μΌλ‘ μ¬μ©λμμΌλ, 2026λ κΈ°μ€μΌλ‘λ ν΄λ‘νΉ(Cloaking)μΌλ‘ κ°μ£Όλ μνμ΄ μμ΄ SSRμ΄λ SSGλ₯Ό μ¬μ©ν μ μλ κ²½μ°λ₯Ό μ μΈνκ³ λ ꡬκΈμ μν΄ κ°λ ₯ν κΆμ₯λμ§ μμ΅λλ€ [28, 29]. --- *Last updated: 2026-04-26*