robots文件是什么?應(yīng)該如何書寫
搜索引擎通過一種程序robot(又稱spider),自動訪問互聯(lián)網(wǎng)上的網(wǎng)頁并獲取網(wǎng)頁信 息。您可以在您的網(wǎng)站中創(chuàng)建一個純文本文件robots.txt,在這個文件中聲明該網(wǎng)站中不想被robot 訪問的部分,這樣,該網(wǎng)站的部分或全部內(nèi)容就可以不被搜索引擎收錄了,或者指定搜 索引擎只收錄指定的內(nèi)容。
2. robots.txt文件放在哪里?
robots.txt文件應(yīng)該放在網(wǎng)站根目錄下。舉例來說,當(dāng)搜索引擎訪問一個網(wǎng)站時,首先會檢查該網(wǎng)站中是否存在robots.txt這個文件,如果robots機器人程序找到這個文件,它就會根據(jù)這個文件的內(nèi)容,來確定它訪問權(quán)限的范圍。
wordpress的robots文件位置
沒在wordpress網(wǎng)站根節(jié)目上傳過robots.txt,當(dāng)搜尋引擎和用戶拜訪某個文件時,wordpress程序會主動生成一個robots.txt給搜尋引擎和用戶;若是我們上傳編寫的robots.txt到網(wǎng)站根節(jié)目,用戶和搜尋引擎蛛蛛拜訪的就是我們上傳的文件,wordpress就不會再產(chǎn)生那個文件了。只有服務(wù)器找不到robots的時候wordpress才會生成這個文件。
網(wǎng)站URL相應(yīng)的robots.txt的URL:
//qn1.10soo.net/shisou/ //qn1.10soo.net/shisou/robots.txt
//qn1.10soo.net/shisou:80/ //qn1.10soo.net/shisou:80/robots.txt
//qn1.10soo.net/shisou:1234/ //qn1.10soo.net/shisou:1234/robots.txt
//qn1.10soo.net/shisou/ //qn1.10soo.net/shisou/robots.txt
文件格式
“robots.txt”文件包含一條或多條記錄,這些記錄通過空行分開(以CR、CR/NL、or NL作為結(jié)束符),每一條記錄的格式如下所示:
“<field>:<optionalspace><value><optionalspace>”
在該文件中可以使用#進行注釋,具體使用方法和UNIX中的慣例一樣。該文件中的記錄通常以一行或多行User-agent開始,后面加上若干Disallow行,詳細(xì)情況如下:
User-agent:
該項的值用于描述搜索引擎機器人robot的名字。在“robots.txt”文件中,如果有多條 User-agent記錄,說明有多個robot會受到該協(xié)議的約束。所以,“robots.txt”文件中至少要有一條User- agent記錄。如果該項的值設(shè)為*(通配符),則該協(xié)議對任何搜索引擎機器人均有效。在“robots.txt”文件 中,“User-agent:*”這樣的記錄只能有一條。
Disallow:
該項的值用于描述不希望被訪問到的一個URL,這個URL可以是一條完整的路徑,也可以 是部分的,任何以Disallow開頭的URL均不會被robot訪問到。例如:
“Disallow: /help”對/help.html 和/help/index.html都不允許搜索引擎訪問, 而“Disallow: /help/”則允許robot訪問/help.html,而不能訪問/help/index.html。
任何一條Disallow記錄為空,說明該網(wǎng)站的所有部分都允許被訪問,在 “/robots.txt”文件中,至少要有一條Disallow記錄。如果“/robots.txt”是一個空文 件,則對于所有的搜索引擎robot,該網(wǎng)站都是開放的。
robots.txt文件用法舉例:
例1、禁止所有搜索引擎訪問網(wǎng)站的任何部分
User-agent: *
Disallow: /
例2、允許所有的robot訪問
User-agent: *
Disallow:
(或者也可以建一個空文件 "/robots.txt" file)
例3、禁止某個搜索引擎的訪問
User-agent: BadBot
Disallow: /
例4、允許某個搜索引擎的訪問
User-agent: Baiduspider
Disallow:
User-agent: *
Disallow: /
例5、假設(shè)某個網(wǎng)站有三個目錄對搜索引擎的訪問做了限制,可以這么寫:
User-agent: *
Disallow: /cgi-bin/
Disallow: /tmp/
Disallow: /joe/
需要注意的是,對每一個目錄必須分開聲明,而不要寫成:“Disallow: /cgi-bin/ /tmp/”。
例6:禁止搜索引擎收錄以.jpg結(jié)尾的所有圖片文件
User-agent: *
Disallow: :/*.jpg$
User-agent:后的*(通配符) 具有特殊的含義,代表“any robot”,所以在該文件中不能有 “Disallow: /tmp/*” or “Disallow: *.gif ”這樣的記錄出現(xiàn)。
另外,robots.txt主要作用是保障網(wǎng)絡(luò)安全與網(wǎng)站隱私,百度蜘蛛遵循robots.txt協(xié)議。通過根目錄中創(chuàng)建的純文本文件robots.txt,網(wǎng)站就可以聲明哪些頁面不想被百度蜘蛛爬行并收錄,每個網(wǎng)站都可以自主控制網(wǎng)站是否愿意被百度蜘蛛收錄,或者指定百度蜘蛛只收錄指定的內(nèi)容。當(dāng)百度蜘蛛訪問某個站點時,它會首先檢查該站點根目錄下是否存在robots.txt,如果該文件不存在,那么爬蟲就沿著鏈接抓取,如果存在,爬蟲就會按照該文件中的內(nèi)容來確定訪問的范圍。
一般屏蔽
屏蔽隱私頁面,后臺登陸頁面,緩存頁面,圖片目錄,css目錄,模板頁面,屏蔽雙頁面的內(nèi)容,同時可以屏蔽一些質(zhì)量比較差的頁面,例如金網(wǎng)的所有會員用戶空間頁面,dz的動態(tài)鏈接也可以設(shè)置屏蔽。通過Disallow:命令來進行設(shè)置。
使用技巧
每當(dāng)用戶試圖訪問某個不存在的URL時,服務(wù)器都會在日志中記錄404錯誤(無法找到文件)。每當(dāng)搜索蜘蛛來尋找并不存在的robots.txt文件時,服務(wù)器也將在日志中記錄一條404錯誤,所以你應(yīng)該在網(wǎng)站中添加一個robots.txt。
網(wǎng)站管理員必須使搜索引擎機器人程序遠(yuǎn)離服務(wù)器上的某些目錄,以保證服務(wù)器性能。比如:大多數(shù)網(wǎng)站服務(wù)器都有程序儲存在“cgi-bin”目錄下,因此在robots.txt文件中加入“Disallow: /cgi-bin”是個好主意,這樣能夠避免所有程序文件都被蜘蛛索引,以達(dá)到節(jié)省服務(wù)器資源的效果。
一般網(wǎng)站中不需要蜘蛛抓取的文件有:后臺管理文件、程序腳本、附件、數(shù)據(jù)庫文件、編碼文件、樣式表文件、模板文件、導(dǎo)航圖片和背景圖片等等。
下面是VeryCMS里的robots.txt文件:
User-agent: *
Disallow: /admin/ 后臺管理文件
Disallow: /require/程序文件
Disallow: /attachment/ 附件
Disallow: /images/ 圖片
Disallow: /data/數(shù)據(jù)庫文件
Disallow: /template/ 模板文件
Disallow: /css/ 樣式表文件
Disallow: /lang/ 編碼文件
Disallow: /script/腳本文件
Disallow: /js/js文件
如果你的網(wǎng)站是動態(tài)網(wǎng)頁,并且你為這些動態(tài)網(wǎng)頁創(chuàng)建了靜態(tài)副本,以供搜索蜘蛛更容易抓取。那么你需要在robots.txt文件里設(shè)置避免動態(tài)網(wǎng)頁被蜘蛛索引,以保證這些網(wǎng)頁不會被視為是網(wǎng)站重復(fù)的內(nèi)容。
robots.txt文件里還可以直接包括在sitemap文件的鏈接。就像這樣:
Sitemap: http://www.***.com/sitemap.xml
不要以為Web Robot是毫無組織,毫無管束地亂跑。很多Web Robot軟件給網(wǎng)絡(luò)站點的 管理員或網(wǎng)頁內(nèi)容制作者提供了兩種方法來限制Web Robot的行蹤:
1、Robots Exclusion Protocol 協(xié)議
網(wǎng)絡(luò)站點的管理員可以在站點上建立一個專門格式的文件,來指出站點上的哪一部分 可以被robot訪問, 這個文件放在站點的根目錄下,即 robots.txt." http://.../robots.txt.
2、Robots META tag
一個網(wǎng)頁作者可以使用專門的HTML META tag ,來指出某一個網(wǎng)頁是否可以被索 引、分析或鏈接。
這些方法適合于大多數(shù)的Web Robot,至于是否在軟件中實施了這些方法,還依賴于 Robot的開發(fā)者,并非可以保證對任何Robot都靈驗。如果 你迫切需要保護自己內(nèi)容,則應(yīng)考慮采用諸如增加密碼等其他保護方法。
使用Robots Exclusion Protocol協(xié)議
當(dāng)Robot訪問一個 Web 站點時,它先去檢查文件robots.txt。如果這個文件存在,它便會按照這樣的記錄格式去分析:
User-agent: *
Disallow: /cgi-bin/
Disallow: /tmp/
Disallow: /~joe/
以確定它是否應(yīng)該檢索站點的文件。這些記錄是專門給Web Robot看的,一般的瀏覽者大概永遠(yuǎn)不會看到這個文件,所以千萬不要異想天開地在 里面加入形似<img src=*> 類的HTML語句或是How do you do? where are you from?之類假情假意的問候語。
在一個站點上只能有一個 "/robots.txt" 文件,而且文件名的每個字母要求全部是小 寫。在Robot的記錄格式中每一個單獨的"Disallow"行表 示你不希望Robot訪問的URL, 每個URL必須單獨占一行,不能出現(xiàn) "Disallow: /cgi-bin/ /tmp/"這樣的病句。同時在一個記錄中不能出現(xiàn)空 行,這是因為空行是多個記錄分割的標(biāo)志。
User-agent行指出的是Robot或其他代理的名稱。在User-agent行,''*'' 表示一個特殊的含義---所有的robot。
使用Robots META tag方式
Robots META tag 允許HTML網(wǎng)頁作者指出某一頁是否可以被索引,或是否可以用來查找更多的鏈接文件。目前只有部分robot實施了這一功能。
Robots META tag的格式為:
META NAME="ROBOTS" CONTENT="NOINDEX, NOFOLLOW"
像其他的META tag一樣,它應(yīng)該放在HTML文件的HEAD區(qū):
<html>
<head>
<meta name="robots" content="noindex,nofollow">
<meta name="description" content="This page ...."> <title>...</title>
</head>
<body>
...
Robots META tag指令使用逗號隔開,可以使用的指令包括 [NO]INDEX 和[NO]FOLLOW。INDEX 指令指出一個索引性robot是否可以對本頁進行索 引;FOLLOW 指 令指出robot是否可以跟蹤本頁的鏈接。缺省的情況是INDEX和FOLLOW。例如:
<meta name="robots" content="index,follow">
<meta name="robots" content="noindex,follow">
<meta name="robots" content="index,nofollow">
<meta name="robots" content="noindex,nofollow">
一個好的Web 站點管理員應(yīng)該將robot的管理考慮在內(nèi),使robot為自己的主頁服務(wù), 同時又不損害自己網(wǎng)頁的安全。