我有一个应用程序,当您转到http://website.com
时,它会自动重定向到http://website.com/en
,因为没有检测到语言。
是否有必要对此重定向使用重定向 301?谷歌索引呢?我的谷歌索引会受到此重定向的影响吗?
这是一组复杂的决策,谷歌对页面排名的工作原理非常保密。
我假设你有一个多语言网站 - 有http://website.com/en
,http://website.com/es
,http://website.com/fr
等。我还假设您希望Google索引所有这些网站,并将它们识别为这些语言。
你可以从阅读谷歌所说的话开始。
301 是永久重定向。它说"无论你是谁,去这里而不是那里"。这对搜索引擎爬虫不利 - 它们不是"英语"或"西班牙语"。因此,弄清楚您想要的用户体验是什么。有人说"显示登陆页面,让用户选择他们想要的语言";其他人说"使用浏览器语言检测并自动重定向"。如果重定向,请通过 302 进行重定向。也许两者兼而有之 - 如果您确定,请重定向,如果您不确定,请显示登录页面。
对于SEO,请确保您有一个站点地图,允许Google查找所有语言的所有内容,并将不同的语言版本相互链接,以便Google可以理解这种关系。
一旦开始使用 301 重定向,就再也回不去了。它创建了一个永久的抽象层,这给您的网站增加了不必要的复杂性(这与不重定向和提供默认内容有何不同 http://website.com?
使用重定向会影响性能。尽管谷歌表示性能会影响排名,但实际上程度相对较小。
首选语言旨在作为提示。请务必默认为首选语言,但如果您想提供良好的用户体验,请让用户选择是否要更改语言。
进一步的考虑是,谷歌只会索引它可以访问的内容。如果你选择的语言是可导航的,而不依赖于动态的服务器端重定向/代理或客户端javascript,那么谷歌也会索引非英语内容。
最后,谷歌使用神秘的因素组合来决定页面排名。以前使用重定向会产生自动影响 - 但现在情况已不再如此。(性能开销除外)。
因此,鉴于您似乎阻止了Google访问您网站的大部分内容,这是糟糕的工程实践,并且会导致糟糕的用户体验,我强烈建议您采取不同的方法。如果站点的体系结构使得在没有重定向的情况下难以实现这一点,请使用可由用户覆盖的非永久性重定向。
如果您的网站上有多种语言,请使用 URL 的一部分来指示语言是首选方式。它甚至在多区域和多语言网站的谷歌文档中。
不要使用会话来设置用户语言并在同一URL上显示不同的内容(语言)!单个 URL 应始终显示相同的内容,无论谁在浏览或以何种方式到达那里。
此外,正如来自symcbean的链接所示,3xx重定向对pagerank没有影响。
但是,请确保您的网站还包含在不同语言之间切换的选项。因此,/en/
也链接到/nl/
和/de/
或您拥有的任何语言。这样,谷歌(以及用户,更重要的是)也可以访问另一种语言的内容。
结论:如果您使用http://website.com
来确定语言,然后重定向到http://website.com/en/
,http://website.com/nl/
,http://website.com/de/
或任何语言,这是在单个域上执行此操作的首选方法。唯一更好的是website.com
,website.nl
和website.de
您的应用程序似乎已经执行了某种重定向。您需要检查哪种重定向(301 或 302)。 如果是 302 重定向,那么是的,它会影响您的谷歌排名,您应该改用 301 重定向。
302 如果您想将网站访问者重定向到另一个网页,但您计划在一段时间后恢复重定向的页面,则应使用重定向(又名:临时重定向)。
我在自己的研究中对谷歌机器人的行为进行了逆向工程,所以以下是我自己对它们目前如何工作的见解。可能不准确,研究是在2015年进行的,但我怀疑它发生了多大变化。
Google 机器人将点击您的/
,然后遵循 301、302 等重定向。从语义上讲,301、302 和缺点是不同的,但我敢打赌,谷歌并不真正关心最常见的类型,因为在世界野生网络上可能会遇到各种各样的管理/编程错误/懒惰。
他们将跟踪最多n
次重定向,如果我没记错的话,n 是5
,直到他们遇到200
或放弃。
一段时间后,谷歌机器人会回到你的页面上,起初比平时多一点(几个小时内几次),然后非常慢(每隔几个小时一次)。他们可能会尝试分析您的内容的动态程度。请注意,即使经过多次重定向,它们也会准确地引用您网站内容的重定向 URL(我在搜索引擎中验证了我的链接)。
通过分析谷歌下载代理(API,谷歌文档......),我很确定谷歌使用libcurl
来满足他们的大多数活动请求,并没有实施基于黑魔法的解决方案。Libcurl 本机实现所有3xx
消息套件的重定向。
对于SEO优化,请考虑使用站点地图.xml我知道他们依赖站点地图。
如果你真的偏执,那就给谷歌机器人提供你想要的内容:
-
在
/
上实现索引.php -
检测用户代理,如果不是谷歌机器人 ->重定向到
/en
-
如果是谷歌机器人:提供您想要的内容
谷歌机器人用户代理在这里正式记录。
如果您不够信任用户代理,请尝试对 sollicitor 执行反向 DNS 解析,Google 也会记录对结果的正确处理。
您可以使用gethostbyaddr()
反转 DNS 隔离器,但它可能会减慢加载过程,或者您可以信任爬网程序 IP 数据库。我不建议这些,用户代理控件应该没问题。