關于這個robots.txt正確的寫法,海淘科技參考了很多的資料,發(fā)現(xiàn)有的作者解釋或者寫法太過簡單,造成新手不易理解,下面就和海淘科技一起去了解詳細的robots.txt學習方法吧。
robots.txt是以什么形式存在?robots.txt就是一份網站和搜索引擎雙方簽訂的規(guī)則協(xié)議書。每一個搜索引擎的蜘蛛訪問一個站點時,它首先爬行來檢查該站點根目錄下是否存在robots.txt。如果存在,蜘蛛就會按照該協(xié)議書上的規(guī)則來確定自己的訪問范圍;如果沒有robots.txt,那么蜘蛛就會沿著鏈接抓取。
請牢牢記?。簉obots.txt必須放置在站點的根目錄下,而且文件名必須全部小寫。Disallow后面的冒號必須為英文狀態(tài)的。
我們先來理解User-agent和Disallow的定義。
● User-agent:該項用于描述搜索引擎蜘蛛的名字。(1)規(guī)定所有蜘蛛:User-agent:*;(2)規(guī)定某一個蜘蛛:User-agent:BaiduSpider。
● Disallow:該項用于描述不希望被抓取和索引的一個URL,這個URL可以是一條完整的路徑。這有幾種不同定義和寫法:(1)Disallow:/AAA.net,任何以域名+Disallow描述的內容開頭的URL均不會被蜘蛛訪問,也就是說以AAA.net目錄內的文件均不會被蜘蛛訪問;(2)Disallow:/AAA.net/則允許robots抓取和索引AAA.net/index.html,而不能抓取和索引AAA.net/admin.html;(3)如果Disallow記錄為空,說明該網站的所有部分都允許被訪問。在robots.txt文件中,至少應有Disallow記錄,如果robots.txt為空文件,則對所有的搜索引擎robot來說,該網站都是開放的。
有時候我們覺得網站訪問量(IP)不多,但是網站流量為什么耗的快?有很多的原因是垃圾(沒有)蜘蛛爬行和抓取消耗的。而網站要屏蔽哪個搜索引擎或只讓哪個搜索引擎收錄的話,首先要知道每個搜索引擎robot的名稱。
首先,你先建一個空白文本文檔(記事本),然后命名為:robots.txt。
(1)禁止所有搜索引擎訪問網站的任何部分。
User-agent: *
Disallow: /
(2)允許所有的robots訪問,無任何限制。
User-agent: *
Disallow:
或者
User-agent: *
Allow: /
還可以建立一個空文件robots.txt或者不建立robots.txt。
(3)僅禁止某個搜索引擎的訪問(例如:百度baiduspider)
User-agent: BaiduSpider
Disallow:/
(4)允許某個搜索引擎的訪問(還是百度)
User-agent: BaiduSpider
Disallow:
User-agent: *
Disallow: /
這里需要注意,如果你還需要允許谷歌bot,那么也是在“User-agent: *”前面加上,而不是在“User-agent: *”后面。
(5)禁止Spider訪問特定目錄和特定文件(圖片、壓縮文件)。
User-agent: *
Disallow: /AAA.net/
Disallow: /admin/
Disallow: .jpg$
Disallow: .rar$
這樣寫之后,所有搜索引擎都不會訪問這2個目錄。需要注意的是對每一個目錄必須分開說明,而不要寫出“Disallow:/AAA.net/ /admin/”。
(1)Allow
Allow與Disallow是正好相反的功能,Allow行的作用原理完全與Disallow行一樣,所以寫法是一樣的,只需要列出你要允許的目錄或頁面即可。
Disallow和Allow可以同時使用,例如,需要攔截子目錄中的某一個頁面之外的其他所有頁面,可以這么寫:
User-agent: *
Disallow: /AAA.net/
Allow: /AAA.net/index.html
這樣說明了所有蜘蛛只可以抓取/AAA.net/index.html的頁面,而/AAA.net/文件夾的其他頁面則不能抓取,還需要注意以下錯誤的寫法:
User-agent: *
Disallow: /AAA.net
Allow: /AAA.net/index.html
原因請看上面Disallow值的定義說明。
(2)使用“*”號匹配字符序列。
例1.攔截搜索引擎對所有以admin開頭的子目錄的訪問,寫法:
User-agent: *
Disallow: /admin*/
例2.要攔截對所有包含“?”號的網址的訪問,寫法:
User-agent: *
Disallow: /*?*
(3)使用“$”匹配網址的結束字符
例1.要攔截以.asp結尾的網址,寫法:
User-agent: *
Disallow:/*.asp$
例2.如果“:”表示一個會話ID,可排除所包含該ID的網址,確保蜘蛛不會抓取重復的網頁。但是,以“?”結尾的網址可能是你要包含的網頁版本,寫法:
User-agent: *
Allow: /*?$
Disallow: /*?
也就是只抓取.asp?的頁面,而.asp?=1,.asp?=2等等都不抓取。
對于提交網站地圖,我們可以到谷歌站長工具提交,也可以用robots.txt文件中提示蜘蛛抓?。?
sitemap:AAA.net/sitemaps.xml
好處:
(1)有了robots.txt,spider抓取URL頁面發(fā)生錯誤時則不會被重定向至404處錯誤頁面,同時有利于搜索引擎對網站頁面的收錄。
(2)robots.txt可以制止我們不需要的搜索引擎占用服務器的寶貴寬帶。
(3)robots.txt可以制止搜索引擎對非公開的爬行與索引,如網站的后臺程序、管理程序,還可以制止蜘蛛對一些臨時產生的網站頁面的爬行和索引。
(4)如果網站內容由動態(tài)轉換靜態(tài),而原有某些動態(tài)參數仍可以訪問,可以用robots中的特殊參數的寫法限制,可以避免搜索引擎對重復的內容懲罰,保證網站排名不受影響。
壞處:
(1)robots.txt輕松給黑客指明了后臺的路徑。
解決方法:給后臺文件夾的內容加密,對默認的目錄主文件inde.html改名為其他。
(2)如果robots.txt設置不對,將導致搜索引擎不抓取網站內容或者將數據庫中索引的數據全部刪除。
User-agent: *
Disallow: /
這一條就是將禁止所有的搜索引擎索引數據。
海淘科技友情提醒,在你不能保證robots.txt正確寫法,那么就應該保證robots.txt出廠狀態(tài),不要輕易的去動它,避免造成不必要的損失!