我正在开发一个SPA网络应用程序,它将支持各种语言。它是使用AngularJS构建的,我使用angular-translate来提供i18n。
但是我对URL结构应该如何挣扎。我不打算使用通用顶级域名(gTLD)和ccTLD,因此我有三个选择。
?locale=en-us
/en-us/page
根据Google的网络应用搜索引擎优化指南,第一个选项是禁止使用。所以这给我留下了最后两个选项。
我很难决定哪个更有利,但我倾向于相信使用网址路径可能会更加友好。
P.S:不确定这是否是提出这样一个问题的最佳地点。答案 0 :(得分:1)
第二个选项是您最安全的选择,因为根据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提到谷歌抓取并执行javascript内容。
答案 1 :(得分:0)
您应该使用第二个选项:在网址路径as first segment中提供语言标记(以及可选的区域子标记)。
由于简单的原因,它允许您,访问者和机器人链接到特定的翻译。