我有一个Django站点,它将本地化中间件与gettext和trans / blocktrans模板标签结合使用,根据用户代理字符串中的首选语言向访问者显示不同的页面(这似乎是标准的做事方式)在Django)。
这适用于支持的语言(目前只有西班牙语,英语和德语,还有更多)。如果我将浏览器中的首选语言设置为其他语言,我会获得该翻译的页面。但是,我不知道它对搜索引擎的影响。
当搜索引擎抓取某个网站时,它的代理字符串中是否通常有首选语言?德国蜘蛛会获得德国网站,西班牙人会获得西班牙语网站吗,或者他们只会获得用户没有语言设置时显示的默认英文网站?这是否因搜索引擎而异,是否存在个别爬虫可能会或可能不会遵守的“标准方法”?
答案 0 :(得分:3)
机器人通常在http标头中没有接受语言设置。这意味着django将为您的默认语言提供服务。 区域搜索引擎可以让机器人将接受语言设置为他们喜欢的任何东西,但你不能依赖它。 每种语言最好有不同的页面。例如http://your.website.com/english/ 如果存在特定的接受语言,则在中间件中设置重定向到正确的语言页面。
答案 1 :(得分:2)
不要依赖搜索引擎在这方面可能做的事情。您希望抓取所有版本。为此:
总的来说,我相信我在my homepage上的方式在搜索引擎和普通用户方面都非常理想:
<link rel="canonical" href="/en/">
告诉搜索引擎可以找到该页面的特定语言网址。答案 2 :(得分:0)
使用this answer但确保您使用不同语言的不同网址。更好的是,将不同的域扩展名(example.de,example.es)与hreflang meta tag框架结合使用。