作過網站優化的朋友都知道,搜索引擎蜘蛛爬行抓取網站時首先會去訪問根目錄下的robots.txt文件,若是robots文件存在,則會根據robots文件內設置的規則進行爬行抓取,若是文件不存在則會順着首頁進行抓取,那麼robots文件的工做原理是什麼呢?如何對robots.txt文件進行設置。css
robots.txt是一個純文本的文件,文件的名字必須所有小寫,而且放置在網站的根目錄下面,經過文件中的規則聲明網站哪些內容不想被搜索引擎蜘蛛抓取收錄,或者指定某個搜索引擎不能收錄robots.txt也叫作爬蟲協議,遵循爬蟲協議的搜索引擎蜘蛛,都會根據協議的內容對網站進行爬蟲抓取的。html
1、什麼是robots.txt?數據庫
這是一個文本文件,是搜索引擎爬行網頁要查看的第一個文件,你能夠告訴搜索引擎哪些文件能夠被查看,哪些禁止。安全
當搜索機器人訪問一個站點時,它首先會檢查根目錄是否存在robots.txt,若是有就肯定抓取範圍,沒有就按連接順序抓取。服務器
2、robots.txt有什麼用?ide
爲什麼須要用robots.txt這個文件來告訴搜索機器人不要爬行咱們的部分網頁,好比:後臺管理文件、程序腳本、附件、數據庫文件、編碼文件、樣式表文件、模板文件、導航圖片和背景圖片等等。說到底了,這些頁面或文件被搜索引擎收錄了,用戶也看不了,多數須要口令才能進入或是數據文件。既然這樣,又讓搜索機器人爬行的話,就浪費了服務器資源,增長了服務器的壓力,所以咱們能夠用robots.txt告訴機器人集中注意力去收錄咱們的文章頁面,加強用戶體驗。優化
3、robots設置:網站
一、用robots屏蔽網站重複頁搜索引擎
不少網站一個內容提供多種瀏覽版本,雖然很方便用戶,卻對蜘蛛形成了困難,由於它分不清那個是主,那個是次,一旦讓它認爲你在惡意重複,你就慘了google
User-agent: *
Disallow: /sitemap/ 《禁止蜘蛛抓取 文本網頁》
二、用robots保護網站安全
不少人納悶了,robots怎麼還和網站安全有關係了?其實關係還很大,很多低級黑客就是經過搜索默認後臺登錄,以達到入侵網站的目標
User-agent: *
Disallow: /admin/ 《禁止蜘蛛抓取admin目錄下全部文件》
三、防止盜鏈
通常盜鏈也就幾我的,但是一旦被搜索引擎「盜鏈」那傢伙你100M寬帶也吃不消,若是你作的不是圖片網站,又不想被搜索引擎「盜鏈」你的網站圖片
User-agent: *
Disallow: .jpg$
四、提交網站地圖
如今作優化的都知道作網站地圖了,但是卻沒幾個會提交的,絕大多數人是乾脆在網頁上加個連接,其實robots是支持這個功能的
Sitemap: http:-www-***-com/sitemaps/sitemaps.xml
五、禁止某二級域名的抓取
一些網站會對VIP會員提供一些特殊服務,卻又不想這個服務被搜索引擎檢索到
User-agent: *
Disallow: /
以上五招robots足以讓你對搜索引擎蜘蛛掌控能力提高很多,就像百度說的:咱們和搜索引擎應該是朋友,增長一些溝通,才能消除一些隔膜。
4、robots.txt基本語法
一、robots.txt的幾個關鍵語法:
a、User-agent: 應用下文規則的漫遊器,好比Googlebot,Baiduspider等。
b、Disallow: 要攔截的網址,不容許機器人訪問。
c、Allow: 容許訪問的網址
d、」*」 : 通配符—匹配0或多個任意字符。
e、」$」 : 匹配行結束符。
f、」#」 : 註釋—說明性的文字,不寫也可。
g、Googlebot: 谷歌搜索機器人(也叫搜索蜘蛛)。
h、Baiduspider: 百度搜索機器人(也叫搜索蜘蛛)。
i、目錄、網址的寫法:都以以正斜線 (/) 開頭。如:
Disallow:/
Disallow:/images/
Disallow:/admin/
Disallow:/css/
二、列舉一些robots.txt 具體用法:
容許全部的robot訪問
User-agent: *
Disallow:
或者
User-agent: *
Allow: /
或者建一個空文件」robots.txt」便可。
僅禁止某個機器人訪問您的網站,如Baiduspider。
User-agent: Baiduspider
Disallow: /
僅容許某個機器人訪問您的網站,如Baiduspider。
User-agent: Baiduspider
Disallow:
User-agent: *
Disallow: /
禁止訪問特定目錄
User-agent: *
Disallow: /admin/
Disallow: /css/
Disallow:
要攔截對全部包含問號 (?) 的網址的訪問(具體地說,這種網址以您的域名開頭、後接任意字符串,而後接問號,然後又接任意字符串),請使用如下內容:
User-agent: Googlebot
Disallow: /*?
要指定與某個網址的結尾字符相匹配,請使用 $。例如,要攔截以 .xls 結尾的全部網址,請使用如下內容:
User-agent: Googlebot
Disallow: /*.xls$
您可將此模式匹配與 Allow 指令配合使用。例如,若是 ? 表明一個會話 ID,那麼您可能但願排除包含 ? 的全部網址,以確保 Googlebot 不會抓取重複網頁。可是以 ? 結尾的網址多是您但願包含在內的網頁的版本。在此狀況下,您能夠對您的 robots.txt 文件進行以下設置:
User-agent: *
Allow: /*?$
Disallow: /*?
Disallow: /*? 指令會阻止包含 ? 的全部網址(具體地說,它將攔截全部以您的域名開頭、後接任意字符串,而後接問號,然後又接任意字符串的網址)。
Allow: /*?$ 指令將容許以 ? 結尾的任何網址(具體地說,它將容許全部以您的域名開頭、後接任意字符串,而後接 ?,? 以後不接任何字符的網址)。
以上介紹多數都是Google的http:-www-google-com/support/we … cn&answer=40360,百度的大同小異具體能夠看http:-www-baidu-com/search/robots.html
通常網站查看robots.txt文件的方法是主頁後面加robots.txt就能夠,好比淘寶網的就是http:-www-taobao-com/robots.txt
請注意,僅當您的網站包含不但願被搜索引擎收錄的內容時,才須要使用robots.txt文件。若是您但願搜索引擎收錄網站上全部內容,請勿創建robots.txt文件。