做過網站優化的朋友都知道,搜尋引擎蜘蛛爬行抓取網站時首先會去通路根目錄下的robots.txt檔案,如果robots檔案存在,則會根據robots檔案内設定的規則進行爬行抓取,如果檔案不存在則會順着首頁進行抓取,那麼robots檔案的工作原理是什麼呢?如何對robots.txt檔案進行設定。
robots.txt是一個純文字的檔案,檔案的名字必須全部小寫,并且放置在網站的根目錄下面,通過檔案中的規則聲明網站哪些内容不想被搜尋引擎蜘蛛抓取收錄,或者指定某個搜尋引擎不能收錄robots.txt也叫做爬蟲協定,遵循爬蟲協定的搜尋引擎蜘蛛,都會根據協定的内容對網站進行爬蟲抓取的。
一、什麼是robots.txt?
這是一個文本檔案,是搜尋引擎爬行網頁要檢視的第一個檔案,你可以告訴搜尋引擎哪些檔案可以被檢視,哪些禁止。
當搜尋機器人通路一個站點時,它首先會檢查根目錄是否存在robots.txt,如果有就确定抓取範圍,沒有就按連結順序抓取。
二、robots.txt有什麼用?
為何需要用robots.txt這個檔案來告訴搜尋機器人不要爬行我們的部分網頁,比如:背景管理檔案、程式腳本、附件、資料庫檔案、編碼檔案、樣式表檔案、模闆檔案、導航圖檔和背景圖檔等等。說到底了,這些頁面或檔案被搜尋引擎收錄了,使用者也看不了,多數需要密碼才能進入或是資料檔案。既然這樣,又讓搜尋機器人爬行的話,就浪費了伺服器資源,增加了伺服器的壓力,是以我們可以用robots.txt告訴機器人集中注意力去收錄我們的文章頁面,增強使用者體驗。
三、robots設定:
1、用robots屏蔽網站重複頁
很多網站一個内容提供多種浏覽版本,雖然很友善使用者,卻對蜘蛛造成了困難,因為它分不清那個是主,那個是次,一旦讓它認為你在惡意重複,你就慘了
User-agent: *
Disallow: /sitemap/ 《禁止蜘蛛抓取 文本網頁》
2、用robots保護網站安全
很多人納悶了,robots怎麼還和網站安全有關系了?其實關系還很大,不少低級黑客就是通過搜尋預設背景登陸,以達到入侵網站的目标
User-agent: *
Disallow: /admin/ 《禁止蜘蛛抓取admin目錄下所有檔案》
3、防止盜鍊
一般盜鍊也就幾個人,可是一旦被搜尋引擎“盜鍊”那家夥你100M寬帶也吃不消,如果你做的不是圖檔網站,又不想被搜尋引擎“盜鍊”你的網站圖檔
User-agent: *
Disallow: .jpg$
4、送出網站地圖
現在做優化的都知道做網站地圖了,可是卻沒幾個會送出的,絕大多數人是幹脆在網頁上加個連結,其實robots是支援這個功能的
Sitemap: http:-www-***-com/sitemaps/sitemaps.xml
5、禁止某二級域名的抓取
一些網站會對VIP會員提供一些特殊服務,卻又不想這個服務被搜尋引擎檢索到
User-agent: *
Disallow: /
以上五招robots足以讓你對搜尋引擎蜘蛛掌控能力提升不少,就像百度說的:我們和搜尋引擎應該是朋友,增加一些溝通,才能消除一些隔膜。
四、robots.txt基本文法
1、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/
2、列舉一些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檔案。
轉載于:https://www.cnblogs.com/goloving/p/11386198.html