HTTP状态码和你
对于那些不熟悉HTTP状态码,这里是一个简短的总结,适用于你处理网站维护:
200好了。此状态代码指示服务器成功返回响应。
301年搬到永久。这将告诉浏览器此页面不再有效,并将重定向到正确的页面。
302 / 307暂时搬迁。这两个HTTP状态码背后有一些历史,但这告诉浏览器,您将暂时将浏览器重定向到一个不同的页面,当前URL最终将返回到它以前的状态。
404没有找到。此状态码表示您试图导航到的页面找不到。
410年内容删除。如果您故意删除了您的内容,并且没有替换,请使用此。了解如何正确删除页面的更多信息。
503服务不可用。当你处理站点维护时,这是你想要返回到谷歌的一个。它告诉谷歌您实际上正在处理这个页面,或者其他地方出错了。谷歌知道当返回此状态码时,稍后将再次检查该页面。这是我们要多讨论的问题。
请注意,谷歌将考虑返回200 HTTP状态码的页面,尽管页面上有错误(或非常少的内容),在谷歌搜索控制台中作为“软404”。
阅读更多:HTTP状态代码»
告诉谷歌你很忙
如果谷歌在抓取你的站点时遇到了一个404页面,它通常会从搜索结果中删除该页面,直到下一次返回来验证该页面是否已返回。但是,如果谷歌在那个特定的页面上反复出现404页面,它最终会推迟重新抓取,这意味着在页面返回搜索结果之前会经过更长的时间。
为了克服这种潜在的排名损失,您需要在处理特定页面时返回一个503状态码。根据这个RFC, 503状态码的原始定义为:
由于服务器临时超载或维护,服务器目前无法处理请求。言外之意是,这是一种暂时的情况,经过一些延迟后将会得到缓解。如果知道,延迟的长度可以在重试后标头中指出。如果没有Retry-After给出,客户端应该处理的响应,因为它将500响应。
这意味着返回一个503和一个retest – after头文件,这将告诉谷歌在返回之前需要等待多长时间。这并不意味着谷歌将在X分钟内再次爬行,但它将确保在此之前谷歌不会再回来查看。
添加标题
如果您想实现header,有几个选项可供选择。
使用WordPress默认设置
默认情况下,WordPress在更新插件或WordPress核心时已经返回了503。WordPress允许你通过在你的wp-content/目录中添加一个maintenance.php来覆盖默认的维护页面。请注意,然后您将负责正确返回503标头。计划做数据库维护?这个你也得自己处理。在你的wp-content/中添加一个db-error.php文件,并确保你也正确地返回了一个503头文件。
如果你想为你的WordPress网站添加一些新奇的东西,请查看WP维护模式。这个插件还添加了很多额外的特性,除了我们在前一节提到的。
如果你只是写你自己的代码,想要一个解决方案,很容易实现,你可以添加以下代码片段到你的代码库,并调用它,决定你是否在维护模式:
函数set_503_header () {
美元协议=“HTTP / 1.0”;
if ($ _SERVER [‘ SERVER_PROTOCOL ‘] = = = HTTP / 1.1) {
美元协议=“HTTP / 1.1”;
}
头(美元的协议。‘503服务不可用’,true, 503);
标题(‘Retry-After: 3600’);
}
注意,代码片段中的3600表示延迟时间(以秒为单位)。这意味着上面的样本会在一个小时后告诉GoogleBot返回。也可以在Retry-After中添加特定的日期和时间,但是您需要注意在这里添加的内容,因为添加错误的日期可能会导致意外的结果。
专业人员
缓存
在处理维护页面并返回503状态码时,有几件事需要考虑。如果你积极使用缓存,你可能会遇到缓存不能正确传递503状态的情况,所以请确保你正确地测试这个,在你的网站活跃的版本上使用它。
robots . txt
你知道它也可以为你的robots.txt返回一个503状态码吗?来自谷歌的Pierre Far在本文中解释说,如果您在robots.txt文件中返回一个503状态码,谷歌将停止爬行您的网站。这样做的最大好处是s更少