我阅读了很多关于这些主题的内容,我知道没有任何解决方案可以完美地处理多语言网站。我使用different folder为不同语言提供内容,因此我有www.example.com/en
,www.example.com/es
等。
当用户第一次访问该网站www.example.com
时,我会从Accept-Language
HTTP标头中选择最匹配的语言,并使用en
版本将其重定向到最合适的页面语言匹配。因此,www.example.com
处没有真实的网页,它始终会生成重定向。
这对用户和搜索引擎都很有效,但这种方法存在缺陷,喜欢分布在不同的语言中,我希望所有这些都适用于www.example.com
如果我将og:url
设置为根页面FB抓取工具有关重定向循环的投诉,因为它来自www.example.com
,然后重定向到www.example.com/en
已设置og:url
到www.example.com
。我希望保持统一的喜欢,例如www.example.com/es
的喜欢和www.example.com/en
之类的喜欢同时计算主域名。
我目前的解决方案是以这种方式修改重定向代码:当用户代理是facebook时,在请求www.example.com
时永远不会重定向。使用默认区域设置或区域设置requested by FB和fb_locale
参数。
我还添加了区域设置开放图标记来告诉FB我的网页的不同区域设置。
最后,我将规范的url标记保留为语言环境部分,因为每种语言都以这种方式提供自己的内容,搜索引擎应该知道这一点。这是(或多或少)主页的头部分
<meta content="website" property="og:type" />
<meta content="http://www.example.com/" property="og:url" />
<meta content="en_US" property="og:locale" />
<meta content="es_ES" property="og:locale:alternate" />
<meta content="fr_FR" property="og:locale:alternate" />
<link href="http://www.example.com/en" rel="canonical" />
通过这种方式,一切似乎都有效,并且计数在所有语言中共享。我只是通过facebook调试器发出警告
不匹配og:url和规范网址:标题中的og:url标记不是 与rel =&#39;规范&#39;相同的网址链接在HTML中。
这个设置是否正确?我对这个标记有任何问题吗?
Similar question但他希望每个国家都喜欢。
答案 0 :(得分:0)
出于SEO的目的,我建议您使用href_lang和此类语法: 例如,当您使用法语时,使用fr和en语言
<link rel="canonical" href="http://www.yourdomain.com/fr" />
<link rel="alternate" href="http://www.yourdomain.com/fr" hreflang="fr-FR" />
<link rel="alternate" href="http://www.yourdomain.com/en/" hreflang="en-US" />