我正在改进的SEO在我们客户的多语种网站之一。目前,网站通过检查系统上次访问时设置的语言cookie,以他们喜欢的语言传递站点。如果cookie不存在,它将从浏览器中查找"Accept- language“标题,并检查站点支持的语言。如果失败了,它默认使用一种基于GEO-Location的预设默认值的语言。一旦我们确定了一种语言,该网站将返回页面的语言确定,没有改变的URL和所有适当的元标记为该语言。因此,如果说西班牙语的用户请求domain.com/ speaker /access/,我们就会看到西班牙语,而讲英语的人则会看到英语。当然,如果用户单击包含lang=?的查询字符串的语言选择链接。会是es,嗯,等等)他们的cookie将被转换成那种语言,从那时起他们就会得到这种语言。
这种方法的问题是,虽然通常对个人很好,但爬虫(目前)在请求页面时不会传递“接受语言”标题。这意味着结果显示给使用Google,Bing等的用户。通常是默认语言,有时是完全不同的语言,这取决于爬虫到页面的路径以及它如何决定索引它。这是扼杀我们的SEO和点击-尽管在默认语言之外。
对于如何改变用户语言的处理,我们有两个想法。
版本1-所有语言都有一个子目录,如果用户点击一个没有语言目录的URL,我们将按照以下步骤检查用户语言,直到匹配为止。
一旦确定了语言,系统将设置cookie,执行301指令,并将语言子目录添加到URL中,URL将被mod-重写解析,并作为查询字符串参数传递。
版本2-所有新语言都有一个子目录,当用户第一次访问该站点时,如果他们访问了一个没有语言目录的URL,我们将按照以下步骤检查用户语言,直到匹配为止。
如果检测到支持的语言,系统将设置cookie。如果语言不是默认语言,系统将执行301指令,如果语言不是默认的站点语言,则将语言子目录添加到URL中,该语言将被mod-重写解析并作为查询字符串参数传递。
对更好的选择有什么意见吗?
我们应该如何处理规范URL取决于我们选择的选项,规范URL是指向没有语言子目录的主URL,还是应该指向当前语言子目录的版本?
如果可能的话,客户想让社交网络的计数器反映所有语言的页面总数,我们假设拥有单独的语言子目录将阻止这一点,除非我们对单个URL使用规范,这可能会导致爬虫出错,并否定语言变化的全部意义。
有什么理想的解决方案我可能会错过吗?
发布于 2011-04-02 10:18:13
我不知道您正在使用的CMS的功能,但这是我的建议。
首先,尝试避免URL参数,并选择一个明确的URL方案。对于“联系人”页面,它可能如下所示:
英文版:http://domain.com/en/contact波兰版:http://domain.com/pl/kontakt
或者:
英文版:http://en.domain.com/contact波兰版:http://pl.domain.com/kontakt
这样,URL对于用户来说总是容易理解的。不要对非英语页面使用英文URL,因此对于波兰页面使用"kontakt“而不是"contact”。毕竟,如果一个URL对访问者来说是可理解的,那么它需要使用他或她选择使用的语言。
如果您想通知搜索引擎当前页面的语言,您可以同时使用以下三个选项:
Content-Language: xx。<meta http-equiv="Content-Language" content="xx" />。请记住,这在HTML5中是过时的。<html lang="xx">中使用'lang“属性希望这能有所帮助!
https://webmasters.stackexchange.com/questions/11532
复制相似问题