使用 Firebase Hosting i18n 重写时如何告诉搜索引擎网站的本地化版本?

How to tell search engines about localized versions of the website when using Firebase Hosting i18n rewrites?

Firebase 最近有 announced support for the i18n rewrites 功能。它允许您根据用户的国家或首选语言提供不同的内容。

但是由于内容的不同版本在相同 URL 下提供,搜索引擎抓取工具将只能找到一个版本的本地化内容。

如果没有 i18n 重写,我需要创建一个根页面,根据用户的语言偏好或位置重定向到本地化页面(myapp.com 重定向到 myapp.com/en/myapp.com/fr/ ).使用这种方法,爬虫可以轻松找到我网站的所有本地化版本并为其编制索引。

但是我怎样才能通过 i18n 重写实现这种可发现性呢?

您应该能够为此使用 <link rel="alternate"><link rel="canonical"> 的组合。 Firebase 托管仍会从完整路径提供您的本地化内容(例如,如果您的 root/intl 并且有人访问 /intl/fr 他们将看到法语内容,而不管 header 和饼干)。

Google 爬虫将使用来自多个国家/地区的本地 IP,但 不会 Accept-Language header 在抓取时(source).所以我的建议是:

  1. 在您的所有页面中,为每个本地化版本添加 <link rel="alternate" langhref="{lang}" href="{url}"> 标签,其中 {url} 是本地化版本的绝对值 URL(例如 /intl/fr/about.html)。
  2. 在所有本地化页面中,添加指向完整本地化版本的 <link rel="canonical" href="{url}">。 (参见 Google guidance

有了这些标签,Google 应该能够发现您站点中的 multi-language 和 multi-locale 内容。