我阅读了很多关于这些主题的内容,我知道没有一种完美的解决方案来处理多语言站点。我正在使用不同的文件夹来为不同的语言提供内容,因此我有
当用户第一次访问
这对用户和搜索引擎都非常有效,但这种方法存在缺陷,即喜欢(likes)分散在不同的语言中,我希望所有喜欢都集中在
如果我将
我的当前解决方案是以这种方式修改重定向代码:当请求
我还添加了本地化开放图谱标记,告诉FB我的页面有不同的语言环境。
最后,我保留了具有语言环境部分的规范URL标记,因为每种语言都以这种方式提供自己的内容,因此搜索引擎应该意识到这一点。这是首页的头部(或多或少)。
以这种方式,似乎一切正常,并且点赞数在所有语言之间共享。我只收到了 Facebook 调试器的警告。
www.example.com/en
、www.example.com/es
等。当用户第一次访问
www.example.com
时,我会从Accept-Language
HTTP标头中选择最匹配的语言,并将其重定向到最合适的页面,如果没有语言匹配,则使用en
版本。因此,在www.example.com
上没有真正的页面,它总是生成一个重定向。这对用户和搜索引擎都非常有效,但这种方法存在缺陷,即喜欢(likes)分散在不同的语言中,我希望所有喜欢都集中在
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
的喜欢都应计入主域名。我的当前解决方案是以这种方式修改重定向代码:当请求
www.example.com
时,如果用户代理是Facebook,则永远不要重定向。使用默认语言环境或由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 和 canonical url 不匹配:头部中的 og:url 标签与 HTML 中的 rel='canonical' 链接的 URL 不同。