Tarotas By Inithouse:在一个域名下管理 5 种语言

我们在 Inithouse 开发工具。我们的产品之一是 Tarotas,它是一款塔罗牌应用。我们提供五种语言的内容:捷克语、英语、波兰语、斯洛伐克语和德语。所有这些内容都运行在同一个域名下。

我们必须为多语言设置选择一种结构。我们考虑了三种方案:

  • 国家代码顶级域名 (TLD) (例如 example.cz)
  • 子域名 (cs.example.com)
  • 子目录 (example.com/cs/)

我们选择了子目录。原因如下。

子目录将所有内容集中在一起。你只需要一次部署、一个 SSL 证书和一个 Search Console 属性。同时,你也可以将所有的链接权重(link authority)集中在一起。这对于处于早期阶段的产品至关重要。

其他方案的成本较高:

  • TLDs 提供强大的地理定位能力。但你必须管理多个域名和 DNS 记录,这会产生巨大的运维开销。
  • 子域名表现得像是半独立的网站。这会分散你的链接权重。此外,你还需要为每个子域名设置独立的 Search Console 属性。

我们的技术栈也影响了这一选择。Tarotas 使用 React。子目录仅仅是路由(routes),我们的路由器可以轻松处理它们。而子域名则需要复杂的 DNS 和部署变更。

为了实现这一点,我们使用了 hreflang 标签。这些标签会告诉搜索引擎应该显示哪种语言。然而,实现起来非常棘手。

会破坏多语言 SEO 的常见错误:

  • 缺少双向链接。如果页面 A 链接到页面 B,那么页面 B 也必须链接回页面 A。
  • 错误的 canonical 标签。每个语言页面都必须将自身指向为 canonical URL。如果你将所有语言页面都指向同一个英语 URL,Google 会将你的其他语言页面从索引中移除。
  • 客户端注入。如果你仅通过 JavaScript 注入标签,搜索引擎可能无法识别。你必须确保 meta 标签出现在初始 HTML 中。
  • 忘记设置 x-default。对于没有匹配语言的用户,你需要一个备用语言。

我们对多语言产品的建议:

  • 如果你追求简单并希望共享权重,请使用子目录。
  • 如果地理定位和本地定价比语言更重要,请使用 TLDs。
  • 确保每个语言的 canonical URL 都是自引用的。
  • 如果你的内容可以跨越国界使用,请使用仅限语言的标签。
  • 监控 Google Search Console 中的重复内容警告。
  • 等待数周看结果。Google 处理这些信号的速度较慢。

如果你的国际流量感觉较低,请首先检查你的 canonical 标签。错误通常就出在那里。

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