Tarotas By Inithouse: Managing 5 Languages on One Domain

We build tools at Inithouse. One of our products is Tarotas. It is a tarot card app. We offer content in five languages: Czech, English, Polish, Slovak, and German. All of this lives on one domain.

We had to choose a structure for our multilingual setup. We looked at three options:

  • Country-code TLDs (example.cz)
  • Subdomains (cs.example.com)
  • Subdirectories (example.com/cs/)

We chose subdirectories. Here is why.

Subdirectories keep everything in one place. You use one deployment, one SSL certificate, and one Search Console property. You also keep all your link authority in one bucket. This is vital for early-stage products.

Other options have high costs:

  • TLDs offer strong geo-targeting. But you must manage multiple domains and DNS records. This creates massive operational overhead.
  • Subdomains act as semi-independent sites. This splits your link authority. You also need separate Search Console properties for each.

Our technical stack also influenced this choice. Tarotas uses React. Subdirectories are just routes. Our router handles them easily. Subdomains would require complex DNS and deployment changes.

To make this work, we use hreflang tags. These tags tell search engines which language to show. However, implementation is tricky.

Common mistakes that break multilingual SEO:

  • Missing bidirectional links. If page A links to page B, page B must link back to page A.
  • Wrong canonical tags. Each language page must point to itself as the canonical URL. If you point all languages to one English URL, Google will de-index your other languages.
  • Client-side injection. Search engines might not see tags if you only inject them with JavaScript. You must ensure meta tags appear in the initial HTML.
  • Forgetting x-default. You need a fallback language for users with no language match.

Our advice for your multilingual product:

  • Use subdirectories if you want simplicity and shared authority.
  • Use TLDs if geographic targeting and local pricing matter more than language.
  • Ensure your canonical URLs are self-referencing for every language.
  • Use language-only tags if your content works across borders.
  • Monitor Google Search Console for duplicate content warnings.
  • Wait weeks for results. Google processes these signals slowly.

If your international traffic feels low, check your canonical tags first. That is usually where the error lives.

Source: https://dev.to/jakub_inithouse/tarotas-by-inithouse-how-we-handle-5-languages-on-one-domain-without-hreflang-disasters-1nc1