我正在使用Sinatra
构建一个专为4种不同语言设计的网站,并使用I18n
库来插入本地化内容,但我想知道如何处理标准HTML5
description
和keywords
之类的元标记,以及Google和其他搜索引擎在我对这些标记中的内容进行本地化时如何处理它们。
理想情况下,我希望能够告诉Google(等),可能是通过sitemap.xml
文件中的信息或其他东西(尽管我不确定甚至可能),该网站可能会被解析4种语言,因此可以根据用户的区域设置偏好向用户提供正确的本地化关键字和描述。
同样,我希望能够通过本地化相关的og
元标记和twitter:card`元标记来本地化发布到Twitter和Facebook的信息。
注意:无论选择哪种语言,实际页面网址都是相同的,本地化内容会在Slim
模板中呈现。
例如,指定
是否足够html lang='de_DE'
我正在采用最佳实践和DRY方式为我的国际用户提供完美的本地化搜索结果摘要信息。
答案 0 :(得分:4)
如果不同的语言版本位于同一个URL,那么搜索引擎获得的是您的服务器发送给指定任何语言首选项的浏览器的内容。根据你的描述,它似乎总是得到默认(英语)版本。没有meta
代码或lang
属性会影响这一点。 (搜索引擎会忽略lang
属性。)
所以你应该安排一些东西,以便页面的每个语言版本都有自己的URL。 (差异可能只在查询部分,例如最后的?lang=de-DE
。)此外,版本应该是相互关联的,link
元素或可见的a
链接,这样当搜索引擎找到了一个版本,它也会通过以下链接找到其他版本。
P.S。编写<meta name=keywords ...>
标签可能是浪费时间。谷歌很久以前就有ignored个。
答案 1 :(得分:4)
您可以使用lang
attribute在同一HTML文档中为meta
元素提供不同语言的内容:
<meta name="description" lang="de" content="…" />
<meta name="description" lang="en" content="…" />
<meta name="description" lang="es" content="…" />
<meta name="description" lang="fr" content="…" />
如果谷歌或Facebook等任何第三方服务认识到这是一个无法回答的不同问题,具体取决于具体服务,背景和时间点,因为事情可能会迅速改变。
但是(也可以Jukka K. Korpela notes),通常您应该使用单独的URL进行翻译。为用户(以及搜索引擎等)提供链接到特定语言版本的能力。