URL 多语言网站的结构
URL structure for multilingual websites
我正在开发一个 SPA 网络应用程序,它将支持多种语言。它是用 AngularJS 构建的,我正在使用 angular-translate 来提供 i18n。
但我对 URL 结构应该如何做有点挣扎。我不打算使用 gTLD 或 ccTLD,所以我只有三个选择。
- 使用查询参数:
?locale=en-us
- 使用 url 路径:
/en-us/page
- 将选择的语言环境存储在 localStorage 或 cookie 中
根据 Google 的网络应用程序 SEO 指南,第一个选项是不行的。所以我只剩下最后两个选择了。
我很难决定哪个更有用,尽管我倾向于认为使用 url 路径可能对爬虫更友好。
P.S: 也不确定这里是否是提出此类问题的最佳场所。
第二个选项是最安全的选择,因为根据 https://webmasters.stackexchange.com/questions/59652/what-happens-if-i-try-to-set-a-cookie-on-a-bot cookie 将被忽略。您可以通过转到 Google 控制台并获取您的网站来自行测试。
截至目前大多数爬虫忽略 cookie 并且不执行 JavaScript。这意味着他们通常只是下载 html 并从那里做出判断。
一些开发人员通过预渲染部分内容来解决没有 javascript 的问题。我没有亲自做过,但你可能想看看 https://prerender.io/
编辑
如 rolandjitsu 所述,google 抓取并执行 javascript 内容。
您应该选择第二个选项:在 URL 路径 .
中提供语言标签(以及可选的区域子标签)
原因很简单,它允许您、访问者和机器人 link 进行特定翻译。
我正在开发一个 SPA 网络应用程序,它将支持多种语言。它是用 AngularJS 构建的,我正在使用 angular-translate 来提供 i18n。
但我对 URL 结构应该如何做有点挣扎。我不打算使用 gTLD 或 ccTLD,所以我只有三个选择。
- 使用查询参数:
?locale=en-us
- 使用 url 路径:
/en-us/page
- 将选择的语言环境存储在 localStorage 或 cookie 中
根据 Google 的网络应用程序 SEO 指南,第一个选项是不行的。所以我只剩下最后两个选择了。
我很难决定哪个更有用,尽管我倾向于认为使用 url 路径可能对爬虫更友好。
P.S: 也不确定这里是否是提出此类问题的最佳场所。
第二个选项是最安全的选择,因为根据 https://webmasters.stackexchange.com/questions/59652/what-happens-if-i-try-to-set-a-cookie-on-a-bot cookie 将被忽略。您可以通过转到 Google 控制台并获取您的网站来自行测试。
截至目前大多数爬虫忽略 cookie 并且不执行 JavaScript。这意味着他们通常只是下载 html 并从那里做出判断。
一些开发人员通过预渲染部分内容来解决没有 javascript 的问题。我没有亲自做过,但你可能想看看 https://prerender.io/
编辑
如 rolandjitsu 所述,google 抓取并执行 javascript 内容。
您应该选择第二个选项:在 URL 路径
原因很简单,它允许您、访问者和机器人 link 进行特定翻译。