网站需要临时维护,这是个经常性的问题,在这期间必须关闭网站一小段时间,而在这段维护的期间内,我们应该做些什么,我们应该向搜索引擎返回什么样的header信息?200?404?500?甚至停止解析?
关于这一点,Google告诉我们,这个时候网站应该返回:“503 Service Temporarily Unavailable”! http://www.yixiin.com/quote/
如果你的网站正在维护,而此时 Google来抓取页面,发现你的页面返回了 404 或 500错误,一次两次可能还没影响,但是3次4次后,你的网站权重或PR值将会受到明显的影响甚至清除,收录的页面也会被删除。
同样,对于看过百度官方的《百度搜索引擎优化指南2.0》同学,都知道对于503状态码百度专门做了阐述和建议:如果站点临时关闭,当网页不能打开时,不要立即返回404,建议使用503状态。503可以告知百度蜘蛛该页面临时不可访问,请过段时间再重试。如果百度spider对您的站点抓取压力过大,请尽量不要使用404,同样建议返回503。这样百度spider会过段时间再来尝试抓取这个链接,如果那个时间站点恢复,那它就会被成功抓取了。
然而到底什么是 503 Service Temporarily Unavailable Header?
503 Service Temporarily Unavailable 表示当前服务超载或临时维护而无法响应HTTP请求, 这只是一个临时性的情况,如果header指定了Retry-After时间(单位秒),来访者将在指定的延迟时间后再来尝试访问。如果没有指定 Retry-After 时间,客户端将会把这个503响应当做 500 状态来处理。
由于可见,当站点出现问题,一小段时间内不能访问,最好能返回一个对蜘蛛友好的状态吗,或者是当站点被攻击时,也是一种不错的临时维护手段。至于间隔多久,也没有说网站使用503返回码多长时间后百度不再抓取网页。个人的建议是指定一个合适的Retry-After,而且让网站返回503状态码后尽快恢复访问,因为搜索引擎肯定不会有多大的耐性。
那么,我们如何正确的使用 503 Service Temporarily Unavailable这个header状态码呢?有的空间可以直接在控制面板上面设置。下面举的例子需要配合APACHE的 .htaccess重写文件来实现: