Tarotas By Inithouse: 하나의 도메인에서 5개 언어 관리하기
Inithouse는 다양한 도구를 개발합니다. 저희 제품 중 하나는 타로 카드 앱인 Tarotas입니다. 저희는 체코어, 영어, 폴란드어, 슬로바키아어, 독일어 등 5개 언어로 콘텐츠를 제공하며, 이 모든 것은 하나의 도메인에서 운영됩니다.
다국어 설정을 위한 구조를 선택해야 했습니다. 저희는 세 가지 옵션을 검토했습니다:
- 국가 코드 TLD (example.cz)
- 서브도메인 (cs.example.com)
- 하위 디렉터리 (example.com/cs/)
저희는 하위 디렉터리를 선택했습니다. 그 이유는 다음과 같습니다.
하위 디렉터리는 모든 것을 한곳에 모아줍니다. 하나의 배포, 하나의 SSL 인증서, 하나의 Search Console 속성만 사용하면 됩니다. 또한 모든 링크 권위(link authority)를 한곳에 집중시킬 수 있습니다. 이는 초기 단계의 제품에 매우 중요합니다.
다른 옵션들은 비용이 많이 듭니다:
- TLD는 강력한 지리적 타겟팅을 제공합니다. 하지만 여러 도메인과 DNS 레코드를 관리해야 하며, 이는 막대한 운영 오버헤드를 발생시킵니다.
- 서브도메인은 반독립적인 사이트처럼 작동합니다. 이로 인해 링크 권위가 분산됩니다. 또한 각 서브도메인마다 별도의 Search Console 속성이 필요합니다.
기술 스택 또한 이 선택에 영향을 미쳤습니다. Tarotas는 React를 사용합니다. 하위 디렉터리는 단순한 라우트(route)일 뿐이며, 저희의 라우터가 이를 쉽게 처리합니다. 반면 서브도메인을 사용하려면 복잡한 DNS 및 배포 변경이 필요합니다.
이를 구현하기 위해 저희는 hreflang 태그를 사용합니다. 이 태그는 검색 엔진에 어떤 언어를 보여줄지 알려줍니다. 하지만 구현이 까다롭습니다.
다국어 SEO를 망치는 흔한 실수들:
- 양방향 링크 누락. 페이지 A가 페이지 B로 링크를 건다면, 페이지 B도 반드시 페이지 A로 링크를 걸어야 합니다.
- 잘못된 canonical 태그. 각 언어 페이지는 자기 자신을 canonical URL로 가리켜야 합니다. 만약 모든 언어 페이지가 하나의 영어 URL을 가리키게 되면, Google은 다른 언어 페이지들을 색인에서 제외(de-index)할 것입니다.
- 클라이언트 사이드 주입. JavaScript로만 태그를 주입하면 검색 엔진이 태그를 인식하지 못할 수 있습니다. 메타 태그가 초기 HTML에 포함되도록 해야 합니다.
- x-default 누락. 언어가 일치하지 않는 사용자를 위한 대체(fallback) 언어가 필요합니다.
다국어 제품을 위한 저희의 조언입니다:
- 단순함과 권위 공유를 원한다면 하위 디렉터리를 사용하세요.
- 언어보다 지리적 타겟팅과 현지 가격 책정이 더 중요하다면 TLD를 사용하세요.
- 모든 언어에 대해 canonical URL이 자기 자신을 참조(self-referencing)하도록 설정하세요.
- 콘텐츠가 국경에 관계없이 통용된다면 언어 전용 태그를 사용하세요.
- Google Search Console에서 중복 콘텐츠 경고가 있는지 모니터링하세요.
- 결과가 나오기까지 몇 주를 기다리세요. Google은 이러한 신호를 천천히 처리합니다.
해외 트래픽이 낮다고 느껴진다면, 먼저 canonical 태그를 확인하세요. 대개 그곳에 오류가 있습니다.
