robot.txt寫法 robots文件怎么寫 robots文件寫法技巧(3)
時間:2016-05-14 15:33 來源:未知 作者:ADMIN 人氣:
【導讀】:資料三 什么是robots.txt? robots.txt robots.txt是搜索引擎中訪問網站的時候要查看的第一個文件。robots.txt文件告訴蜘蛛程序在服務器上什么文件是可以被查看的。 當一個搜索蜘蛛訪問一個站點時,它會首先檢查該...
資料三
什么是robots.txt?
robots.txt
robots.txt是搜索引擎中訪問網站的時候要查看的第一個文件。robots.txt文件告訴蜘蛛程序在服務器上什么文件是可以被查看的。
當一個搜索蜘蛛訪問一個站點時,它會首先檢查該站點根目錄下是否存在robots.txt,如果存在,搜索機器人就會按照該文件中的內容來確定訪問的范圍;如果該文件不存在,所有的搜索蜘蛛將能夠訪問網站上所有沒有被口令保護的頁面。百度官方建議,僅當您的網站包含不希望被搜索引擎收錄的內容時,才需要使用robots.txt文件。如果您希望搜索引擎收錄網站上所有內容,請勿建立robots.txt文件。
robots.txt必須放置在一個站點的根目錄下,而且文件名必須全部小寫。
語法:最簡單的 robots.txt 文件使用兩條規則:
? User-Agent: 適用下列規則的漫游器
? Disallow: 要攔截的網頁
robots.txt在SEO中作用
在進行網站優化的時候,經常會使用robots文件把一些內容不想讓蜘蛛抓取,以前寫過一篇網站優化robots.txt文件的運用, 現在寫這編文章在補充一點點知識!什么是robots.txt文件
搜索引擎通過一種爬蟲spider程序(又稱搜索蜘蛛、robot、搜索機器人等),自動搜集互聯網上的網頁并獲取相關信息。
鑒于網絡安全與隱私的考慮,搜索引擎遵循robots.txt協議。通過根目錄中創建的純文本文件robots.txt,網站可以聲明不想被robots訪問的部分。每個網站都可以自主控制網站是否愿意被搜索引擎收錄,或者指定搜索引擎只收錄指定的內容。當一個搜索引擎的爬蟲訪問一個站點時,它會首先檢查該站點根目錄下是否存在robots.txt,如果該文件不存在,那么爬蟲就沿著鏈接抓取,如果存在,爬蟲就會按照該文件中的內容來確定訪問的范圍。
robots.txt必須放置在一個站點的根目錄下,而且文件名必須全部小寫。robots.txt文件的格式
User-agent: 定義搜索引擎的類型
Disallow: 定義禁止搜索引擎收錄的地址
Allow: 定義允許搜索引擎收錄的地址
我們常用的搜索引擎類型有: (User-agent區分大小寫)
google蜘蛛:Googlebot
百度蜘蛛:Baiduspider
yahoo蜘蛛:Yahoo!slurp
alexa蜘蛛:ia_archiver
bing蜘蛛:MSNbot
altavista蜘蛛:scooter
lycos蜘蛛:lycos_spider_(t-rex)
alltheweb蜘蛛:fast-webcrawler
inktomi蜘蛛: slurp
Soso蜘蛛:Sosospider
Google Adsense蜘蛛:Mediapartners-Google
有道蜘蛛:YoudaoBot
robots.txt文件的寫法
User-agent: * 這里的*代表的所有的搜索引擎種類,*是一個通配符
Disallow: /admin/ 這里定義是禁止爬尋admin目錄下面的目錄
Disallow: /require/ 這里定義是禁止爬尋require目錄下面的目錄
Disallow: /ABC/ 這里定義是禁止爬尋ABC目錄下面的目錄
Disallow: /cgi-bin/*.htm 禁止訪問/cgi-bin/目錄下的所有以".htm"為后綴的URL(包含子目錄)。
Disallow: /*?* 禁止訪問網站中所有的動態頁面
Disallow: /jpg$ 禁止抓取網頁所有的.jpg格式的圖片
Disallow:/ab/adc.html 禁止爬去ab文件夾下面的adc.html文件。
Allow: /cgi-bin/ 這里定義是允許爬尋cgi-bin目錄下面的目錄
Allow: /tmp 這里定義是允許爬尋tmp的整個目錄
Allow: .htm$ 僅允許訪問以".htm"為后綴的URL。
Allow: .gif$ 允許抓取網頁和gif格式圖片
robots.txt文件用法舉例
例1. 禁止所有搜索引擎訪問網站的任何部分
User-agent: *
Disallow: /
實例分析:淘寶網的 Robots.txt文件
User-agent: Baiduspider
Disallow: /
User-agent: baiduspider
Disallow: /
很顯然淘寶不允許百度的機器人訪問其網站下其所有的目錄。
例2. 允許所有的robot訪問 (或者也可以建一個空文件 “/robots.txt” file)
User-agent: *
Allow:
例3. 禁止某個搜索引擎的訪問
User-agent: BadBot
Disallow: /
例4. 允許某個搜索引擎的訪問
User-agent: Baiduspider
allow:/
例5.一個簡單例子
在這個例子中,該網站有三個目錄對搜索引擎的訪問做了限制,即搜索引擎不會訪問這三個目錄。
需要注意的是對每一個目錄必須分開聲明,而不要寫成 “Disallow: /cgi-bin/ /tmp/”。
User-agent:后的*具有特殊的含義,代表“any robot”,所以在該文件中不能有“Disallow: /tmp/*” or “Disallow:*.gif”這樣的記錄出現。
User-agent: *
Disallow: /cgi-bin/
Disallow: /tmp/
Disallow: /~joe/
Robot特殊參數:
允許 Googlebot:
如果您要攔截除 Googlebot 以外的所有漫游器不能訪問您的網頁,可以使用下列語法:
User-agent:
Disallow:/
User-agent:Googlebot
Disallow:
Googlebot 跟隨指向它自己的行,而不是指向所有漫游器的行。
“Allow”擴展名:
Googlebot 可識別稱為“Allow”的 robots.txt 標準擴展名。其他搜索引擎的漫游器可能無法識別此擴展名,因此請使用您感興趣的其他搜索引擎進行查找。“Allow”行的作用原理完全與“Disallow”行一樣。只需列出您要允許的目錄或頁面即可。
您也可以同時使用“Disallow”和“Allow”。例如,要攔截子目錄中某個頁面之外的其他所有頁面,可以使用下列條目:
User-agent:Googlebot
Disallow:/folder1/
Allow:/folder1/myfile.html
這些條目將攔截 folder1 目錄內除 myfile.html 之外的所有頁面。
如果您要攔截 Googlebot 并允許 Google 的另一個漫游器(如 Googlebot-Mobile),可使用”Allow”規則允許該漫游器的訪問。例如:
User-agent:Googlebot
Disallow:/
User-agent:Googlebot-Mobile
Allow:
使用 * 號匹配字符序列:
您可使用星號 (*) 來匹配字符序列。例如,要攔截對所有以 private 開頭的子目錄的訪問,可使用下列條目:
User-Agent:Googlebot
Disallow:/private*/
要攔截對所有包含問號 (?) 的網址的訪問,可使用下列條目:
User-agent:*
Disallow:/*?*
使用 $ 匹配網址的結束字符
您可使用 $ 字符指定與網址的結束字符進行匹配。例如,要攔截以 .asp 結尾的網址,可使用下列條目:
User-agent:Googlebot
Disallow:/*.asp$
您可將此模式匹配與 Allow 指令配合使用。例如,如果 ? 表示一個會話 ID,您可排除所有包含該 ID 的網址,確保 Googlebot 不會抓取重復的網頁。但是,以 ? 結尾的網址可能是您要包含的網頁版本。在此情況下,可對 robots.txt 文件進行如下設置:
User-agent:*
Allow:/*?$
Disallow:/*?
Disallow:/ *?
一行將攔截包含 ? 的網址(具體而言,它將攔截所有以您的域名開頭、后接任意字符串,然后是問號 (?),而后又是任意字符串的網址)。
Allow: /*?$ 一行將允許包含任何以 ? 結尾的網址(具體而言,它將允許包含所有以您的域名開頭、后接任意字符串,然后是問號 (?),問號之后沒有任何字符的網址)。
Robots Meta標簽
Robots.txt文件主要是限制整個站點或者目錄的搜索引擎訪問情況,而Robots Meta標簽則主要是針對一個個具體的頁面。和其他的META標簽(如使用的語言、頁面的描述、關鍵詞等)一樣,Robots Meta標簽也是放在頁面中,專門用來告訴搜索引擎ROBOTS如何抓取該頁的內容。
Robots Meta標簽中沒有大小寫之分,name=”Robots”表示所有的搜索引擎,可以針對某個具體搜索引擎寫為name=”BaiduSpider”。content部分有四個指令選項:index、noindex、follow、nofollow,指令間以“,”分隔。
index指令告訴搜索機器人抓取該頁面;
follow指令表示搜索機器人可以沿著該頁面上的鏈接繼續抓取下去;
Robots Meta標簽的缺省值是index和follow,只有inktomi除外,對于它,缺省值是index、nofollow。
需要注意的是:
上述的robots.txt和Robots Meta標簽限制搜索引擎機器人(ROBOTS)抓取站點內容的辦法只是一種規則,需要搜索引擎機器人的配合才行,并不是每個ROBOTS都遵守的。
目前看來,絕大多數的搜索引擎機器人都遵守robots.txt的規則,而對于RobotsMETA標簽,目前支持的并不多,但是正在逐漸增加,如著名搜索引擎GOOGLE就完全支持,而且GOOGLE還增加了一個指令“archive”,可以限制GOOGLE是否保留網頁快照。
編輯本段robots.txt使用誤區
特別提示:robots里面內容的大小寫不可更改,Disallow后面的冒號必須為英文狀態的。
誤區一
網站上所有的文件都需要被蜘蛛抓取,那就沒必要添加robots.txt文件了。反正如果該文件不存在,所有的搜索蜘蛛將默認能夠訪問網站上所有沒有被口令保護的頁面。
誤區二
在robots.txt文件中設置所有的文件都可以被搜索蜘蛛抓取,這樣可以增加網站的收錄率。
網站中的腳本程序、樣式表等文件即使被蜘蛛收錄,也不會增加網站的收錄率,還只會占用服務器存儲空間。因此必須在robots.txt文件里設置不要讓搜索蜘蛛索引腳本程序、樣式表等文件,具體哪些文件需要排除,在robots.txt使用技巧一文中有詳細介紹。
誤區三
搜索蜘蛛抓取網頁太浪費服務器資源,在robots.txt文件中設置所有的搜索蜘蛛都不能抓取全部的網頁。
如果這樣的話,會導致整個網站不能被搜索引擎收錄。
編輯本段robots.txt使用技巧
文件
1. 每當用戶試圖訪問某個不存在的URL時,服務器都會在日志中記錄404錯誤(無法找到文件)。每當搜索蜘蛛來尋找并不存在的robots.txt文件時,服務器也將在日志中記錄一條404錯誤,所以你應該在網站中添加一個robots.txt。
2. 網站管理員必須使蜘蛛程序遠離某些服務器上的目錄——保證服務器性能。比如:大多數網站服務器都有程序儲存在“cgi-bin”目錄下,因此在robots.txt文件中加入“Disallow: /cgi-bin/”是個好主意,這樣能夠避免將所有程序文件被蜘蛛索引,可以節省服務器資源。一般網站中不需要蜘蛛抓取的文件有:后臺管理文件、程序腳本、附件、數據庫文件、編碼文件、樣式表文件、模板文件、導航圖片和背景圖片等等。
下面是VeryCMS里的robots.txt文件:
User-agent: *
Disallow: /admin/ 后臺管理文件
Disallow: /require/ 程序文件
Disallow: /attachment/ 附件
Disallow: /images/ 圖片
Disallow: /data/ 數據庫文件
Disallow: /template/ 模板文件
Disallow: /css/ 樣式表文件
Disallow: /lang/ 編碼文件
Disallow: /script/ 腳本文件
3. 如果你的網站是動態網頁,并且你為這些動態網頁創建了靜態副本,以供搜索蜘蛛更容易抓取。那么你需要在robots.txt文件里設置避免動態網頁被蜘蛛索引,以保證這些網頁不會被視為含重復內容。
4. robots.txt文件里還可以直接包括在sitemap文件的鏈接。就像這樣:
Sitemap: http://www.***.com/sitemap.xml
(此處請填寫XML地圖的絕對路徑,即完整URL,如果按習慣填寫Sitemap: /sitemap.xml,提交后會提示:檢測到無效的 Sitemap 網址;語法錯誤。
XML地圖必須在網站根目錄下才有效。)
目前對此表示支持的搜索引擎公司有Google, Yahoo, Ask and MSN。而中文搜索引擎公司,顯然不在這個圈子內。這樣做的好處是,站長不用到每個搜索引擎的站長工具或者相似的站長部分,去提交自己的sitemap文件,搜索引擎的蜘蛛自己就會抓取robots.txt文件,讀取其中的sitemap路徑,接著抓取其中相鏈接的網頁。
5. 合理使用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或多個任意字符。
robots.txt文件字符編碼
robots.txt使用什么字符編碼,并沒有相關規定,都是各搜索引擎自已定義的。雖然google和其它搜索引擎建議大家使用 utf-8 字符編碼格式的robots.txt,但幾乎所有的搜索引擎都支持 ANSI 編碼格式,而google自已對 utf-8 編碼格式的robots.txt,會出現首字亂碼。所以為了達到最大的兼容性,建議大家使用 ANSI 格式編碼,或者使用 utf-8 編碼格式,但需要空出首行。
還有一個建議就是robots.txt中最好不要出現中文,即使是注釋也要使用英文。
robots.txt文件用法舉例
例1.禁止所有搜索引擎訪問網站的任何部分 User-agent: *
Disallow: /
例2.允許所有的robot訪問
(或者也可以建一個空文件 "/robots.txt") 第1種寫法
User-agent: *
Allow: /
第2種寫法
User-agent: *
Allow:
第3種寫法
User-agent: *
Disallow:
例3. 僅禁止Baiduspider訪問您的網站 User-agent: Baiduspider
Disallow: /
例4. 僅允許Baiduspider訪問您的網站 User-agent: Baiduspider
Allow: /
例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
例7. 使用"*"限制訪問url
禁止訪問/cgi-bin/目錄下的所有以".htm"為后綴的URL(包含子目錄)。
User-agent: *
Disallow: /cgi-bin/*.htm
例8. 使用"$"限制訪問url
僅允許訪問以".htm"為后綴的URL。 User-agent: *
Allow: / .htm$
例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$
百度各個產品使用不同的user-agent:
無線搜索 Baiduspider-mobile
圖片搜索 Baiduspider-image
視頻搜索 Baiduspider-video
新聞搜索 Baiduspider-news
百度搜藏 Baiduspider-favo
百度聯盟 Baiduspider-cpro
商務搜索 Baiduspider-ads
網頁以及其他搜索 Baiduspider