如何为SEO和本地化构建URL?


111

当我以多种语言设置网站时,如何设置搜索引擎和可用性的URL?

假设我的网站是www.example.com,并且我正在翻译成法语和西班牙语。什么对可用性和SEO最好?

目录选项:

http://www.example.com/sample.html
http://www.example.com/fr/sample.html
http://www.example.com/es/sample.html

子域选项:

http://www.example.com/sample.html
http://fr.example.com/sample.html
http://es.example.com/sample.html

文件名选项:

http://www.example.com/sample.html
http://www.example.com/sample.fr.html
http://www.example.com/sample.es.html

接受语言标头:

还是我应该简单地解析Accept-Language标头并在服务器端生成适合该标头的内容?

还有另一种方法吗?如果不同的语言版本没有不同的网址,那么该如何处理搜索引擎?


更新2011-12-06

Google针对meta标记明确提出了指向其他语言内容的新建议:针对多种语言内容的新标记

更新2012-05-25

相关但不完全精确:站点地图中的多语言和跨国站点注释

2013-06-12更新将 网站内容定位到特定国家/地区包括对与该问题直接相关的几种URL方案的讨论。


这个问题有一些很好的相关信息: webmasters.stackexchange.com/questions/961/...
JasonBirch

当您想本地化而不仅仅是翻译时,您还应该考虑使用“ en-us”,“ de-de”之类的代码。
webjunkie 2010年

西蒙·海特 您对问题的更改已回滚。您添加了其他现有问题无法解决的添加项。如果您想使用更详尽的选项集来创建新问题,但是更改我的问题会使问题和答案失真,我相信用户会感到困惑。谢谢。
artlung

Answers:


92

有许多可接受的方法来为SEO和国际化构建网站。每种都有优点和缺点。

顶级域名

购买相同的域名在像多个顶级国家域名example.comexample.esexample.de

好处

  • 完全由Google支持。您可以将网站添加到Google网站站长工具中,在其中可以通过选项告诉Google他们的定位方式。
  • 倾向于喜欢其国家/地区的TLD上发布的内容的用户通常会偏爱
  • 域名本身可以本地化。许多国际用户可能对英语单词或英语发音域名的反应不佳。这对于不使用拉丁字母的语言尤其重要。
  • 支持按国家/地区进行本地化。您可以拥有不同的网站,example.co.ukexample.com.au针对不同国家的受众群体。这些网站的内容可能重复,拼写差异也很小,但排名仍然不错。实际上,使用相同语言的多个位置良好的站点可能会比使用该语言的单个站点的排名更好。
  • 可以通过将DNS指向目标国家/地区的Web服务器来本地化托管。

缺点

  • 购买多个域名既昂贵又费时。特别是如果您必须与擅自占地者打交道。
  • Cookies不能在多个区域共享,这意味着用户必须分别登录每个站点。
  • 由于许多语言有多个国家/地区,而且没有国家/地区顶级域名(TLD)可能是语言代码,因此仅通过语言进行本地化没有很好的选择。即使在TLD确实匹配语言代码(例如)的情况下es,搜索引擎也可能会认为该网站仅适合来自西班牙的用户,而不适合所有讲西班牙语的用户。

子域

购买一个域名,并使用子域名,例如en.example.com,和es.example.com

好处

  • 完全由Google支持。
  • 支持按国家语言进行本地化。
  • 可以通过将DNS指向靠近用户的Web服务器来本地化托管。
  • 与购买多个域相比,实施起来容易且便宜。
  • Cookie可以在所有语言环境中共享,从而实现单点登录,从而提供更加无缝的用户体验。

缺点

  • 没有机会本地化域名本身
  • 与顶级域相比,对于用户而言,本地看起来可能更少。

子目录

购买一个域,并使用子目录,例如example.com/en/example.com/es/

的优点和缺点

  • 与子域相同,不同之处在于,只有一个DNS条目会阻止您在不同国家/地区的多个国家/地区托管您的网站。

推荐的技术

  • 文件名:使用不同的文件名,例如index_en.htmlindex_de.html。Google并未完全支持此技术。例如,无法在网站站长工具中设置定位。
  • URL参数:使用URL参数,例如lang=en。由于相同的原因,不建议您使用不同的文件名,因此不建议这样做。
  • 接受语言标题:根据标题自动切换语言Accept-Language
    • 许多用户没有正确设置此标头。对于可能正在使用朋友的计算机或网吧的出国旅行的用户而言,尤其如此。对于安装英语Web浏览器并且知道足够多的英语知识的国际用户来说,通常也是如此,但是他们希望使用其他语言的内容。
    • Google刚刚宣布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网站站长工具。可以对顶级域,子域或子目录执行此操作。

如果您的网站是按国家/地区定位的,则应使用网站管理员工具来设置网站的定位。导航到“配置”->“设置”->“地理目标”,然后从下拉列表中选择目标正确的国家。


“与子域相同,只不过有一个DNS条目可以阻止在不同国家/地区的多个国家/地区托管您的网站。” -请注意,并不是因为您只有一个域,所以您无法在许多不同的国家/地区托管一个网站。使用我们拥有的所有技术,做到这一点“容易”。而且,如果您使用诸如Cassandra之类的系统,则数据不会出现任何问题。
Alexis Wilke

“特别是如果您必须与擅自占地者打交道” -什么是擅自占地者?
戴夫

域名抢注者购买您域名的变体。在这种情况下,您可能拥有example.com,但擅自占地者抢走了example.co.uk和example.it
Stephen Ostermiller

您可以考虑在Sitemap中添加多语言和多国站点注释以回答您的问题
Pmpr

根据Google的说明,请注意,目录或子域选项也可以。
若奥·皮门特尔·费雷拉

22

马特·库茨(Matt Cutts)在他的博客上回答了一个与您类似的问题,建议

如果您的网站上有企业的法语和德语版本,我的偏好是:

  1. ccTLDS,例如example.fr或example.de
  2. 之后是子网域,例如fr.example.com或de.example.com。
  3. 如果不可能,我将使用例如example.com/fr/或example.com/de/的子目录

1
您能告诉我为什么选项2优于3吗?谢谢
若昂·皮门特尔·费雷拉

根据Google专家的说法,您的选项2和3出于排名目的是相同的。
若奥·皮门特尔·费雷拉

20

作为德国用户,当网站不允许我进入英语页面时,我讨厌它,因为它认为它更了解我想要的东西。美国人可能很难理解,但实际上有些人会讲多种语言。

有时我可能想查看德语网站,有时我可能想查看英语网站。

简单地解析Accept-Language标头可能会让我发疯。

如果德语页面是英语页面的廉价翻译,则尤其如此。

为了方便您的用户,英语版本还应具有诸如domain.com/en/或的本地化版本en.domain.com

当我键入内容时,domain.com您会根据我的Accept-Language标题猜测是英文还是德语。但是,如果我不喜欢您的选择,我应该可以简单地交换域名中的语言。

额外提示:如果您在域名前面输入了语言,请同时输入,ger.domain.com然后de.domain.com将我带到德语网站。


7
+1It might be hard for Americans to understand but there are actually people who speak more than one language.
TheBlackBenzKid 2013年

15

我认为,您应该使用文件夹或子域方法,因为它们对用户而言更直观。哪个是个人喜好问题,我个人发现文件夹的方法更清晰。文件名选项远不那么直观。

解析Accept-Language标头以便在用户首次访问时将其定向到正确的内容是一个好主意,但是您应该仅执行此操作才能在文件夹或子域url上进行重定向。否则,将无法链接到特定语言的内容,并且您网站的索引将变得一团糟。


7
另外,无论标题标题是什么,都始终给用户选择-提供德语版本时,我经常切换回英语,这是因为翻译太糟糕了,或者因为它更容易读懂英语(MSDN,for例如-所有代码都是英文的,因此使用德语文本意味着更多的上下文切换)
balpha 2010年

+1 balpha -这类似于Jakob Nielsen的论点,即适合移动设备的网站应始终提供指向页面的完整桌面版本的链接。当存在页面的多个版本时,做出明智的猜测,即用户想要哪个版本,但让用户做出最终选择。
Blazemonger

5

如果使用本地化版本(例如,法国!=法语),则使用子域选项。使用子网域,但如果这个国家使用不同的语言,我认为最好使用目录。例如:

us.domain.com (USA)
us.domain.com/en/sample.html (USA - english)
us.domain.com/es/ejemplo.html (USA - spanish)
es.domain.com (Spain)
es.domain.com/es/ejemplo.html (Spain - spanish)
es.domain.com/ca/exemple.html (Spain - catalan)

Bing依赖于地理元标记,但是对于Google,您必须使用Google网站站长工具。

如果您想面向全球市场,请在使用www.domain.com时使用首选的用户语言(浏览器在Accept-Language标题上赋予优先级),在不使用时使用主要的市场语言。


5

这是我在Stack Overflow上提出的相同问题。我为此得到了一个资源,我将在此处发布它作为答案。

对于您可以做出的选择,我从Google找到了不错的资源。有一节介绍了每种方法的利弊。

我一直在努力使用多语言网站。肯定有文章中提到的答案中没有提到的某些观点。这就是为什么我觉得有必要将其发布为答案。我希望这可以帮助某人。


3

我不会使用子域。就SEO而言,它的作用较小:http : //www.hobo-web.co.uk/seo-blog/index.php/blog-subdomain-or-subfolder-which-is-best/

这里类似的讨论: 子域与子目录

如果您查看大型网站,则最常使用子域。

这也取决于您的业务是全球化的还是本地性的。我们是一家版权代理机构,因此要使用其更多本地业务。因此,顶级域比在上运行所有内容要好.com

文件名是我尚未见过的概念。


1

朝此方向的最新采用,例如基于SAAS的产品的单页应用(SPA)-

  1. 在不同国家/地区使用不同的网站将失去链接原汁原味,否则这些链接原本会进入我们的主要品牌网域。如: - https://www.example.in/https://www.example.fr/等等(亚马逊,大电子商务巨头在他过去犯这样的错误。)

  2. 将同一个域与SPA一起使用并将所有访问者重定向到该域都可以,但是在这种情况下,我们只能定位到一种语言。由于不同国家/地区需要使用不同的语言,因此会带来糟糕的用户体验。

  3. 在这种情况下有很多最好的例子(例如Microsoft和Uber),我个人喜欢他们在做什么,并相信他们正在使用最佳SEO做法。

    当郎-英语与不同的国家。

    • https://www.example.com/en-in (对于印度)
    • https://www.example.com/en-au/ (对于澳大利亚)
    • 等等

    要么

    • https://www.uber.com/en/in/ (对于印度),
    • https://www.uber.com/en/au/ (对于澳大利亚)
    • https://www.uber.com/fr/ (对于法国)
    • 等等

    当Lang和Country相同时-

    • https://www.example.com/fr-fr/https://www.example.com/fr/fr/(对于法国)
    • https://www.example.com/ru-ru/https://www.example[dot]com/ru/ru/(对于俄罗斯)
    • 等等

为了更清晰,请参阅Google Search Console帮助:管理多区域和多语言网站


如果SEO对您很重要,我不建议您使用单页技术。
斯蒂芬·奥斯特米勒

@StephenOstermiller同意!但我认为应用程序出于UI和UX目的需要它。
Premnath321 '18
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.