您的位置:首页 > 理论基础 > 计算机网络

与谷歌机器人的第二次约会:HTTP 状态代码和If-Modified-Since

2010-11-04 15:35 309 查看
原文: Date with Googlebot, Part II: HTTP status codes and If-Modified-Since

我们与谷歌机器人的上一次约会棒极了,但网站们还对响应代码感到比较困惑,不知道自己返回的响应代码是否正确。我们的服务器返回了301永久重定向代码,但在什么情况下我们应该返回302临时重定向? 如果我们返回一些新的"404文件无法找到"代码,Googlebot是否不会再访问我们的网站?我们应该支持标头(header)"If-Modified-Since"吗?这些问题让人困惑不解,就好像懵懂的爱情一样。为了少一点诸如此类的烦恼,我们来问问专家——谷歌机器人,看看他怎样评价我们的响应代码。

亲爱的谷歌机器人,

最近我给我的网页做了一次大扫除,删除了一些陈旧的、无用的网页。现在这些网页都返回404"页面无法找到"代码,这么做合适吗?还是我让你感到困惑了?—Frankie O'Fore

亲爱的Frankie,

404代码是告知网页已不存在的标准方式,对此我不会感到困惑,因为旧网页从网站上删除或更新是很正常的事情。大多数网站都会在网站管理员工具的抓取诊断中显示一些404错误。这绝对不是什么大问题。只要您有良好的网站架构并能链接到所有您可抓取的网页,我就会很高兴,因为我能籍此找到我需要的任何信息。

但是别忘了,不仅是我来访问你的网页,也会有很多访问者看到你的网页。如果你只是显示简单的"404页面无法找到"的信息的话,不了解的访问者可能会很迷惑。其实有许多办法可以让你的无法显示的页面变得更加友好,最便捷的一个方式就是使用谷歌网站管理员工具上的404小工具,它能够帮助访问者找到那些真正存在的内容。大多数的主机托管商,无论大小,都允许你自定义你的404页面(同样适用于其他返回代码)。

嘿,谷歌机器人,

我读了上面你给Frankie的回复,我有一些问题。如果有人链接到我网站上不存在的页面怎么办?我该怎样才能确保那些访问者能够找到他们想要的东西呢?此外,如果我想移动一些页面该怎么办?我想更好地组织我的网站,但是我很担心这会让你感到困惑,我该怎样让你更明白我的网站呢?—Little Jimmy

Jimmy你好,

让我们先不考虑你问题的先后顺序,从最核心的问题来回答吧。首先,我们来看一下来自其他网站的链接,很显然,这些链接可能是你网站的一个重要的流量来源,而且你不希望访问者看到的是一个不友好的"页面无法访问"的信息。因此,你可以利用强大的重定向来解决这些问题。

最常用的两种重定向是301和302。事实上还有更多的重定向,但这两种是目前与我们联系最紧密的,正如404,301和302是可以发送给用户和搜索引擎机器人的不同种类的响应代码。301和302都是重定向,但301为永久重定向、302为临时重定向。301重定向可以告诉我这个页面以前是什么样、目前转移到了什么地方等等。它可以完美地用于重新建构你的网站,并对重新计算被指向的新网页的声誉有很大帮助。每当我看到301永久重定向,我就会把所有指向旧网页的外部链接自动作为重定向后新网页的声誉计算因素。这不是很方便么?

如果你不知道怎样实施这些重定向的话,我可以帮你入门。这主要取决于你的web服务器,此外这里有一些搜索结果会比较有帮助:
Apache: http://www.google.cn/search?q=301+redirect+apache
IIS: http://www.google.cn/search?q=301+redirect+iis
你也可以参考服务器所附带的手册或自述文档。

作为重定向的另一个替代办法,你可以向链向您网站的网站管理员发送电子邮件,请他们更新链接指向。不能确定哪些网站指向你是吗?不用担心,我的谷歌同事们已经让这变得轻而易举了。在网站管理员工具的"链接"部分中,你可以输入你网站的某个具体URL来查阅哪些外部链接指向了该网页。

我的谷歌同事们最近还发布了一个新的工具,可以显示所有链向你网站中不存在网页的URL,你可以在此了解更多。

永远乐意为你效劳的,

谷歌机器人

亲爱的谷歌机器人,

我有一个问题。我生活在互联网中一个充满活力的地方,我不断改变对事物的看法。当你问我一个问题,我绝不会说出同一个答案两次,我的网站上的头条内容每个小时都在变化,我总会想到新的内容。你看起来像一个很直爽的人,希望得到直接的答案。当我的网站内容频繁更新的时候,我该怎么让你明白又不使你感到困惑呢?—Temp O'Rary

亲爱的Temp,

我刚刚告诉Jimmy通过301永久重定向来告知谷歌机器人你的新网址,但是你描述的情况则不同,应当适用于302临时重定向。对某一特定已经被索引的URL,如果你想告知你的用户该URL的地址是正确的,但是想访问的内容可以临时在另一个地址找到,那么使用302临时重定向(或更为罕见的"307临时重定向")是一个既礼貌又妥当的方式。例如,Orkut将用户从http://orkut.com 重定向到http://google.com/accounts/login?service=orkut,但当检索Orkut*时,这个URL并不是一个具有实际检索价值的网页,而且是在另一个域名下。因此,使用302临时重定向可以告诉我,不要把属于http://orkut.com的内容和反向链接计算到重定向后的目标网址上——因为它只是一个临时页面。

这就是为什么当您搜索orkut时,您看到的是orkut.com,而不是那个更长的URL。

请记住:直接沟通是保持良好关系的关键。

你的朋友,

谷歌机器人

*请注意,在这里我把URL做了简化,使它更易读。实际的URL要远复杂于此。

谷歌机器人上尉,

我是一个经常重新设计和组织的网站。我注意到很多网站链接的URL都是我在很久以前就删掉的URL。我已经为这些已删除的URL设置了指向新URL的301永久重定向,但在这之后我又对网站做了重新设计,很多上述新的URL也不存在了,于是我又用301永久重定向来让它们指向更新的URL。现在我很担心,在抓取的时候,沿着这些指示,你很可能会不断地抓取到一连串的301重定向,而最终导致你可能放弃未来对我网站的抓取。 —Ethel Binky

亲爱的Ethel,

听起来好像你已经设置了很多嵌套重定向的URL。好吧,天哪!如果次数比较有限的话,这些"重复重定向"是可以被理解的,但我们或许应当首先思考一下你为什么要这样做。如果你把中间环节的301重定向统统移除,并将我直接引导到该URL的最终目标网址,你将为我们彼此节省大量的时间和HTTP请求。但是不要仅仅想到我们两个,想想其他访问者可能早已经厌倦了在状态栏中不断看到反复的"连接…加载…连接"的冗长过程。

设身处地地想一想,如果你的重定向开始看起来都相当长,用户们很可能担心你已经把他们推入到一个无限死循环中。机器人和人类都会害怕那种"无穷无尽的重复"。相反地,试着消除那些重复重定向,或至少保持他们尽可能短一些,我们就可以体谅一下广大访问者!

设想周到的谷歌网络机器人

亲爱的谷歌机器人,

我知道你一定是很喜欢我,要不然你就不会隔段时间就发出抓取我某一网页的请求,即使他们的内容从来没有改变过,就好像我的十年内都没有变化的大学论文一样。但是这些现在开始变成我的一个麻烦了,有什么办法可以帮助我不让你来占用我珍贵的带宽吗? —Janet Crinklenose

Janet, Janet, Janet,

看起来你应该学会一个新的名词——"304未修改"。如果我之前曾经访问过一个URL,那么我会在我的请求中插入一个"If-Modified-Since"。此行还包含一个HTTP格式的日期字符串。如果你不想再向我重复发送一遍该文档,那么你只需要向我发送一个正常的并带有"304未修改"状态的HTTP 标头。我很喜欢这样的信息。当你这么操作的时候,你没有必要再向我重复发送该文档,这就意味着你不用浪费你的带宽,而我也不会觉得你又在用老掉牙的重复内容糊弄我。

你很可能会注意到很多浏览器和代理服务器也会在标头上显示" If-Modified-Since ",你也可以这么做来抵制滥用带宽的行为。

现在就开始行动,节省更多的带宽吧!

谷歌机器人

——————

谷歌机器人对我们真是太有帮助啦!现在我们知道应该怎样更好地响应用户和搜索引擎了。下次我们再相聚的时候,就该和这个老朋友坐下来促膝谈心了.
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: