我应该为这个重定向标头 301,谷歌索引将如何受到影响?

Posted

技术标签:

【中文标题】我应该为这个重定向标头 301,谷歌索引将如何受到影响?【英文标题】:Should i header 301 for this redirection and how will google index be influenced? 【发布时间】:2017-11-17 03:43:05 【问题描述】:

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

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

【问题讨论】:

你在问重定向是如何工作的吗? @SLaks 更新问题 【参考方案1】:

我为自己的研究对 Google Bots 的行为进行了逆向工程,因此这里是我对它们当前工作方式的见解。可能不准确,研究是在 2015 年进行的,但我怀疑它发生了很大变化。

Google Bots 会点击您的/,然后会遵循 301、302 等重定向。语义上 301、302 和缺点。是不同的,但我敢打赌,Google 并不真正关心最常见的类型,因为在世界 wild 网络上可能会遇到各种各样的管理/编程错误/懒惰。..

如果我没记错的话,他们最多会跟进n 重定向,其中n 是5,直到他们点击200 或放弃。

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

通过分析 Google 下载代理(API、Google Docs...),我很确定 Google 使用 libcurl 处理他们的大部分活动请求,并且没有实施基于黑魔法的解决方案。库库尔natively implements redirection for all of the 3xx message suite.

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

如果你真的很偏执,那就给 GoogleBots 提供你想要的内容:

    /上实现一个index.php

    检测用户代理,如果不是 Google Bot -> 重定向到 /en

    如果是 Google Bot:提供您想要的内容

Google Bot 用户代理是 officially documented here。

如果您对用户代理不够信任,请尝试对 sollicitor 执行反向 DNS 解析,正确处理结果是 also documented by Google。

您可以使用 gethostbyaddr() 反向 DNS 请求,但它可能会减慢加载过程,或者您可以信任 crawlers IP database。我不推荐这些,用户代理控件应该没问题。

【讨论】:

【参考方案2】:

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

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

【讨论】:

【参考方案3】:

这是一组复杂的决策,Google 对网页排名的运作方式非常保密。

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

您可以从阅读 Google has to say. 的内容开始

301 是永久重定向。它说“无论你是谁,去这里而不是那里”。这对搜索引擎爬虫来说是不利的——它们不是“英语”或“西班牙语”。所以,找出你想要的用户体验。有人说“显示一个登陆页面,让用户选择他们想要的语言”;其他人说“使用浏览器语言检测并自动重定向”。如果您重定向,请通过302 进行。也许两者都做——如果你确定就重定向,如果你不确定就显示一个着陆页。

对于 SEO,请确保您有一个站点地图,允许 Google 查找所有语言的所有内容,并将不同的语言版本相互链接,以便 Google 能够理解这种关系。

【讨论】:

【参考方案4】:

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

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

同样来自 symcbean 的链接显示,3xx redirect has no impact on pagerank。

但请确保您的网站还包含在语言之间切换的选项。这样/en/ 也链接到/nl//de/ 或您拥有的任何语言。这样,谷歌(以及更重要的用户)也可以访问其他语言的内容。

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

【讨论】:

【参考方案5】:

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

完全使用重定向会影响性能。虽然 google 说性能影响排名,但在实践中影响程度相对较小。

首选语言旨在作为提示。无论如何默认为首选语言,但如果您想提供良好的用户体验,那么让用户选择是否要更改语言。

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

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

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

【讨论】:

以上是关于我应该为这个重定向标头 301,谷歌索引将如何受到影响?的主要内容,如果未能解决你的问题,请参考以下文章

SEO - 通过 404 页面重定向 301

301重定向以将所有空格替换为连字符

301 和 301 http 重定向是不是可以使用 expires 标头进行缓存?

没有 Location 标头的 301 http 响应

如何找到 301/302 重定向源?

由于浏览器缓存,PHP 标头 301 重定向不起作用