我已准备好使用我的多语种网站的子目录格式。 我的第一个问题是: 对于搜索引擎优化,我要翻译网址中的页面名称还是没用? 例如:
- Same filename
site.com/fr/login
site.com/en/login
OR
- Different filename
site.com/fr/connexion
site.com/en/login
然后,当用户在site.com上时:我应该根据用户的IP将他重定向到site.com/en
和site.com/fr
吗?或者我要设置默认本地,并设置我的网址site.com/page
和site.com/fr/page
最后,从用户当前的URL获取本地的最佳方法是什么? 解析url以获取/ fr或/ en,或在URL中使用lang = fr添加GET参数(使用htaccess隐藏)
谢谢:)
答案 0 :(得分:1)
作为前提条件,我假设您没有使用框架/库。此外,我从未使用.htaccess(作为您的问题请求的标题)解决类似的问题,因此不知道是否可以这样做。不过,以下指南可能会对您有所帮助。
您的第一个问题
通常,网页的文件名和路径对其排名有影响。此外,拥有本地语言的网页名称和路径可能有助于您的用户记住最重要的网址,即使没有为其添加书签。
然而,我永远不会翻译属于web 应用程序的页面的页面名称或目录(而不是信息或促销 pages)。
您提到的登录页面就是一个很好的例子。我几乎可以肯定您不希望找到您的网站,因为它的登录页面上有内容。实际上,有许多网站将登录页面和其他应用程序页面排除在索引之外。
相反,在SEO方面,请将您的精力投入到宣传和信息页面中。提供有价值的内容,解释您或您的网站的特殊内容,并尽一切可能将这些网页正确编入索引。恕我直言,静态HTML页面是这样做的最佳选择。
此外,如果您翻译属于您的实际应用程序的页面名称,您将遇到大麻烦。例如,在成功登录后,您的应用程序可能会将用户转移到他的个人仪表板,该仪表板可能基于另一个HTML模板/页面。如果您已将该页面名称翻译成不同的语言,那么您的应用程序必须注意将用户带到正确的版本。基本上,这意味着您需要与您希望支持的语言一样多的应用程序版本。当然,有一些技巧可以让生活更轻松,但这将是一个持续的痛苦,绝对不值得努力。
总结:创建静态页面,显示您的USP(独特的卖家位置)并为用户提供有价值的内容(例如复杂的教程等)。翻译这些页面,包括名称和路径,并以各种方式搜索它们。但是对于实际应用,优化其页面有点毫无意义,甚至适得其反。
您的第二个问题
由于多种原因,我绝不会使用基于IP的重定向。
首先,在不是本国的国家有许多客户。例如,您是否真的想将所有母语为英语的人重定向到您的匈牙利语页面,因为他们目前在匈牙利出差?
其次,今天越来越多的用户出于不同的原因使用VPN,因此经常隐藏他们目前所在的国家。
第三,哪个IP地址属于哪个提供商或国家是高度不稳定的;您将不得不不断更新您的数据库以跟上。
还有更多原因,但我认为你已经有了这个想法。
幸运的是,您的问题有一个解决方案(但请参阅"最终评论"下面):每个浏览器在从服务器获取页面时都会告诉服务器首选和接受的语言。例如,Apache可以直接在RewriteRule
语句中使用该信息,并将用户重定向到正确的页面。
如果您无法更改服务器的配置,则可以评估CGI程序中的相应标头。
进行研究时,请查找Accept-Language
HTTP 1.1标头。一个好的起点可能是here。
您的第三个问题
你最终在第三个问题中混淆了两件不同的事情。语言环境与语言不同。一方面,你要求......#...从...获得当地人,而另一方面,你说" ... lang = fr ...&# 34;,从而给你留下想要获得语言的印象。
如果您想获得该语言:请参阅我对第二个问题的回答,或者从当前路径解析语言(正如您已经建议的那样)。
如果你想获得语言环境,事情会更复杂。唯一合理的自动方法是从语言中导出语言环境,但这通常会失败。例如,我在做研究时通常更喜欢英语,但另一方面,我位于德国,因此希望以我习惯的格式提供日期和时间,因此从我的首选语言中获取所需的语言环境将会失败
不幸的是,没有HTTP标头可以告诉服务器用户喜欢哪个区域设置。作为起点,this article可能会对您有所帮助。
有关如何解决此问题的最终评论(下一节)。
最后评论
正如上面链接的文章已经说明:满足用户的唯一可靠方法是让他在你的应用程序中选择他的语言,他的语言环境和他的时区 。您可以将用户的选择存储在cookie或后端数据库中;每个都有自己的优点和缺点。
我通常在项目中使用所有方法(HTTP标头,cookie,数据库)的组合。
答案 1 :(得分:0)
首先想想人类。 URL翻译对法国用户来说很重要吗?有些人可能会认为在URL中翻译单词很好。来自其他语言环境的用户可能会另有想法搜索引擎会考虑用户行为因素。如果您的解决方案对用户更方便,SEO因素会更高。
如果用户获得预期的语言版本,它会很好。如果它通过IP,HTTP标头,cookie等建议语言版本,网站可以帮助他们。有些人可能更喜欢另一种语言,有些人可能会去旅行。因此,让他们手动选择语言版本仍然很重要。
如有疑问,请阅读manuals并分析竞争对手网站。
答案 2 :(得分:0)
我通常会在大多数网站上显示他们提供的网址,例如site.com/en和site.com/fr,但是您想要向用户显示网站的方式。我更喜欢使用默认的site.com/en并让用户选择他的语言。
如果你仍然混淆,请参考下面的链接,这将是有用的。
答案 3 :(得分:0)
如果可能的话,通过各种方式 - 因为这将帮助那种语言的用户感觉像是一流的公民"。登录路线可能不会对搜索引擎优化产生太大影响,但在内容网页上翻译网址可能会让他们更容易被发现。
您可以阅读Google's recommendations on multi-regional and multilingual sites,其中说明它可以很好地翻译网址中的文字"。
这可以帮助第一时间的用户,但有几点需要牢记:
这有多准确?例如。如果我说英语,但我访问法国,然后查看您的网站 - 我会得到法语。如果您的目标市场是携带手机的环球旅行者,那么它可能不是最佳选择。比如看Accept-Language
,还是更好吗?
在每次请求时对IP地址进行地理定位是否会导致服务器出现性能问题?或拨打太多电话到外部地理编码服务?确保执行容量规划,并减少您已经知道区域设置的呼叫(例如,从cookie或用户明确说明其偏好。
即使您猜测首选区域设置,也始终允许显式用户首选项覆盖该区域设置。没有比在页面之间移动更令人沮丧的了,并让网站决定它更清楚你理解的语言: - )
只要您可以轻松地在网站之间切换,就不需要特定的目标网页。如果你不确定是否应该重定向用户(例如,amazon.com会向英国用户展示横幅,让他们选择切换网站 - 但是弹出横幅并不会有什么坏处 - 但是不决定他们)
将URL中的语言(作为子域或文件夹)放在SEO中可能是最好的。不要忘记更新您的站点地图,向抓取工具表明有不同语言的替代内容页面。