1

我在一个网站上修复了 url,其中一个问题是 url 包含的字符有时是大写的,有时是小写的,服务器不关心它,但谷歌做了,并将页面索引为重复。还有一些 url 包含根本不允许出现在 URL 的那一部分的字符,例如逗号“,”和括号“()”,尽管 [圆括号在技术上不是保留][1] 我仍然决定摆脱它们通过对它们进行编码。

我添加了一个检查,检查 url 是否有效,如果没有,将执行 301 重定向到正确的 url。

例如 http://www.example.com/articles/SomeGreatArticle(2012).html 会做一个 301 重定向到 http://www.example.com/articles/somegreatarticle%282012%29.html

它可以工作,并且会重定向到正确的 url。

但是对于一小部分页面(这可能是迄今为止谷歌索引的唯一页面),谷歌网站管理员工具开始在“抓取错误”>“未遵循”选项卡下给我以下错误:

Google 无法跟踪您的网址,因为它重定向的次数过多。

用引号搜索这个错误会给我 0 个结果,我确信我不是唯一一个遇到这个错误的人,所以我想知道更多关于它的信息,例如:

  1. 在谷歌认为它太多之前,一个页面可以做多少重定向?
  2. 这种错误的其他可能原因是什么?
4

3 回答 3

3

解决方案

根据这个实验http://www.monperrus.net/martin/google+url+encoding

谷歌有自己的字符编码规则,谷歌总是编码一些字符,总是解码其他字符。

以下字符从不编码

-,.@~_*)!$'(

所以即使你给谷歌这个网址

http://www.example.com/articles/somegreatarticle%282012%29.html 

在圆括号 () 被编码的地方,谷歌将转换这个 URL,解码括号并跟随这个 URL:

http://www.example.com/articles/somegreatarticle(2012).html

我的情况发生了什么:

http://www.example.com/articles/somegreatarticle(2012).html

我的服务器会做一个 301 重定向到

http://www.example.com/articles/somegreatarticle%282012%29.html 

而 Googlebot 会忽略编码的括号并遵循:

http://www.example.com/articles/somegreatarticle(2012).html

被重定向到

http://www.example.com/articles/somegreatarticle%282012%29.html

跟随

http://www.example.com/articles/somegreatarticle(2012).html

被重定向到

http://www.example.com/articles/somegreatarticle%282012%29.html

并在几次尝试后放弃并显示“ Google 无法关注您的 URL,因为它重定向了太多次”错误。

于 2012-06-22T14:34:10.300 回答
0

我不知道谷歌网站管理员工具,但我在 PHP 中看到了类似的错误,当存在无限循环的重定向时。确保没有任何页面重定向到自身。

于 2012-04-18T12:55:10.653 回答
0

好吧,首先我会从网址中删除 () 和 , 符号,事实上 googlebot 很难使用这些符号。而且他们也没有为 SEO 目的带来任何好处。客户端的可读性不是问题,所以如果我只使用 - 或 _ 破折号。尽量不要在文件/文件夹名称中使用任何其他字符。

您还应该清理您的 html,有很多错误和问题需要解决。

对于谷歌、浏览器和您的访问者来说,更清洁的来源会更好。

我找不到任何明确的问题,谷歌会遇到问题。

于 2012-04-19T09:23:57.537 回答