503狀態(tài)碼:防止網(wǎng)頁被刪除 |
發(fā)布時間: 2012/9/10 11:00:56 |
我認為503狀態(tài)碼最大的作用是告知搜索引擎:現(xiàn)在服務器壓力過大,網(wǎng)站(某個網(wǎng)頁)稍后再抓取,503是指目前無法使用服務器(由于超載或進行停機維護)。通常,這只是一種暫時的狀態(tài)。按照百度的說法,網(wǎng)站關閉或其他臨時情況,這個時候網(wǎng)站應該返回:“503 Service Temporarily Unavailable”!使用503狀態(tài)碼,而不是404錯誤頁面。
如果網(wǎng)站需要臨時維護或者未建立好就上線的頁面,當網(wǎng)頁不能打開時以及沒有建好時,不要立即返回404,建議使用503狀態(tài)。503可以告知百度spider該頁面臨時不可訪問,請過段時間再重試。
(網(wǎng)頁出現(xiàn)503狀態(tài)提示)
如果返回404狀態(tài)碼,會被百度當成死鏈刪除,造成收錄和流量損失。使用503返回碼,這樣百度的抓取器接到503返回碼后,會在隔一段時間再去訪問這個地址,在您的頁面建好上線后,就又能被重新抓取,保證頁面及時被抓取和索引,避免未建好的內(nèi)容設為404后帶來不必要的收錄和流量損失。
常見的HTTP狀態(tài)碼
404:404返回碼的含義是“NOT FOUND”,百度會認為網(wǎng)頁已經(jīng)失效,那么通常會從搜索結果中刪除,并且短期內(nèi)spider再次發(fā)現(xiàn)這條url也不會抓取。
301:301返回碼的含義是“Moved Permanently”,百度會認為網(wǎng)頁當前跳轉至新url。當遇到站點遷移,域名更換、站點改版的情況時,推薦使用301返回碼,盡量減少改版帶來的流量損失。雖然百度spider現(xiàn)在對301跳轉的響應周期較長,但我們還是推薦大家這么做。
503:503返回碼的含義是“Service Unavailable”,百度會認為該網(wǎng)頁臨時不可訪問,通常網(wǎng)站臨時關閉,帶寬有限等會產(chǎn)生這種情況。對于網(wǎng)頁返回503,百度spider不會把這條url直接刪除,短期內(nèi)會再訪問。屆時如果網(wǎng)頁已恢復,則正常抓取;如果繼續(xù)返回503,短期內(nèi)還會反復訪問幾次。但是如果網(wǎng)頁長期返回503,那么這個url仍會被百度認為是失效鏈接,從搜索結果中刪除。
503狀態(tài)碼的設置方法
IIS服務器的就好解決,一般回收一下應用程序池即可,或者重啟一下IIS。
下面舉的例子需要配合APACHE的 .htaccess 重寫文件來實現(xiàn):
Options +FollowSymLinks
RewriteEngine On
RewriteBase /
RewriteCond %{HTTP_USER_AGENT} ^.*google.* [NC]
RewriteRule .* /cgi-bin/error/503.php
向除了指定ip外的任何來訪者發(fā)送 503:
Options +FollowSymLinks
RewriteEngine On
RewriteBase /
RewriteCond %{REMOTE_HOST} !^1\.1\.1\.1
RewriteCond %{REQUEST_URI} !^/cgi-bin/error/503\.php [NC]
RewriteRule .* /cgi-bin/error/503.php
向蜘蛛發(fā)送 503,其他來訪者返回一個 404 頁面:
Options +FollowSymLinks
RewriteEngine On
RewriteBase /
RewriteCond %{HTTP_USER_AGENT} ^.*(Googlebot|Googlebot|Mediapartners|Adsbot|Feedfetcher)-?(Google|Image)? [NC]
RewriteCond %{REQUEST_URI} !^/cgi-bin/error/503\.php [NC]
RewriteRule .* /cgi-bin/error/503.php
RewriteCond %{REMOTE_HOST} !^1\.1\.1\.1
RewriteCond %{REQUEST_URI} !^/cgi-bin/error/404\.php [NC]
RewriteRule .* /under-development-explain.html [R=302,L]
如果是單頁面,可以先建一個503.php文件,
<?php
ob_start();
header('HTTP/1.1 503 Service Temporarily Unavailable');
header('Status: 503 Service Temporarily Unavailable');
header('Retry-After: 3600');
header('X-Powered-By:');
?><!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
<html><head>
<title>503 Service Temporarily Unavailable</title>
</head><body>
<h1>Service Temporarily Unavailable</h1>
<p>The server is temporarily unable to service your
request due to maintenance downtime or capacity
problems. Please try again later.</p>
</body></html>
把這段代碼復制進去就可以了,但切記把所有頁面都指向這一個頁面,這樣做只告知了用戶,而沒有通知蜘蛛,這樣蜘蛛只會以為其他頁面被刪除了,只剩下這個頁面。
第一二句告知搜索蜘蛛網(wǎng)站處理暫時關閉狀態(tài),第三句告知搜索蜘蛛,網(wǎng)站將于2012年10月8日18:27從新開放,注意:這里用的是格林威治標準時間。
但是光放一個503信息到服務器里還是不夠的,蜘蛛會訪問網(wǎng)站不同的頁面,因此我們必須引導所有的蜘蛛到503.php這個頁面,讓蜘蛛知道,整個網(wǎng)站處于臨時關閉中,而不是個別頁面。
如果站長使用的是Apache/Linux服務器,我們只需在.htaccess設置一下,引導所有的蜘蛛到505.php頁面,這里我們要使用302跳轉,注意:在這里千萬不要使用301跳轉,因為301是永久的,在這種情況下會毀滅掉整個網(wǎng)站。
引導蜘蛛到503.php
將下面這段代碼保存到.htaccess文件,并上傳到網(wǎng)站根目錄
Options +FollowSymLinks
RewriteEngine On
RewriteBase /
RewriteCond %{REMOTE_ADDR} !^00\.00\.00.\.00
RewriteCond %{REQUEST_URI}!^/503.php [NC]
RewriteRule ,* /503.php [R,L]
最后一行的[R, 告知蜘蛛,這個是302跳轉,屬于暫時的。這樣我們就完成了網(wǎng)站臨時關閉的部署,可以放心關站了!
百度站長平臺的建議和總結:
如果百度spider對您的站點抓取壓力過大,請盡量不要使用404,同樣建議返回503。這樣百度spider會過段時間再來嘗試抓取這個鏈接,如果那個時間站點空閑,那它就會被成功抓取了
如果站點臨時關閉或者頁面暫未建好上線,當網(wǎng)頁不能打開時以及沒有建好時,不要立即返回404,建議使用503狀態(tài)。503可以告知百度spider該頁面臨時不可訪問,請過段時間再重試。 本文出自:億恩科技【mszdt.com】 |