如何查看robots協議?怎麼寫?
對於seo來說,robots文件很是重要。搜索引擎爬蟲爬取的網站的第一個文件即是這個文件,這個文件告訴搜索引擎網站的那些內容能夠被爬取,那些內容不能被爬取,或者說禁止爬取。怎麼查看
robots協議l?可使用這種辦法,主域名/robots.txt。
怎麼寫robots協議?
當一個搜索蜘蛛訪問一個站點時,它會首先檢查該站點根目錄下是否存在robots.txt,若是存在,搜索機器人就會按照該文件中的內容來肯定訪問的範圍;若是該文件不存在,全部的搜索蜘蛛將可以訪問網站上全部沒有被口令保護的頁面。
1、什麼是Robots協議
Robots協議(也稱爲爬蟲協議、機器人協議等)的全稱是「網絡爬蟲排除標準」(Robots Exclusion Protocol),網站經過Robots協議告訴搜索引擎哪些頁面能夠抓取,哪些頁面不能抓取,對於seo來說,意義重大。
robots是一個協議,而不是一個命令。robots.txt文件是一個文本文件,是放置在網站根目錄下,使用任何一個常見的文本編輯器,就能夠建立和編輯它。robots.txt是搜索引擎中訪問網站的時候要查看的第一個文件,其主要的做用就是告訴蜘蛛程序在服務器上什麼文件是能夠被查看的。
robots協議文件的寫法及語法屬性解釋-seo
若是將網站視爲一個房間,robots.txt就是主人在房間門口懸掛的「請勿打擾」或「歡迎進入」的提示牌。這個文件告訴來訪的搜索引擎哪些房間能夠進入和參觀,哪些房間由於存放貴重物品,或可能涉及住戶及訪客的隱私而不對搜索引擎開放。但robots.txt不是命令,也不是防火牆,如同守門人沒法阻止竊賊等惡意闖入者。
因此,seo建議各位站長僅當您的網站包含不但願被搜索引擎收錄的內容時,才須要使用robots.txt文件,若是您但願搜索引擎收錄網站上全部內容,請勿創建robots.txt文件。
2、Robots協議的原則
Robots協議是國際互聯網界通行的道德規範,基於如下原則創建:
一、搜索技術應服務於人類,同時尊重信息提供者的意願,並維護其隱私權;
二、網站有義務保護其使用者的我的信息和隱私不被侵犯。
robots協議文件的寫法及語法屬性解釋-seo
3、Robots協議的寫法
robots.txt放到一個站點的根目錄下便可,一個robots.txt只能控制相同協議,相同端口,相同站點的網頁抓取策略。
一、robots.txt的常規寫法
最簡單的robots.txt只有兩條規則:
User-agent:指定對哪些爬蟲生效
Disallow:指定要屏蔽的網址
整個文件分爲x節,一節由y個User-agent行和z個Disallow行組成。一節就表示對User-agent行指定的y個爬蟲屏蔽z個網址。這裏x>=0,y>0,z>0。x=0時即表示空文件,空文件等同於沒有robots.txt。
下面詳細介紹這兩條規則:
(1)、User-agent
爬蟲抓取時會聲明本身的身份,這就是User-agent,沒錯,就是http協議裏的User-agent,robots.txt利用User-agent來區分各個引擎的爬蟲。
舉例說明:google網頁搜索爬蟲的User-agent爲Googlebot,下面這行就指定google的爬蟲。
User-agent:Googlebot
若是想指定全部的爬蟲怎麼辦?不可能窮舉啊,能夠用下面這一行:
User-agent: *
可能有的同窗要問了,我怎麼知道爬蟲的User-agent是什麼?這裏提供了一個簡單的列表:爬蟲列表
固然,你還能夠查相關搜索引擎的資料獲得官方的數據,好比說google爬蟲列表,百度爬蟲列表
(2)、Disallow
Disallow行列出的是要攔截的網頁,以正斜線 (/) 開頭,能夠列出特定的網址或模式。
要屏蔽整個網站,使用正斜線便可,以下所示:
Disallow: /
要屏蔽某一目錄以及其中的全部內容,在目錄名後添加正斜線,以下所示:
Disallow: /無用目錄名/
要屏蔽某個具體的網頁,就指出這個網頁,以下所示:
Disallow: /網頁.html
舉例:
User-agent: baiduspider
Disallow: /
User-agent: Googlebot
Disallow: /
seo解釋:意思也就是禁止百度蜘蛛和Google蜘蛛抓取全部文章
二、robots.txt的高級寫法
首先聲明:高級玩法不是全部引擎的爬蟲都支持,通常來講,做爲搜索引擎seo技術領導者的谷歌支持的最好。
(1)、allow
若是須要屏蔽seo1-seo100,可是不屏蔽seo50,那咱們該怎麼辦呢?
方案1:
Disallow:/seo1/
Disallow:/seo2/
...
Disallow:/seo49/
Disallow:/seo51/
...
Disallow:/seo100/
方案2:
Disallow:/seo
Allow:/seo50/
對比以上2個方案,你們應該知道allow的用法了吧,若是你網站目前也有這個需求的話,
seo技術建議你可使用方案2來解決。
但若是想屏蔽seo50下面的文件seo.htm,又該怎麼辦呢?
Disallow:/seo
Allow:/seo50/
Disallow:/seo50/seo.html
聰明的你必定能發現其中的規律,對吧?誰管的越細就聽誰的。
(2)、sitemap
前面說過爬蟲會經過網頁內部的連接發現新的網頁,可是若是沒有鏈接指向的網頁怎麼辦?或者用戶輸入條件生成的動態網頁怎麼辦?可否讓網站管理員通知搜索引擎他們網站上有哪些可供抓取的網頁?這就是sitemap。
最簡單的Sitepmap形式就是XML文件,在其中列出網站中的網址以及關於每一個網址的其餘數據(上次更新的時間、更改的頻率以及相對於網站上其餘網址的重要程度等等),利用這些信息搜索引擎能夠更加智能地抓取網站內容。
新的問題來了,爬蟲怎麼知道這個網站有沒有提供sitemap文件,或者說網站管理員生成了sitemap(多是多個文件),爬蟲怎麼知道放在哪裏呢?
因爲robots.txt的位置是固定的,因而你們就想到了把sitemap的位置信息放在robots.txt裏,這就成爲robots.txt裏的新成員了,好比:
sitemap: http://www.xminseo.com/sitemap.html
考慮到一個網站的網頁衆多,sitemap人工維護不太靠譜,對此,seo建議你可使用google提供了工具能夠自動生成sitemap。
(3)、meta tag
其實嚴格來講這部份內容不屬於robots.txt,不過也算很是相關,我也不知道放哪裏合適,暫且放到這裏吧。
robots.txt的初衷是爲了讓網站管理員管理能夠出如今搜索引擎裏的網站內容。可是,即便使用robots.txt文件讓爬蟲沒法抓取這些內容,搜索引擎也能夠經過其餘方式找到這些網頁並將它添加到索引中。
例如,其餘網站仍可能連接到該網站,所以,網頁網址及其餘公開的信息(如指向相關網站的連接中的定位文字或開放式目錄管理系統中的標題)有可能會出如今引擎的搜索結果中,若是想完全對搜索引擎隱身那咋整呢?seo給你的答案是:元標記,即meta tag。
好比要徹底阻止一個網頁的內容列在搜索引擎索引中(即便有其餘網站連接到此網頁),可以使用noindex元標記。只要搜索引擎查看該網頁,便會看到noindex元標記並阻止該網頁顯示在索引中,這裏注意noindex元標記提供的是一種逐頁控制對網站的訪問的方式。
好比:要防止全部搜索引擎將網站中的網頁編入索引,那你就能夠在網頁的頭部代碼部分添加:
<meta name="robots" content="noindex">
這裏的name取值能夠設置爲某個搜索引擎的User-agent從而指定屏蔽某一個搜索引擎。
除了noindex外,還有其餘元標記,好比說nofollow,禁止爬蟲今後頁面中跟蹤連接。這裏seo再提一句:noindex和nofollow在HTML 4.01規範裏有描述,可是其餘tag的在不一樣引擎支持到什麼程度各不相同,還請讀者自行查閱各個引擎的說明文檔。
(4)、Crawl-delay
除了控制哪些能夠抓哪些不能抓以外,robots.txt還能夠用來控制爬蟲抓取的速率。如何作到的呢?經過設置爬蟲在兩次抓取之間等待的秒數。
Crawl-delay:5
表示本次抓取後下一次抓取前須要等待5秒。
seo提醒你們一點:google已經不支持這種方式了,不過在webmaster tools裏提供了一個功能能夠更直觀的控制抓取速率。
這裏插一句題外話,幾年前seo記得曾經有一段時間robots.txt還支持複雜的參數:Visit-time,只有在visit-time指定的時間段裏,爬蟲才能夠訪問;Request-rate: 用來限制URL的讀取頻率,用於控制不一樣的時間段採用不一樣的抓取速率。
後來估計支持的人太少,就漸漸的廢掉了,有興趣的博友能夠自行研究一下,seo瞭解到的是目前google和baidu都已經不支持這個規則了,其餘小的引擎公司貌似歷來都沒有支持過。
4、Robots協議中的語法屬性解釋
Robots協議用來告知搜索引擎哪些頁面能被抓取,哪些頁面不能被抓取;能夠屏蔽一些網站中比較大的文件,如圖片,音樂,視頻等,節省服務器帶寬;也能夠屏蔽站點的一些死連接,方便搜索引擎抓取網站內容;再或者是設置網站地圖鏈接,方便引導蜘蛛爬取頁面。
User-agent: * 這裏的*表明的全部的搜索引擎種類,*是一個通配符。
Disallow: /admin/ 這裏定義是禁止爬尋admin目錄下面的目錄。
Disallow: /mahaixiang/*.htm 禁止訪問/mahaixiang/目錄下的全部以".htm"爲後綴的URL(包含子目錄)。
Disallow: /*?* 禁止訪問網站中全部包含問號 (?) 的網址。
Disallow: /.jpg$ 禁止抓取網頁全部的.jpg格式的圖片。
Disallow:/mahaixiang/abc.html 禁止爬取ab文件夾下面的adc.html文件。
Allow: /mahaixiang/ 這裏定義是容許爬尋mahaixiang目錄下面的目錄。
Allow: /mahaixiang 這裏定義是容許爬尋mahaixiang的整個目錄。
Allow: .htm$ 僅容許訪問以".htm"爲後綴的URL。
Allow: .gif$ 容許抓取網頁和gif格式圖片。
Sitemap: /sitemap.html 告訴爬蟲這個頁面是網站地圖。
舉例:
User-agent: *
Disallow: /?*
Disallow: /seo/*.htm
User-agent: EtaoSpider
Disallow: /
seo解釋:意思就是有禁止全部搜索引擎來抓網站中全部包含問號 (?) 的網址和seo目錄下的.htm文章。同時,對etao徹底屏蔽。
5、Robots協議中的其它語法屬性
一、Robot-version: 用來指定robot協議的版本號
例子: Robot-version: Version 2.0
二、Crawl-delay:雅虎YST一個特定的擴展名,能夠經過它對咱們的抓取程序設定一個較低的抓取請求頻率。
您能夠加入Crawl-delay:xx指示,其中,「XX」是指在crawler程序兩次進入站點時,以秒爲單位的最低延時。
三、Crawl-delay:定義抓取延遲
例子: Crawl-delay:/mahaixiang/
四、Visit-time: 只有在visit-time指定的時間段裏,robot才能夠訪問指定的URL,不然不可訪問。
例子: Visit-time: 0100-1300 #容許在凌晨1:00到13:00訪問
五、Request-rate: 用來限制URL的讀取頻率
例子: Request-rate: 40/1m 0100 - 0759 在1:00到07:59之間,以每分鐘40次的頻率進行訪問。
Request-rate: 12/1m 0800 - 1300 在8:00到13:00之間,以每分鐘12次的頻率進行訪問。
seo點評:
Robots協議是網站出於安全和隱私考慮,防止搜索引擎抓取敏感信息而設置的,搜索引擎的原理是經過一種爬蟲spider程序,自動蒐集互聯網上的網頁並獲取相關信息。
而鑑於網絡安全與隱私的考慮,每一個網站都會設置本身的Robots協議,來明示搜索引擎,哪些內容是願意和容許被搜索引擎收錄的,哪些則不容許,搜索引擎則會按照Robots協議給予的權限進行
seo抓取。
Robots協議表明了一種契約精神,互聯網企業只有遵照這一規則,才能保證網站及用戶的隱私數據不被侵犯,違背Robots協議將帶來巨大安全隱憂。