有时,您的站点将需要一些停机时间,因此您可以修复问题或更新网站。在大多数情况下,这通常是一个相对较短的时期,在此期间搜索引擎很可能不会尝试抓取您的网站。但是,如果您需要更多时间来解决问题,则遇到网站瘫痪的机会就高得多。那么,如何防止搜索引擎降低您的网站排名?
对于不熟悉HTTP状态代码的用户,以下是在处理站点维护时适用于您的简短摘要:
200 OK。此状态代码指示服务器已成功返回响应。
301永久移动。这告诉浏览器该页面不再有效,并将重定向到正确的页面。
302/307暂时移动。这两个HTTP状态代码背后有一些历史记录,但这对浏览器来说是要暂时将浏览器重定向到另一个页面,并且当前URL最终将返回到其以前的状态。
找不到404。此状态代码表示找不到您要导航的页面。
410内容已删除。如果您有意删除了您的内容,并且没有替代品,请使用此选项。了解有关如何正确删除页面的更多信息。
503服务不可用。这是您要在进行网站维护时返回搜索引擎的服务。它告诉搜索引擎您实际上在此页面上工作,或者其他地方出了问题。搜索引擎知道,返回此状态代码后,稍后再检查该页面。这是我们将要讨论的更多内容。
请注意,尽管页面上有错误(或内容很少),但搜索引擎仍会将返回200 HTTP状态代码的页面视为“软404”。
阅读更多:HTTP状态代码»
如果搜索引擎在抓取您的网站时遇到404错误,通常会从搜索结果中删除该页面,直到下一次再次出现以确认该页面返回为止。但是,如果搜索引擎在该特定页面上反复遇到404错误,它将最终推迟重新抓取,这意味着在该页面返回搜索结果之前将花费更多的时间。
为了克服这种潜在的更长久的排名损失,无论何时在特定页面上工作,都需要返回503状态代码。根据此RFC,503状态代码的原始定义是:
由于暂时的服务器过载或维护,服务器当前无法处理该请求。这意味着这是一个暂时性状况,经过一段时间的延迟后会缓解。如果知道的话,延迟的长度可以在Retry-After头中指出。如果没有给出Retry-After,则客户端应该像处理500响应那样处理响应。
这意味着返回结合了Retry-After标题的503 ,这将告诉搜索引擎等待多少分钟才??能返回。这并不意味着搜索引擎会在X分钟后再次爬网,但会确保搜索引擎在此之前不会随时回来查看。
如果要实现标头,则可以选择一些选项。
一般来说,大多数CMS在更新网站时已返回503。请注意,您将负责正确返回503标头。如果您的CMS不具备相应功能,我们提供了一个易于实现的解决方案,则可以将以下代码段添加到您的代码库中,并在确定您是否处于维护模式的代码中对其进行调用:
function set_503_header() {
$protocol = 'HTTP/1.0';
if ( $_SERVER['SERVER_PROTOCOL'] === 'HTTP/1.1' ) {$protocol = 'HTTP/1.1';}
header( $protocol . ' 503 Service Unavailable', true, 503 );
header( 'Retry-After: 3600' );
}
请注意,3600代码段中的指示延迟时间(以秒为单位)。这意味着上述示例将告诉搜索引擎一个小时后返回。也可以在中添加特定的日期和时间Retry-After,但是您需要注意此处添加的内容,因为添加错误的日期可能会导致意外结果。
处理维护页面并返回503状态代码时,需要考虑一些事项。如果您主动使用缓存,则可能会遇到缓存无法正确传递503状态的情况,因此在主动在网站的实时版本上积极使用它之前,请确保您已对其进行了正确的测试。
您是否知道还可以为robots.txt返回503状态代码?如果您在robots.txt文件中返回503状态代码,则搜索引擎将停止抓取您的网站。最大的好处是在维护期间服务器负载更少。
如我们所见,在进行网站维护时,您可以通过添加503来避免失去排名,让搜索引擎知道以后可以再次抓取您的网站。有几种方法可以做到这一点。选择最适合您的内容,您将拥有一个维护良好的网站,而不会失去排名的危险。