我应该 header 301 进行此重定向吗? google 索引将如何受到影响?

Should i header 301 for this redirection and how will google index be influenced?

我有一个应用程序,当您转到 http://website.com 时,它会自动重定向到 http://website.com/en,因为未检测到任何语言。

这次重定向是否需要使用重定向301? google 索引呢?我的 google 索引会受到此重定向的影响吗?

一旦您开始使用 301 重定向,您就永远不会返回。它创建了一个永久的抽象层,为您的网站增加了不必要的复杂性(这与不在 http://website.com 重定向和提供默认内容有何不同?)。

完全使用重定向会影响性能。虽然google说性能会影响排名,但实际上影响的程度比较小。

首选语言仅供参考。一定要默认使用首选语言,但如果您想提供良好的用户体验,请让用户选择是否要更改语言。

进一步的考虑是google只会索引它可以到达的内容。如果您在不依赖动态服务器端 redirection/proxying 或客户端 javascript 的情况下选择可导航的语言,那么 google 也会为非英语内容编制索引。

最后,google 在决定​​网页排名时使用了多种因素的神秘组合。使用重定向以前会自动产生影响 - 但这是 no longer the case.(性能开销除外)。

鉴于您似乎阻止 google 访问您网站的大部分内容,这是糟糕的工程实践,会导致糟糕的用户体验,我强烈建议您采取不同的方法。如果您的站点的架构使得在没有重定向的情况下难以实现此功能,那么请使用可以被用户覆盖的非永久性重定向。

如果您的网站上有多种语言,那么使用 URL 的一部分来指示该语言是首选的方式。它甚至在 Google documentation on Multi-regional and multilingual sites.

不要使用session设置用户语言,在同一个URL上显示不同的内容(语言)!单个 URL 应该始终显示相同的内容,无论谁在浏览或他以何种方式到达那里。

另外,symcbean 中的 link 显示,3xx redirect has no impact on pagerank

但是请确保您的网站还包含在语言之间切换的选项。所以 /en/ 也 link 到 /nl//de/ 或任何你有的语言。这样 google(以及用户,更重要的是)也可以使用另一种语言访问内容。

结论:如果使用http://website.com作为判断语言的方式然后重定向到http://website.com/en/,http://website.com/nl/,http://website.com/de/ 或任何语言,这是在单个域上执行此操作的首选方式。唯一更好的是 website.comwebsite.nlwebsite.de

这是一组复杂的决策,Google 对网页排名的工作原理非常保密。

我假设您有一个多语言站点 - 有 http://website.com/enhttp://website.com/eshttp://website.com/fr 等。我还假设您希望 Google 索引所有这些网站,并将它们识别为使用这些语言。

您可以先阅读 Google has to say.

301 是永久重定向。它说 "whoever you are, go here instead of there"。这对搜索引擎抓取工具不利 - 它们不是 "English" 或 "Spanish"。所以,弄清楚你想要的用户体验是什么。有人说"show a landing page, ask the user to choose which language they want";其他人说 "use browser language detection and automatically redirect"。如果您重定向,请通过 302 进行。也许两者都做 - 如果你确定就重定向,如果你不确定就显示一个登陆页面。

对于 SEO,请确保您的站点地图允许 Google 查找所有语言的所有内容,并且 link 不同的语言版本可以相互理解,因此 Google 可以理解关系。

您的应用程序似乎已经进行了某种重定向。您需要检查那是哪种重定向(301 或 302)。 如果是 302 重定向,那么是的,它会影响您的 google 排名,您应该改用 301 重定向。

如果您想将站点访问者重定向到另一个网页,但您打算在一段时间后将重定向的页面返回,则应使用 302 重定向(又名:临时重定向)。

我为了自己的研究对 Google 机器人的行为进行了逆向工程,所以这里是我自己对它们目前如何工作的见解。可能不准确,研究是在 2015 年进行的,但我怀疑它改变了那么多。

Google 机器人会攻击您的 /,然后会遵循 301、302 等重定向。语义 301、302 和缺点。是不同的,但我敢打赌 Google 并不真正关心最常见的类型,因为 administrative/programming errors/lazyness 在世界上可以遇到的范围很广 野生 网络..

他们将跟进最多 n 次重定向,如果我没记错的话 n 是 5,直到他们遇到 200 或放弃。

一段时间后 Google 机器人会返回您的页面,起初比平时多一点(几个小时内几次),然后非常缓慢(每隔几个小时一次)。他们可能会尝试分析您的内容的动态程度。 请注意,即使在多次重定向后,它们也会准确引用您网站内容的重定向 URL(我在搜索引擎中验证了我的链接)。

通过分析 Google 下载代理(API、Google 文档...),我很确定 Google 大多数情况下使用 libcurl他们的主动请求并没有实施基于黑魔法的解决方案。 Libcurl natively implements redirection for all of the 3xx message suite.

对于 SEO 优化,考虑使用 sitemap.xml,我知道他们依赖它。

如果您真的很偏执,请向 Google机器人提供您想要的内容:

  1. /

  2. 上实施 index.php
  3. 检测用户代理,如果不是 Google Bot -> 重定向到 /en

  4. 如果 Google 机器人:提供您想要的内容

Google 机器人用户代理 officially documented here.

如果您对User Agent不够信任,尝试执行sollicitor的反向DNS解析,正确处理结果是also documented by Google.

您可以使用 gethostbyaddr() but it might slow down the loading process, or you can trust a crawlers IP database 反向 DNS 代理。我会推荐其中 none 个,User Agent 控件应该没问题。