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