์ž‘๊ฐ€:
    ์ƒ์„ฑ:2024-12-24๋งˆ์ง€๋ง‰ ์—…๋ฐ์ดํŠธ:2025-06-29

    SEO & I18n: ์›น์‚ฌ์ดํŠธ๋ฅผ ๋‹ค๊ตญ์–ด๋กœ ๋งŒ๋“œ๋Š” ๊ถ๊ทน์ ์ธ ๊ฐ€์ด๋“œ

    ์ „ ์„ธ๊ณ„์ ์œผ๋กœ ๋” ๋งŽ์€ ์‚ฌ์šฉ์ž์—๊ฒŒ ๋‹ค๊ฐ€๊ฐ€๊ณ  ์‹ถ์œผ์‹ ๊ฐ€์š”? ์›น์‚ฌ์ดํŠธ๋ฅผ ๋‹ค๊ตญ์–ด๋กœ ๋งŒ๋“œ๋Š” ๊ฒƒ์€ ์ฒญ์ค‘์„ ํ™•์žฅํ•˜๊ณ  SEO(๊ฒ€์ƒ‰ ์—”์ง„ ์ตœ์ ํ™”)๋ฅผ ๊ฐœ์„ ํ•˜๋Š” ๊ฐ€์žฅ ์ข‹์€ ๋ฐฉ๋ฒ• ์ค‘ ํ•˜๋‚˜์ž…๋‹ˆ๋‹ค. ์ด ๋ธ”๋กœ๊ทธ ๊ฒŒ์‹œ๋ฌผ์—์„œ๋Š” ๊ตญ์ œ SEO์˜ ๊ธฐ๋ณธ, ์ข…์ข… i18n(โ€œinternationalizationโ€์˜ ์•ฝ์–ด๋กœ ์‚ฌ์šฉ), ๋ฅผ ์‰ฝ๊ฒŒ ์ดํ•ดํ•  ์ˆ˜ ์žˆ๋Š” ์šฉ์–ด๋กœ ์„ค๋ช…ํ•ฉ๋‹ˆ๋‹ค. ํ•„์š”ํ•œ ์ฃผ์š” ๊ฒฐ์ •, hreflang์™€ ๊ฐ™์€ ๊ธฐ์ˆ  ์š”์†Œ๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๋ฐฉ๋ฒ•, ๊ทธ๋ฆฌ๊ณ  Intlayer์™€ ๊ฐ™์€ ๋„๊ตฌ๊ฐ€ ๊ท€ํ•˜์˜ ๋‹ค๊ตญ์–ด Next.js ํ”„๋กœ์ ํŠธ๋ฅผ ์–ด๋–ป๊ฒŒ ๊ฐ„์†Œํ™”ํ•  ์ˆ˜ ์žˆ๋Š”์ง€์— ๋Œ€ํ•ด ๋ฐฐ์šฐ๊ฒŒ ๋ฉ๋‹ˆ๋‹ค.

    1. ์›น์‚ฌ์ดํŠธ๋ฅผ ๋‹ค๊ตญ์–ด๋กœ ๋งŒ๋“œ๋Š” ๊ฒƒ์€ ๋ฌด์—‡์„ ์˜๋ฏธํ•˜๋‚˜์š”?

    ๋‹ค๊ตญ์–ด ์›น์‚ฌ์ดํŠธ๋Š” ์ฝ˜ํ…์ธ ๋ฅผ ์—ฌ๋Ÿฌ ์–ธ์–ด๋กœ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด, ์˜์–ด ๋ฒ„์ „(example.com/en/), ํ”„๋ž‘์Šค์–ด ๋ฒ„์ „(example.com/fr/), ์ŠคํŽ˜์ธ์–ด ๋ฒ„์ „(example.com/es/)์„ ๊ฐ€์งˆ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด ์ ‘๊ทผ ๋ฐฉ์‹์€ ๊ฒ€์ƒ‰ ์—”์ง„์ด ์‚ฌ์šฉ์ž์˜ ์„ ํ˜ธ๋„๋‚˜ ์ง€๋ฆฌ์  ์œ„์น˜์— ๋”ฐ๋ผ ์˜ฌ๋ฐ”๋ฅธ ์–ธ์–ด ๋ฒ„์ „์„ ํ‘œ์‹œํ•  ์ˆ˜ ์žˆ๋„๋ก ํ•ฉ๋‹ˆ๋‹ค.

    ์ด๋ฅผ ์˜ฌ๋ฐ”๋ฅด๊ฒŒ ์‹คํ–‰ํ•˜๋ฉด ๋น„์˜์–ด ์‚ฌ์šฉ์ž๋ฅผ ์œ„ํ•œ ํ›จ์”ฌ ๋” ์‚ฌ์šฉ์ž ์นœํ™”์ ์ธ ๊ฒฝํ—˜์„ ์ฐฝ์ถœํ•  ์ˆ˜ ์žˆ์œผ๋ฉฐ, ๊ทธ ๊ฒฐ๊ณผ ๋” ๋‚˜์€ ์ฐธ์—ฌ๋„, ๋†’์€ ์ „ํ™˜์œจ, ๊ทธ๋ฆฌ๊ณ  ๋‹ค์–‘ํ•œ ์ง€์—ญ์—์„œ ๊ฐœ์„ ๋œ SEO๋ฅผ ๊ฐ€์ ธ์˜ฌ ๊ฒƒ์ž…๋‹ˆ๋‹ค.

    2. ์˜ฌ๋ฐ”๋ฅธ URL ๊ตฌ์กฐ ์„ ํƒํ•˜๊ธฐ

    ์—ฌ๋Ÿฌ ์–ธ์–ด ๋ฒ„์ „์„ ๋งŒ๋“ค๊ธฐ๋กœ ๊ฒฐ์ •ํ–ˆ๋‹ค๋ฉด, ์‚ฌ์ดํŠธ์˜ URL์„ ์ •๋ฆฌํ•˜๋Š” ๋ช…ํ™•ํ•˜๊ณ  ์ผ๊ด€๋œ ๋ฐฉ๋ฒ•์ด ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค. ๊ฐ ์–ธ์–ด(๋˜๋Š” ์ง€์—ญ)๋Š” ๊ณ ์œ ํ•œ "์ฃผ์†Œ"๋ฅผ ์ธํ„ฐ๋„ท์—์„œ ๊ฐ€์ ธ์•ผ ํ•ฉ๋‹ˆ๋‹ค. ๋‹ค๊ตญ์–ด ์›น์‚ฌ์ดํŠธ๋ฅผ ๊ตฌ์กฐํ™”ํ•˜๋Š” ์„ธ ๊ฐ€์ง€ ์ผ๋ฐ˜์ ์ธ ๋ฐฉ๋ฒ•์€ ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค:

    1. ๊ตญ๊ฐ€ ์ฝ”๋“œ ์ตœ์ƒ์œ„ ๋„๋ฉ”์ธ (ccTLDs)

      • ์˜ˆ: example.fr, example.de
      • ์žฅ์ : ๊ฒ€์ƒ‰ ์—”์ง„์— ์ฝ˜ํ…์ธ ๊ฐ€ ์–ด๋–ค ๊ตญ๊ฐ€๋ฅผ ๋Œ€์ƒ์œผ๋กœ ํ•˜๋Š”์ง€๋ฅผ ๊ฐ•ํ•˜๊ฒŒ ์‹ ํ˜ธ ๋ณด๋ƒ…๋‹ˆ๋‹ค(์˜ˆ: .fr = ํ”„๋ž‘์Šค).
      • ๋‹จ์ : ์—ฌ๋Ÿฌ ๋„๋ฉ”์ธ์„ ๊ด€๋ฆฌํ•˜๋Š” ๊ฒƒ์€ ๋” ๋น„์šฉ์ด ๋“ค๊ณ  ๋ณต์žกํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
    2. ์„œ๋ธŒ๋„๋ฉ”์ธ

      • ์˜ˆ: fr.example.com, de.example.com
      • ์žฅ์ : ๊ฐ ์–ธ์–ด๊ฐ€ ์ž์‹ ์˜ ์„œ๋ธŒ๋„๋ฉ”์ธ์—์„œ "์กด์žฌ"ํ•˜๋ฏ€๋กœ ์–ธ์–ด๋ฅผ ์ถ”๊ฐ€ํ•˜๊ฑฐ๋‚˜ ์ œ๊ฑฐํ•˜๊ธฐ๊ฐ€ ์ƒ๋Œ€์ ์œผ๋กœ ์‰ฝ์Šต๋‹ˆ๋‹ค.
      • ๋‹จ์ : ๊ฒ€์ƒ‰ ์—”์ง„์ด ๋•Œ๋•Œ๋กœ ์„œ๋ธŒ๋„๋ฉ”์ธ์„ ๋ณ„๋„์˜ ์‚ฌ์ดํŠธ๋กœ ์ฒ˜๋ฆฌํ•˜๋ฏ€๋กœ ์ฃผ์š” ๋„๋ฉ”์ธ์˜ ๊ถŒํ•œ์„ ํฌ์„ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
    3. ์„œ๋ธŒ๋””๋ ‰ํ† ๋ฆฌ (์„œ๋ธŒํด๋”)

      • ์˜ˆ: example.com/fr/, example.com/de/
      • ์žฅ์ : ๊ด€๋ฆฌ๊ฐ€ ๊ฐ„๋‹จํ•˜๋ฉฐ, ๋ชจ๋“  ํŠธ๋ž˜ํ”ฝ์ด ํ•˜๋‚˜์˜ ์ฃผ์š” ๋„๋ฉ”์ธ์œผ๋กœ ํ–ฅํ•ฉ๋‹ˆ๋‹ค.
      • ๋‹จ์ : ccTLD๋งŒํผ ๊ฐ•ํ•œ ์ง€์—ญ SEO ์‹ ํ˜ธ๋Š” ์•„๋‹ˆ์ง€๋งŒ(์ ์ ˆํ•˜๊ฒŒ ์ˆ˜ํ–‰ํ•˜๋ฉด ์—ฌ์ „ํžˆ ๋งค์šฐ ํšจ๊ณผ์ ์ž…๋‹ˆ๋‹ค).
    ํŒ: ์ „ ์„ธ๊ณ„ ๋ธŒ๋žœ๋“œ๊ฐ€ ๋˜๊ณ  ์‹ถ๊ณ  ๊ฐ„๋‹จํ•˜๊ฒŒ ์œ ์ง€ํ•˜๊ณ  ์‹ถ๋‹ค๋ฉด ์„œ๋ธŒ๋””๋ ‰ํ† ๋ฆฌ๊ฐ€ ์ผ๋ฐ˜์ ์œผ๋กœ ์ตœ์„ ์˜ ์„ ํƒ์ž…๋‹ˆ๋‹ค. ํ•˜๋‚˜ ๋˜๋Š” ๋‘ ๊ฐœ์˜ ์ฃผ์š” ๊ตญ๊ฐ€๋งŒ์„ ๋ชฉํ‘œ๋กœ ํ•˜๊ณ  ๊ฐ๊ฐ์„ ์ •๋ง ๊ฐ•์กฐํ•˜๊ณ  ์‹ถ๋‹ค๋ฉด ccTLD๊ฐ€ ๋” ๋‚˜์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

    3. Hreflang์œผ๋กœ ์–ธ์–ด ํƒ€๊ฒŸํŒ… ๋งˆ์Šคํ„ฐํ•˜๊ธฐ

    3.1. Hreflang์ด๋ž€ ๋ฌด์—‡์ธ๊ฐ€์š”?

    ๋™์ผํ•˜๊ฑฐ๋‚˜ ๋งค์šฐ ์œ ์‚ฌํ•œ ์ฝ˜ํ…์ธ ๊ฐ€ ์—ฌ๋Ÿฌ ์–ธ์–ด๋กœ ์žˆ์„ ๋•Œ, Google๊ณผ ๊ฐ™์€ ๊ฒ€์ƒ‰ ์—”์ง„์€ ์‚ฌ์šฉ์ž์—๊ฒŒ ์–ด๋–ค ๋ฒ„์ „์„ ํ‘œ์‹œํ• ์ง€ ํ˜ผ๋ž€์Šค๋Ÿฌ์›Œํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. Hreflang๋Š” ํŠน์ • ํŽ˜์ด์ง€๊ฐ€ ์–ด๋–ค ์–ธ์–ด(๋ฐ ์ง€์—ญ)๋ฅผ ์œ„ํ•œ ๊ฒƒ์ธ์ง€, ๊ทธ๋ฆฌ๊ณ  ๋Œ€์ฒด ์–ธ์–ด/์ง€์—ญ ํŽ˜์ด์ง€๊ฐ€ ๋ฌด์—‡์ธ์ง€๋ฅผ ๊ฒ€์ƒ‰ ์—”์ง„์— ์•Œ๋ ค์ฃผ๋Š” HTML ์†์„ฑ์ž…๋‹ˆ๋‹ค.

    3.2. ์™œ ์ด๊ฒƒ์ด ์ค‘์š”ํ•œ๊ฐ€์š”?

    1. ์ค‘๋ณต ์ฝ˜ํ…์ธ  ๋ฌธ์ œ๋ฅผ ๋ฐฉ์ง€ํ•ฉ๋‹ˆ๋‹ค(๊ฒ€์ƒ‰ ์—”์ง„์ด ๋™์ผํ•œ ์ฝ˜ํ…์ธ ๋ฅผ ์—ฌ๋Ÿฌ ๋ฒˆ ๊ฒŒ์‹œํ•œ๋‹ค๊ณ  ์ƒ๊ฐํ•  ๋•Œ).
    2. ํ”„๋ž‘์Šค์–ด ์‚ฌ์šฉ์ž๋Š” ํ”„๋ž‘์Šค์–ด ๋ฒ„์ „์„ ๋ณด๊ณ , ์ŠคํŽ˜์ธ์–ด ์‚ฌ์šฉ์ž๋Š” ์ŠคํŽ˜์ธ์–ด ๋ฒ„์ „์„ ๋ณผ ์ˆ˜ ์žˆ๋„๋ก ํ•ฉ๋‹ˆ๋‹ค.
    3. ์ „๋ฐ˜์ ์ธ ์‚ฌ์šฉ์ž ๊ฒฝํ—˜์„ ๊ฐœ์„ ํ•˜์—ฌ ๋” ๋‚˜์€ ์ฐธ์—ฌ๋„์™€ ๋†’์€ SEO ์ˆœ์œ„๋ฅผ ์˜๋ฏธํ•ฉ๋‹ˆ๋‹ค.

    3.3. <head> ํƒœ๊ทธ์—์„œ Hreflang ์‚ฌ์šฉํ•˜๊ธฐ

    HTML์—์„œ ๋‹ค์Œ๊ณผ ๊ฐ™์€ ๊ฒƒ์„ ์ถ”๊ฐ€ํ•ฉ๋‹ˆ๋‹ค:

    html
    <link rel="alternate" hreflang="en" href="https://example.com/en" />
    <link rel="alternate" hreflang="fr" href="https://example.com/fr" />
    <link rel="alternate" hreflang="es" href="https://example.com/es" />
    <link rel="alternate" hreflang="x-default" href="https://example.com/en" />
    
    • hreflang="en": ํŽ˜์ด์ง€์˜ ์˜์–ด ๋ฒ„์ „์ž„์„ ๋‚˜ํƒ€๋ƒ…๋‹ˆ๋‹ค.
    • hreflang="fr": ํŽ˜์ด์ง€์˜ ํ”„๋ž‘์Šค์–ด ๋ฒ„์ „์ž„์„ ๋‚˜ํƒ€๋ƒ…๋‹ˆ๋‹ค.
    • hreflang="es": ํŽ˜์ด์ง€์˜ ์ŠคํŽ˜์ธ์–ด ๋ฒ„์ „์ž„์„ ๋‚˜ํƒ€๋ƒ…๋‹ˆ๋‹ค.
    • hreflang="x-default": ๋‹ค๋ฅธ ์–ธ์–ด๊ฐ€ ์‚ฌ์šฉ์ž ์„ ํ˜ธ์™€ ์ผ์น˜ํ•˜์ง€ ์•Š์„ ๋•Œ ์‚ฌ์šฉํ•˜๋Š” "๋ฐฑ์—…" ์–ธ์–ด ๋˜๋Š” ๊ธฐ๋ณธ URL์ž…๋‹ˆ๋‹ค.
    ๋น ๋ฅธ ๋ฉ”๋ชจ: ์ด๋Ÿฌํ•œ ํƒœ๊ทธ์—์„œ์˜ URL์€ ์ตœ์ข… ํŽ˜์ด์ง€๋ฅผ ์ง์ ‘ ๊ฐ€๋ฆฌํ‚ค๋„๋ก ํ•˜์‹ญ์‹œ์˜ค. ์ถ”๊ฐ€ ๋ฆฌ๋””๋ ‰์…˜ ์—†์ด.

    4. ์ฝ˜ํ…์ธ ๋ฅผ ์ง„์ •์œผ๋กœ "ํ˜„์ง€ํ™”"ํ•˜๊ธฐ (๋‹จ์ˆœํžˆ ๋ฒˆ์—ญํ•˜๋Š” ๊ฒƒ์ด ์•„๋‹˜)

    4.1. ํ˜„์ง€ํ™” vs. ๋ฒˆ์—ญ

    • ๋ฒˆ์—ญ์€ ํ•œ ์–ธ์–ด์˜ ํ…์ŠคํŠธ๋ฅผ ๋‹ค๋ฅธ ์–ธ์–ด๋กœ ๋‹จ์–ด๋Œ€ ๋‹จ์–ด๋กœ ์ „ํ™˜ํ•˜๋Š” ๊ฒƒ์„ ์˜๋ฏธํ•ฉ๋‹ˆ๋‹ค.
    • ํ˜„์ง€ํ™”๋Š” ์ฝ˜ํ…์ธ ์˜ ํ˜•์‹, ํ†ตํ™”, ์ธก์ • ๋‹จ์œ„ ๋ฐ ๋ฌธํ™”์  ์ฐธ์กฐ๋ฅผ ์ง€์—ญ ์ฒญ์ค‘์— ๋งž๊ฒŒ ์กฐ์ •ํ•˜๋Š” ๊ฒƒ์„ ์˜๋ฏธํ•ฉ๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด, ํ”„๋ž‘์Šค๋ฅผ ํƒ€๊ฒŸํŒ…ํ•  ๊ฒฝ์šฐ โ‚ฌ๋ฅผ ์‚ฌ์šฉํ•˜์…”์•ผ ํ•ฉ๋‹ˆ๋‹ค.

    4.2. ์ค‘๋ณต ์ฝ˜ํ…์ธ  ํ”ผํ•˜๊ธฐ

    ์ข‹์€ ๋ฒˆ์—ญ์ด ์žˆ๋”๋ผ๋„, ๊ตฌ์กฐ๊ฐ€ ๋„ˆ๋ฌด ๋น„์Šทํ•˜๋ฉด ๊ฒ€์ƒ‰ ์—”์ง„์ด ๊ท€ํ•˜์˜ ์›น์‚ฌ์ดํŠธ์— ๋Œ€ํ•ด ์ค‘๋ณต ์ฝ˜ํ…์ธ ๋กœ ํ”Œ๋ž˜๊ทธ๋ฅผ ์ง€์ •ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. Hreflang์€ ์ด๋Ÿฌํ•œ ํŽ˜์ด์ง€๊ฐ€ ์ค‘๋ณต์ด ์•„๋‹ˆ๋ผ ์–ธ์–ด ๋ณ€ํ˜•์ž„์„ ๋ช…ํ™•ํžˆ ํ•˜๋Š” ๋ฐ ๋„์›€์ด ๋ฉ๋‹ˆ๋‹ค.

    5. ๊ธฐ์ˆ  SEO ํ•„์ˆ˜ ์š”์†Œ

    5.1. ์–ธ์–ด ์„ ์–ธ(lang ๋ฐ dir)

    HTML ํƒœ๊ทธ์—์„œ ์–ธ์–ด๋ฅผ ๋‹ค์Œ๊ณผ ๊ฐ™์ด ์„ ์–ธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค:

    html
    <html lang="en"></html>
    
    • lang="en": ๋ธŒ๋ผ์šฐ์ €์™€ ๋ณด์กฐ ๊ธฐ์ˆ ์ด ์–ธ์–ด๋ฅผ ์ดํ•ดํ•˜๋Š” ๋ฐ ๋„์›€์ด ๋ฉ๋‹ˆ๋‹ค.

    ์˜ค๋ฅธ์ชฝ์—์„œ ์™ผ์ชฝ์œผ๋กœ ์“ฐ๋Š” ์–ธ์–ด(์•„๋ž์–ด ๋˜๋Š” ํžˆ๋ธŒ๋ฆฌ์–ด ๋“ฑ)์˜ ๊ฒฝ์šฐ ์ถ”๊ฐ€ํ•ฉ๋‹ˆ๋‹ค:

    html
    <html dir="rtl" lang="ar"></html>
    
    • dir="rtl": ํ…์ŠคํŠธ ๋ฐฉํ–ฅ์ด ์˜ค๋ฅธ์ชฝ์—์„œ ์™ผ์ชฝ์œผ๋กœ ์„ค์ •๋ฉ๋‹ˆ๋‹ค.

    5.2. ์ •์‹ ํƒœ๊ทธ

    ์ •์‹ ํƒœ๊ทธ๋Š” ๊ฑฐ์˜ ์ค‘๋ณต ํŽ˜์ด์ง€๊ฐ€ ์žˆ์„ ๊ฒฝ์šฐ ์–ด๋–ค ํŽ˜์ด์ง€๊ฐ€ "์›๋ณธ" ๋˜๋Š” ๊ธฐ๋ณธ ๋ฒ„์ „์ธ์ง€ ๊ฒ€์ƒ‰ ์—”์ง„์— ์•Œ๋ฆฝ๋‹ˆ๋‹ค. ์ผ๋ฐ˜์ ์œผ๋กœ ๋‹ค๊ตญ์–ด ์‚ฌ์ดํŠธ์˜ ๊ฒฝ์šฐ ์ž๊ธฐ ์ฐธ์กฐ ์ •์‹ ํƒœ๊ทธ๋ฅผ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.

    html
    <link rel="canonical" href="https://example.com/fr/produits" />
    

    6. ์—ฌ๋Ÿฌ ์–ธ์–ด์˜ ํŽ˜์ด์ง€ ๋‚ด SEO

    6.1. ์ œ๋ชฉ ๋ฐ ๋ฉ”ํƒ€ ์„ค๋ช…

    • ๊ฐ ์–ธ์–ด์— ๋Œ€ํ•ด ๋ฒˆ์—ญ ๋ฐ ์ตœ์ ํ™”๋˜์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.
    • ๊ฐ ์‹œ์žฅ์— ๋Œ€ํ•ด ํ‚ค์›Œ๋“œ ์—ฐ๊ตฌ๋ฅผ ์ˆ˜ํ–‰ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ์˜์–ด์—์„œ ์‚ฌ๋žŒ๋“ค์ด ๊ฒ€์ƒ‰ํ•˜๋Š” ๊ฒƒ๊ณผ ํ”„๋ž‘์Šค์–ด ๋˜๋Š” ์ŠคํŽ˜์ธ์–ด์—์„œ ๊ฒ€์ƒ‰ํ•˜๋Š” ๊ฒƒ์ด ๋‹ค๋ฅผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

    6.2. ์ œ๋ชฉ (H1, H2, H3)

    ์ œ๋ชฉ์€ ๊ฐ ์ง€์—ญ์˜ ํ˜„์ง€ ๋ฌธ๊ตฌ ๋˜๋Š” ํ‚ค์›Œ๋“œ๋ฅผ ๋ฐ˜์˜ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ์›๋ž˜ ์˜์–ด ์ œ๋ชฉ์„ ๊ตฌ๊ธ€ ๋ฒˆ์—ญ๊ธฐ๋ฅผ ํ†ตํ•ด ์ฒ˜๋ฆฌํ•˜๊ณ  ๊ทธ๋ƒฅ ์‚ฌ์šฉํ•˜์ง€ ๋งˆ์‹ญ์‹œ์˜ค.

    6.3. ์ด๋ฏธ์ง€ ๋ฐ ๋ฏธ๋””์–ด

    • ํ•„์š”ํ•œ ๊ฒฝ์šฐ alt ํ…์ŠคํŠธ, ์บก์…˜ ๋ฐ ํŒŒ์ผ ์ด๋ฆ„์„ ํ˜„์ง€ํ™”ํ•˜์‹ญ์‹œ์˜ค.
    • ๋Œ€์ƒ ๋ฌธํ™”์™€ ๊ณต๊ฐํ•  ์ˆ˜ ์žˆ๋Š” ์‹œ๊ฐ ์ž๋ฃŒ๋ฅผ ์‚ฌ์šฉํ•˜์‹ญ์‹œ์˜ค.

    7. ์–ธ์–ด ์ „ํ™˜ ๋ฐ ์‚ฌ์šฉ์ž ๊ฒฝํ—˜

    7.1. ์ž๋™ ๋ฆฌ๋””๋ ‰์…˜ ๋˜๋Š” ์–ธ์–ด ์„ ํƒ๊ธฐ?

    • ์ž๋™ ๋ฆฌ๋””๋ ‰์…˜(IP ๋˜๋Š” ๋ธŒ๋ผ์šฐ์ € ์„ค์ •์— ๋”ฐ๋ผ)์€ ํŽธ๋ฆฌํ•  ์ˆ˜ ์žˆ์ง€๋งŒ ์—ฌํ–‰๊ฐ์ด๋‚˜ VPN ์‚ฌ์šฉ์ž๋ฅผ ์ž˜๋ชป๋œ ๋ฒ„์ „์œผ๋กœ ๋ณด๋‚ผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
    • ์–ธ์–ด ์„ ํƒ๊ธฐ๋Š” ๋” ํˆฌ๋ช…ํ•ฉ๋‹ˆ๋‹ค, ์‚ฌ์šฉ์ž๋Š” ์ž๋™ ๊ฐ์ง€๋œ ์–ธ์–ด๊ฐ€ ์ž˜๋ชป๋œ ๊ฒฝ์šฐ ์ž์‹ ์˜ ์–ธ์–ด๋ฅผ ์„ ํƒํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

    ๋‹ค์Œ์€ ๋‹จ์ˆœํ™”๋œ Next.js + Intlayer ์˜ˆ์ž…๋‹ˆ๋‹ค:

    tsx
    import { useLocation, useNavigate } from "react-router-dom";
    import {
      Locales,
      getHTMLTextDir,
      getLocaleName,
      getLocalizedUrl,
    } from "intlayer";
    import { useLocale } from "react-intlayer";
    import { type FC } from "react";
    
    const LocaleSwitcher: FC = () => {
      const location = useLocation(); // ํ˜„์žฌ URL ๊ฒฝ๋กœ๋ฅผ ๊ฐ€์ ธ์˜ต๋‹ˆ๋‹ค. ์˜ˆ: /fr/about
      const navigate = useNavigate();
    
      const changeUrl = (locale: Locales) => {
        // ์—…๋ฐ์ดํŠธ๋œ ๋กœ์ผ€์ผ๋กœ URL ๊ตฌ์„ฑ
        // ์˜ˆ: ๋กœ์ผ€์ผ์ด ์ŠคํŽ˜์ธ์–ด๋กœ ์„ค์ •๋œ ๊ฒฝ์šฐ /es/about
        const pathWithLocale = getLocalizedUrl(location.pathname, locale);
    
        // URL ๊ฒฝ๋กœ ์—…๋ฐ์ดํŠธ
        navigate(pathWithLocale);
      };
    
      const { locale, availableLocales, setLocale } = useLocale({
        onLocaleChange: changeUrl,
      });
    
      return (
        <ol>
          {availableLocales.map((localeItem) => (
            <li key={localeItem}>
              <a
                href={getLocalizedUrl(location.pathname, localeItem)}
                hrefLang={locale === localeItem ? "x-default" : localeItem}
                aria-current={locale === localeItem ? "page" : undefined}
                onClick={(e) => {
                  e.preventDefault();
                  setLocale(localeItem);
                }}
              >
                <span>
                  {/* ํ•ด๋‹น ๋กœ์ผ€์ผ์˜ ์–ธ์–ด - ์˜ˆ: Franรงais */}
                  {getLocaleName(localeItem, locale)}
                </span>
                <span dir={getHTMLTextDir(localeItem)} lang={localeItem}>
                  {/* ํ˜„์žฌ ๋กœ์ผ€์ผ์ด Locales.SPANISH๋กœ ์„ค์ •๋œ ๊ฒฝ์šฐ์˜ ์–ธ์–ด - ์˜ˆ: Francรฉs */}
                  {getLocaleName(localeItem)}
                </span>
                <span dir="ltr" lang={Locales.ENGLISH}>
                  {/* ์˜์–ด๋กœ ๋œ ์–ธ์–ด - ์˜ˆ: French */}
                  {getLocaleName(localeItem, Locales.ENGLISH)}
                </span>
                <span>
                  {/* ํ•ด๋‹น ๋กœ์ผ€์ผ์˜ ์–ธ์–ด - ์˜ˆ: FR */}
                  {localeItem}
                </span>
              </a>
            </li>
          ))}
        </ol>
      );
    };
    

    7.2. ์„ ํ˜ธ๋„ ์ €์žฅํ•˜๊ธฐ

    • ์‚ฌ์šฉ์ž์˜ ์–ธ์–ด ์„ ํƒ์„ ์ฟ ํ‚ค ๋˜๋Š” ์„ธ์…˜์— ์ €์žฅํ•ฉ๋‹ˆ๋‹ค.
    • ๋‹ค์Œ ๋ฐฉ๋ฌธ ์‹œ ์‚ฌ์šฉ์ž๊ฐ€ ์„ ํ˜ธํ•˜๋Š” ์–ธ์–ด๋ฅผ ์ž๋™์œผ๋กœ ๋กœ๋“œํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

    8. ์ง€์—ญ ๋ฐฑ๋งํฌ ๊ตฌ์ถ•ํ•˜๊ธฐ

    ๋ฐฑ๋งํฌ(์™ธ๋ถ€ ์‚ฌ์ดํŠธ์—์„œ ๊ท€ํ•˜์˜ ์‚ฌ์ดํŠธ๋กœ์˜ ๋งํฌ)๋Š” ์—ฌ์ „ํžˆ ์ค‘์š”ํ•œ SEO ์š”์†Œ์ž…๋‹ˆ๋‹ค. ๋‹ค๊ตญ์–ด ์‚ฌ์ดํŠธ๋ฅผ ์šด์˜ํ•  ๋•Œ ๊ณ ๋ คํ•ด์•ผ ํ•  ์‚ฌํ•ญ:

    • ์ง€์—ญ ๋‰ด์Šค ์‚ฌ์ดํŠธ, ๋ธ”๋กœ๊ทธ ๋˜๋Š” ํฌ๋Ÿผ์— ์—ฐ๋ฝํ•˜๊ธฐ. ์˜ˆ๋ฅผ ๋“ค์–ด, .fr ๋„๋ฉ”์ธ์ด ๊ท€ํ•˜์˜ ํ”„๋ž‘์Šค์–ด ํ•˜์œ„ ๋””๋ ‰ํ† ๋ฆฌ๋ฅผ ๊ฐ€๋ฆฌํ‚ค๋Š” ๊ฒƒ์€ ํ”„๋ž‘์Šค ์ง€์—ญ SEO๋ฅผ ํ–ฅ์ƒ์‹œํ‚ฌ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
    • ๊ฐ ์–ธ์–ด๋ณ„๋กœ ๋ฐฑ๋งํฌ๋ฅผ ๋ชจ๋‹ˆํ„ฐ๋งํ•˜์—ฌ ์–ด๋–ค ์ง€์—ญ์ด ๋” ๋งŽ์€ PR/๋งˆ์ผ€ํŒ… ๋…ธ๋ ฅ์ด ํ•„์š”ํ•œ์ง€ ํ™•์ธํ•˜์‹ญ์‹œ์˜ค.

    9. ๋‹ค๊ตญ์–ด ์‚ฌ์ดํŠธ ๋ชจ๋‹ˆํ„ฐ๋ง ๋ฐ ์œ ์ง€ ๊ด€๋ฆฌ

    9.1. Google Analytics ๋ฐ Search Console

    • ๊ฐ ์–ธ์–ด ๋””๋ ‰ํ† ๋ฆฌ(/en/, /fr/, /es/)๋ฅผ ์œ„ํ•ด ๋ฐ์ดํ„ฐ๋ฅผ ์„ธ๋ถ„ํ™”ํ•ฉ๋‹ˆ๋‹ค.
    • ์–ธ์–ด๋ณ„๋กœ ํฌ๋กค๋ง ์˜ค๋ฅ˜, ์ค‘๋ณต ์ฝ˜ํ…์ธ  ํ”Œ๋ž˜๊ทธ, ๋ฐ ์ƒ‰์ธ ๋ฌธ์ œ๋ฅผ ์ฃผ์˜ํ•ฉ๋‹ˆ๋‹ค.

    9.2. ์ •๊ธฐ์ ์ธ ์ฝ˜ํ…์ธ  ์—…๋ฐ์ดํŠธ

    • ๋ฒˆ์—ญ์„ ์‹ ์„ ํ•˜๊ฒŒ ์œ ์ง€ํ•ฉ๋‹ˆ๋‹ค. ์˜์–ด ์ œํ’ˆ ์„ค๋ช…์„ ๋ณ€๊ฒฝํ•˜๋ฉด ํ”„๋ž‘์Šค์–ด, ์ŠคํŽ˜์ธ์–ด ๋“ฑ์—์„œ๋„ ์—…๋ฐ์ดํŠธํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.
    • ์˜ค๋ž˜๋œ ๋ฒˆ์—ญ์€ ๊ณ ๊ฐ์—๊ฒŒ ํ˜ผ๋ž€์„ ์ค„ ์ˆ˜ ์žˆ์œผ๋ฉฐ ์‚ฌ์šฉ์ž ์‹ ๋ขฐ์— ํ•ด๋ฅผ ๋ผ์น  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

    10. ํ”ผํ•ด์•ผ ํ•  ์ผ๋ฐ˜์ ์ธ ์‹ค์ˆ˜

    1. ์ž๋™ ๋ฒˆ์—ญ๋œ ์ฝ˜ํ…์ธ  ์‚ฌ๋žŒ์˜ ๊ฒ€ํ†  ์—†์ด ์ž๋™ ๋ฒˆ์—ญ๋œ ์ฝ˜ํ…์ธ ๋Š” ์˜ค๋ฅ˜๊ฐ€ ๋งŽ์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

    2. ์ž˜๋ชป๋˜๊ฑฐ๋‚˜ ๋ˆ„๋ฝ๋œ hreflang ํƒœ๊ทธ ํƒœ๊ทธ๊ฐ€ ๋ถˆ์™„์ „ํ•˜๊ฑฐ๋‚˜ ์ž˜๋ชป๋œ ์ฝ”๋“œ๊ฐ€ ์žˆ์œผ๋ฉด ๊ฒ€์ƒ‰ ์—”์ง„์€ ์–ธ์–ด ๋ฒ„์ „์„ ์Šค์Šค๋กœ ๊ฒฐ์ •ํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค.

    3. JavaScript๋ฅผ ํ†ตํ•œ ์–ธ์–ด ์ „ํ™˜๋งŒ Google์ด ๊ฐ ์–ธ์–ด์— ๋Œ€ํ•ด ๊ณ ์œ ํ•œ URL์„ ํฌ๋กค๋งํ•  ์ˆ˜ ์—†๋‹ค๋ฉด ๊ท€ํ•˜์˜ ํŽ˜์ด์ง€๊ฐ€ ์˜ฌ๋ฐ”๋ฅธ ์ง€์—ญ ๊ฒ€์ƒ‰ ๊ฒฐ๊ณผ์— ๋‚˜ํƒ€๋‚˜์ง€ ์•Š์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

    4. ๋ฌธํ™”์  ๋‰˜์•™์Šค ๋ฌด์‹œํ•˜๊ธฐ ํ•œ ๊ตญ๊ฐ€์—์„œ ํ†ตํ•˜๋Š” ๋†๋‹ด์ด๋‚˜ ๋ฌธ๊ตฌ๊ฐ€ ๋‹ค๋ฅธ ๊ตญ๊ฐ€์—์„œ๋Š” ๋ถˆ์พŒ๊ฐ์ด๋‚˜ ์˜๋ฏธ๊ฐ€ ์—†์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

    Intlayer SEO Scanner๋กœ ์›น์‚ฌ์ดํŠธ ๊ฐ์‚ฌํ•˜๊ธฐ

    ๋‹ค๊ตญ์–ด ์•ฑ์ด ์™„๋ฒฝํ•˜๊ฒŒ ์ตœ์ ํ™”๋˜๋„๋ก ํ•˜๋ ค๋ฉด Intlayer SEO Scanner๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์ด ์ข‹์Šต๋‹ˆ๋‹ค. ๋‹ค๊ตญ์–ด ์›น์‚ฌ์ดํŠธ ๊ฒ€์‚ฌ์— ํŠนํ™”๋œ ๋„๊ตฌ๋กœ, ๋ชจ๋“  ํ˜„์ง€ํ™”๋œ ํŽ˜์ด์ง€์—์„œ ๋ˆ„๋ฝ๋œ hreflang ํƒœ๊ทธ, ๋Š์–ด์ง„ ๋งํฌ ๋ฐ ๊ธฐํƒ€ SEO ๋ฌธ์ œ๋ฅผ ์‹๋ณ„ํ•˜๋Š” ๋ฐ ๋„์›€์ด ๋ฉ๋‹ˆ๋‹ค.

    ๋งˆ๋ฌด๋ฆฌ

    ์›น์‚ฌ์ดํŠธ๋ฅผ ๋‹ค๊ตญ์–ด๋กœ ๋งŒ๋“œ๋Š” ๊ฒƒ์€ ๋‹จ์ˆœํžˆ ํ…์ŠคํŠธ๋ฅผ ๋ฒˆ์—ญํ•˜๋Š” ๊ฒƒ๋ณด๋‹ค ํ›จ์”ฌ ๋” ๋งŽ์€ ๊ฒƒ์„ ํฌํ•จํ•ฉ๋‹ˆ๋‹ค. ํšจ๊ณผ์ ์œผ๋กœ URL์„ ๊ตฌ์„ฑํ•˜๊ณ , ๊ฒ€์ƒ‰ ์—”์ง„์ด ์˜ฌ๋ฐ”๋ฅธ ๋ฒ„์ „์„ ์ œ๊ณตํ•˜๋„๋ก Hreflang ํƒœ๊ทธ๋ฅผ ์‚ฌ์šฉํ•˜๋ฉฐ, ํ˜„์ง€ํ™”๋œ ๋น„์ฃผ์–ผ, ์–ธ์–ด ์„ ํƒ๊ธฐ ๋ฐ ์ผ๊ด€๋œ ํƒ์ƒ‰์ด ์žˆ๋Š” ๋ฉ‹์ง„ ์‚ฌ์šฉ์ž ๊ฒฝํ—˜์„ ์ œ๊ณตํ•˜๋Š” ๊ฒƒ์ด ์ค‘์š”ํ•ฉ๋‹ˆ๋‹ค. ์ด๋Ÿฌํ•œ ๋ชจ๋ฒ” ์‚ฌ๋ก€๋ฅผ ๋”ฐ๋ฅด๋Š” ๊ฒƒ์€ ๊ธ€๋กœ๋ฒŒ ์‹œ์žฅ์—์„œ ์„ฑ๊ณต์„ ๊ฑฐ๋‘๊ณ  ์‚ฌ์šฉ์ž ๋งŒ์กฑ๋„๋ฅผ ๋†’์ด๋ฉฐ ๊ถ๊ทน์ ์œผ๋กœ ๋‹ค์–‘ํ•œ ์ง€์—ญ์—์„œ ๋”์šฑ ๋‚˜์€ SEO ๊ฒฐ๊ณผ๋ฅผ ์ด๋Œ์–ด๋‚ด๋Š” ๋ฐ ๋„์›€์ด ๋ฉ๋‹ˆ๋‹ค.

    Next.js(ํŠนํžˆ Next.js 13+์˜ App Router)๋ฅผ ์‚ฌ์šฉ ์ค‘์ด๋ผ๋ฉด Intlayer์™€ ๊ฐ™์€ ๋„๊ตฌ๊ฐ€ ์ด ์ „์ฒด ํ”„๋กœ์„ธ์Šค๋ฅผ ๊ฐ„์†Œํ™”ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋กœ์ปฌํ™”๋œ ์‚ฌ์ดํŠธ๋งต ์ƒ์„ฑ๋ถ€ํ„ฐ hreflang ๋งํฌ ์ž๋™ ์ฒ˜๋ฆฌ, ์–ธ์–ด ๊ฐ์ง€ ๋ฐ ๊ธฐํƒ€ ๋งŽ์€ ์ž‘์—…์„ ๋„์™€์ฃผ๋ฏ€๋กœ ํ’ˆ์งˆ ๋†’์€ ๋‹ค๊ตญ์–ด ์ฝ˜ํ…์ธ ๋ฅผ ๋งŒ๋“œ๋Š”๋ฐ้›†ไธญํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

    ๊ธ€๋กœ๋ฒŒ๋กœ ๋‚˜๊ฐˆ ์ค€๋น„๊ฐ€ ๋˜์…จ์Šต๋‹ˆ๊นŒ? ์ด์ œ ์ด๋Ÿฌํ•œ SEO ๋ฐ i18n ์ „๋žต์„ ๊ตฌํ˜„ํ•˜๊ธฐ ์‹œ์ž‘ํ•˜๊ณ  ์ „ ์„ธ๊ณ„์˜ ์ƒˆ๋กœ์šด ๋ฐฉ๋ฌธ์ž๋“ค์ด ๊ท€ํ•˜์˜ ์‚ฌ์ดํŠธ๋ฅผ ๋ฐœ๊ฒฌํ•˜๊ณ  ์ฐธ์—ฌํ•˜๋Š” ๊ฒƒ์„ ์ง€์ผœ๋ณด์‹ญ์‹œ์˜ค!

    ๋Œ“๊ธ€

    ์•„์ง ๋Œ“๊ธ€์ด ์—†์Šต๋‹ˆ๋‹ค. ์ฒซ ๋ฒˆ์งธ๋กœ ์˜๊ฒฌ์„ ๋‚˜๋ˆ ๋ณด์„ธ์š”.

    ๊ด€๋ จ ๊ฒŒ์‹œ๋ฌผ

    ์ตœ๊ทผ ๊ฒŒ์‹œ๋ฌผ