Tarotas від Inithouse: управління 5 мовами на одному домені

Ми створюємо інструменти в Inithouse. Один із наших продуктів — Tarotas. Це додаток для розкладу карт Таро. Ми пропонуємо контент п'ятьма мовами: чеською, англійською, польською, словацькою та німецькою. Усе це розміщено на одному домені.

Нам потрібно було обрати структуру для нашої багатомовної системи. Ми розглянули три варіанти:

  • Домени верхнього рівня (TLD) з кодом країни (example.cz)
  • Піддомени (cs.example.com)
  • Підкаталоги (example.com/cs/)

Ми обрали підкаталоги. Ось чому.

Підкаталоги дозволяють тримати все в одному місці. Ви використовуєте одне розгортання (deployment), один SSL-сертифікат і одну властивість у Search Console. Ви також зберігаєте весь авторитет посилань в одному «кошику». Це життєво важливо для продуктів на ранніх стадіях розвитку.

Інші варіанти мають високу вартість:

  • TLD пропонують потужне геотаргування. Але вам доведеться керувати кількома доменами та DNS-записами. Це створює величезні операційні витрати.
  • Піддомени діють як напівнезалежні сайти. Це розділяє ваш авторитет посилань. Вам також знадобляться окремі властивості Search Console для кожного з них.

Наш технологічний стек також вплинув на цей вибір. Tarotas використовує React. Підкаталоги — це просто маршрути (routes). Наш роутер легко з ними справляється. Піддомени потребували б складних змін у DNS та розгортанні.

Щоб це працювало, ми використовуємо теги hreflang. Ці теги вказують пошуковим системам, яку мову показувати. Однак реалізація є непростою.

Поширені помилки, які псують багатомовне SEO:

  • Відсутність двосторонніх посилань. Якщо сторінка А посилається на сторінку Б, сторінка Б повинна посилатися назад на сторінку А.
  • Неправильні канонічні теги (canonical tags). Кожна мовна сторінка повинна вказувати на саму себе як на канонічну URL-адресу. Якщо ви спрямуєте всі мови на одну англійську URL-адресу, Google деіндексує ваші інші мови.
  • Ін'єкція на стороні клієнта (Client-side injection). Пошукові системи можуть не побачити теги, якщо ви впроваджуєте їх лише за допомогою JavaScript. Ви повинні переконатися, що метатеги з'являються в початковому HTML.
  • Забуття x-default. Вам потрібна мова за замовчуванням (fallback language) для користувачів, чия мова не збігається з наявними.

Наша порада для вашого багатомовного продукту:

  • Використовуйте підкаталоги, якщо хочете простоти та спільного авторитету.
  • Використовуйте TLD, якщо геотаргування та локальне ціноутворення важливіші за мову.
  • Переконайтеся, що ваші канонічні URL-адреси є самопосилальними (self-referencing) для кожної мови.
  • Використовуйте теги лише для мови, якщо ваш контент є універсальним для різних країн.
  • Стежте за попередженнями про дубльований контент у Google Search Console.
  • Чекайте на результати тижнями. Google обробляє ці сигнали повільно.

Якщо ваш міжнародний трафік здається низьким, спочатку перевірте свої канонічні теги. Зазвичай помилка саме там.

Джерело: https://dev.to/jakub_inithouse/tarotas-by-inithouse-how-we-handle-5-languages-on-one-domain-without-hreflang-disasters-1nc1