这是我关于如何为多语言网站构建 URL 的完整答案。
有许多可接受的方式来构建您的网站以实现 SEO 和国际化。每个都有优点和缺点。
顶级域
在多个顶级国家/地区域购买相同的域名,例如example.com
,example.es
和example.de
.
优点
- 完全由谷歌支持。您可以将这些网站添加到Google 网站管理员工具,其中有选项可以告诉 Google 如何定位它们。
- 通常受到倾向于喜欢在其国家/地区的 TLD 上发布的内容的用户的青睐
- 域名本身可以本地化。许多国际用户可能对英语单词或发音为英语的域名反应不佳。这对于不使用拉丁字母的语言尤其重要。
- 支持按国家/地区本地化。您可以拥有不同的网站,例如
example.co.uk
并example.com.au
针对不同国家/地区的受众。这些网站可能有重复的内容,有轻微的拼写差异,但排名仍然很好。事实上,同一种语言的多个本地化站点可能比该语言的单个站点排名更好。
- 可以通过将 DNS 指向目标国家/地区的 Web 服务器来本地化托管。
缺点
- 购买许多域名既昂贵又耗时。特别是如果您必须处理擅自占地者。
- Cookie 不能跨多个区域共享,这意味着用户必须分别登录到每个站点。
- 仅按语言进行本地化没有很好的选择,因为许多语言有多个国家,并且没有国家 TLD 可能是语言代码。即使在 TLD 与语言代码(如
es
.
子域
购买单个域,并使用子域,例如en.example.com
, 和es.example.com
优点
- 完全由谷歌支持。
- 支持按国家或按语言进行本地化。
- 可以通过将 DNS 指向靠近用户的 Web 服务器来本地化托管。
- 与购买多个域名相比,实施起来既简单又便宜。
- Cookie 可以在所有地区共享,从而实现单点登录以获得更无缝的用户体验。
缺点
- 没有机会本地化域名本身
- 与顶级域相比,用户可能看起来不那么本地化。
子目录
购买单个域,并使用子目录,例如example.com/en/
, 和example.com/es/
的优点和缺点
- 与子域相同,只是有一个 DNS 条目会阻止您在多个国家/地区为不同的语言环境托管您的站点。
不推荐的技术
- 文件名:使用不同的文件名,例如
index_en.html
和index_de.html
。Google 不完全支持此技术。例如,无法在网站管理员工具中设置定位。
- URL 参数:使用 URL 参数,例如
lang=en
. 不推荐使用不同文件名的原因相同。
- 接受语言标题:根据标题自动切换语言
Accept-Language
。
- 许多用户没有正确设置此标头。对于可能正在使用朋友的计算机或网吧的出国旅行的用户来说尤其如此。对于安装了英语网络浏览器并了解足够英语的国际用户来说,通常也是如此,但他们更喜欢不同语言的内容。
- 谷歌刚刚宣布,Googlebot 将发送
Accept-Language
标头并从不同的地理位置抓取。但是,Google 仍然建议您为不同语言的内容设置单独的 URL。
- 您可以使用标题来建议用户可能更喜欢网站的不同版本,方法是在他们访问的网站与标题
Accept-Language
不匹配时显示一条消息。Accept-Language
- 地理 IP 地址:根据 IP 地址的地理位置自动切换语言。
页面标记
当支持多种语言时,您应该清楚地标记语言元数据。
在html
标签中使用 lang 属性:
<html lang="en">
按照Google的建议,使用其他语言的 rel 替代链接指向同一页面:
<link rel="alternate" hreflang="es" href="http://www.example.com/" />
<link rel="alternate" hreflang="es-ES" href="http://es-es.example.com/" />
<link rel="alternate" hreflang="es-MX" href="http://es-mx.example.com/" />
<link rel="alternate" hreflang="en" href="http://en.example.com/" />
或者,可以将此信息放入站点地图文件中。
向 Google 介绍您的网站
您应该将网站的每种语言(或区域设置)添加到Google Webmaster Tools。这可以为顶级域、子域或子目录完成。
如果您的网站是按国家/地区定位的,您应该使用网站管理员工具来设置网站定位。导航到“配置”->“设置”->“地理目标”,然后从下拉列表中选择正确的国家/地区。