什么是robots.txt文件?
搜索引擎使用spider程序自動訪問互聯網上的網頁并獲取網頁信息。spider在訪問一個網站時,會首先會檢查該網站的根域下是否有一個叫做robots.txt的純文本文件,這個文件用于指定spider在您網站上的抓取范圍。您可以在您的網站中創建一個robots.txt,在文件中聲明該網站中不想被搜索引擎收錄的部分或者指定搜索引擎只收錄特定的部分。
請注意,僅當您的網站包含不希望被搜索引擎收錄的內容時,才需要使用robots.txt文件。如果您希望搜索引擎收錄網站上所有內容,請勿建立robots.txt文件。
robots.txt文件放在哪里?
robots.txt文件應該放置在網站根目錄下。舉例來說,當spider訪問一個網站(比如http://www.abc.com)時,首先會檢查該網站中是否存在http://www.abc.com/robots.txt這個文件,如果Spider找到這個文件,它就會根據這個文件的內容,來確定它訪問權限的范圍。
網站 URL | 相應的 robots.txt的 URL |
http://www.w3.org/ | http://www.w3.org/robots.txt |
http://www.w3.org:80/ | http://www.w3.org:80/robots.txt |
http://www.w3.org:1234/ | http://www.w3.org:1234/robots.txt |
http://w3.org/ | http://w3.org/robots.txt |
我在robots.txt中設置了禁止百度收錄我網站的內容,為何還出現在百度搜索結果中?
如果其他網站鏈接了您robots.txt文件中設置的禁止收錄的網頁,那么這些網頁仍然可能會出現在百度的搜索結果中,但您的網頁上的內容不會被抓取、建入索引和顯示,百度搜索結果中展示的僅是其他網站對您相關網頁的描述。
禁止搜索引擎跟蹤網頁的鏈接,而只對網頁建索引
如果您不想搜索引擎追蹤此網頁上的鏈接,且不傳遞鏈接的權重,請將此元標記置入網頁的 <HEAD> 部分:
<meta name="robots" content="nofollow">
如果您不想百度追蹤某一條特定鏈接,百度還支持更精確的控制,請將此標記直接寫在某條鏈接上:
<a href="signin.php" rel="nofollow">sign in</a>
要允許其他搜索引擎跟蹤,但僅防止百度跟蹤您網頁的鏈接,請將此元標記置入網頁的 <HEAD> 部分:
<meta name="Baiduspider" content="nofollow">
禁止搜索引擎在搜索結果中顯示網頁快照,而只對網頁建索引
要防止所有搜索引擎顯示您網站的快照,請將此元標記置入網頁的 <HEAD> 部分:
<meta name="robots" content="noarchive">
要允許其他搜索引擎顯示快照,但僅防止百度顯示,請使用以下標記:
<meta name="Baiduspider" content="noarchive">
注:此標記只是禁止百度顯示該網頁的快照,百度會繼續為網頁建索引,并在搜索結果中顯示網頁摘要。
我想禁止百度圖片搜索收錄某些圖片,該如何設置?
禁止Baiduspider抓取網站上所有圖片、禁止或允許Baiduspider抓取網站上的某種特定格式的圖片文件可以通過設置robots實現,請參考“robots.txt文件用法舉例”中的例10、11、12。
我在robots.txt中設置了禁止百度收錄我網站的內容,為何還出現在百度搜索結果中?
如果其他網站鏈接了您robots.txt文件中設置的禁止收錄的網頁,那么這些網頁仍然可能會出現在百度的搜索結果中,但您的網頁上的內容不會被抓取、建入索引和顯示,百度搜索結果中展示的僅是其他網站對您相關網頁的描述。
robots.txt文件的格式
"robots.txt"文件包含一條或更多的記錄,這些記錄通過空行分開(以CR,CR/NL, or NL作為結束符),每一條記錄的格式如下所示:
"<field>:<optionalspace><value><optionalspace>"。
在該文件中可以使用#進行注解,具體使用方法和UNIX中的慣例一樣。該文件中的記錄通常以一行或多行User-agent開始,后面加上若干Disallow和Allow行,詳細情況如下:
User-agent:
該項的值用于描述搜索引擎robot的名字。在"robots.txt"文件中,如果有多條User-agent記錄說明有多個robot會受到"robots.txt"的限制,對該文件來說,至少要有一條User-agent記錄。如果該項的值設為*,則對任何robot均有效,在"robots.txt"文件中,"User-agent:*"這樣的記錄只能有一條。如果在"robots.txt"文件中,加入"User-agent:SomeBot"和若干Disallow、Allow行,那么名為"SomeBot"只受到"User-agent:SomeBot"后面的Disallow和Allow行的限制。
Disallow:
該項的值用于描述不希望被訪問的一組URL,這個值可以是一條完整的路徑,也可以是路徑的非空前綴,以Disallow項的值開頭的URL不會被robot訪問。例如"Disallow:/help"禁止robot訪問/help.html、/helpabc.html、/help/index.html,而"Disallow:/help/"則允許robot訪問/help.html、/helpabc.html,不能訪問/help/index.html。"Disallow:"說明允許robot訪問該網站的所有url,在"/robots.txt"文件中,至少要有一條Disallow記錄。如果"/robots.txt"不存在或者為空文件,則對于所有的搜索引擎robot,該網站都是開放的。
Allow:
該項的值用于描述希望被訪問的一組URL,與Disallow項相似,這個值可以是一條完整的路徑,也可以是路徑的前綴,以Allow項的值開頭的URL是允許robot訪問的。例如"Allow:/hibaidu"允許robot訪問/hibaidu.htm、/hibaiducom.html、/hibaidu/com.html。一個網站的所有URL默認是Allow的,所以Allow通常與Disallow搭配使用,實現允許訪問一部分網頁同時禁止訪問其它所有URL的功能。
需要特別注意的是Disallow與Allow行的順序是有意義的,robot會根據第一個匹配成功的Allow或Disallow行確定是否訪問某個URL。
使用"*"和"$":
Baiduspider支持使用通配符"*"和"$"來模糊匹配url。
"$" 匹配行結束符。
"*" 匹配0或多個任意字符。
URL匹配舉例
Allow或Disallow的值 | URL | 匹配結果 |
/tmp | /tmp | yes |
/tmp | /tmp.html | yes |
/tmp | /tmp/a.html | yes |
/tmp/ | /tmp | no |
/tmp/ | /tmphoho | no |
/tmp/ | /tmp/a.html | yes |
/Hello* | /Hello.html | yes |
/He*lo | /Hello,lolo | yes |
/Heap*lo | /Hello,lolo | no |
html$ | /tmpa.html | yes |
/a.html$ | /a.html | yes |
htm$ | /a.html | no |
robots.txt文件用法舉例
例1.禁止所有搜索引擎訪問網站的任何部分 | User-agent: * Disallow: / |
例2. 允許所有的robot訪問 | User-agent: * Disallow: 或者 User-agent: * Allow: / |
例3. 僅禁止Baiduspider訪問您的網站 | User-agent: Baiduspider Disallow: / |
例4. 僅允許Baiduspider訪問您的網站 | User-agent: Baiduspider Disallow: User-agent: * Disallow: / |
例5. 禁止spider訪問特定目錄 在這個例子中,該網站有三個目錄對搜索引擎的訪問做了限制,即robot不會訪問這三個目錄。需要注意的是對每一個目錄必須分開聲明,而不能寫成 "Disallow: /cgi-bin/ /tmp/"。 | User-agent: * Disallow: /cgi-bin/ Disallow: /tmp/ Disallow: /~joe/ |
例6. 允許訪問特定目錄中的部分url | User-agent: * Allow: /cgi-bin/see Allow: /tmp/hi Allow: /~joe/look Disallow: /cgi-bin/ Disallow: /tmp/ Disallow: /~joe/ |
例7. 使用"*"限制訪問url 禁止訪問/cgi-bin/目錄下的所有以".htm"為后綴的URL(包含子目錄)。 | User-agent: * Disallow: /cgi-bin/*.htm |
例8. 使用"$"限制訪問url 僅允許訪問以".htm"為后綴的URL。 | User-agent: * Allow: .htm$ Disallow: / |
例9. 禁止訪問網站中所有的動態頁面 | User-agent: * Disallow: /*?* |
例10. 禁止Baiduspider抓取網站上所有圖片 僅允許抓取網頁,禁止抓取任何圖片。 | User-agent: Baiduspider Disallow: /*.jpg$ Disallow: /*.jpeg$ Disallow: /*.gif$ Disallow: /*.png$ Disallow: /*.bmp$ |
例11. 僅允許Baiduspider抓取網頁和.gif格式圖片 允許抓取網頁和gif格式圖片,不允許抓取其他格式圖片 | User-agent: Baiduspider Allow: /*.gif$ Disallow: /*.jpg$ Disallow: /*.jpeg$ Disallow: /*.png$ Disallow: /*.bmp$ |
例12. 僅禁止Baiduspider抓取.jpg格式圖片 | User-agent: Baiduspider Disallow: /*.jpg$ |