有些時候咱們會遇到這樣的困難:咱們本來不想被搜索引擎收錄的網站後臺地址卻被搜索引擎「無情」的收錄,這樣只要在Google裏輸入一個「後臺、管理site:www.soumore.com」,本身的後臺地址就會顯露無疑,所以網站安全性也無從談起。遇到這樣的狀況時,咱們如何阻止搜索引擎收錄咱們不想被收錄的文件呢?css
怎樣屏蔽蜘蛛的抓取,咱們經常使用的辦法有兩個,一個是編輯robots.txt文件,另一個是在不想被收錄的頁面頭部放置META NAME="ROBOTS"標籤。html
所謂的robots.txt文件,是每個搜索引擎到你的網站以後要尋找和訪問的第一個文件,robots.txt是你對搜索引擎制定的一個如何索引你的網站的規則。經過這個文件,搜索引擎就能夠知道在你的網站中,哪些文件是能夠被索引的,哪些文件是被拒絕索引的。安全
在不少網站中,站長們都忽略了使用robots.txt文件。由於不少站長都認爲,本身的網站沒有什麼祕密可言,並且本身也不太會使用robots.txt的語法,所以一旦寫錯了會帶來更多的麻煩,還不如干脆不用。服務器
其實這樣的作法是不對的。在前面的文章中咱們知道,若是一個網站有大量文件找不到的時候(404),搜索引擎就會下降網站的權重。而robots.txt做爲蜘蛛訪問網站的第一個文件,一旦搜索引擎要是找不到這個文件,也會在他的索引服務器上記錄下一條404信息。ide
雖然在百度的幫助文件中,有這樣的一句話「請注意,僅當您的網站包含不但願被搜索引擎收錄的內容時,才須要使用robots.txt文件。若是您但願搜索引擎收錄網站上全部內容,請勿創建robots.txt文件。」可是我我的仍是認爲創建robots.txt仍是必須的,哪怕這個robots.txt文件是一個空白的文本文檔均可以。由於咱們的網站畢竟不是僅僅會被百度收錄,同時也會被其餘搜索引擎收錄的,因此,上傳一個robots.txt文件仍是沒有什麼壞處的。學習
如何寫一個合理的robots.txt文件?網站
首先咱們須要瞭解robots.txt文件的一些基本語法。
容許全部搜索引擎訪問網站的全部部分搜索引擎
或者創建一個空白的文本文檔,命名爲robots.txt
User-agent: *設計
Disallow:htm
或者
User-agent: *
Allow: /
禁止全部搜索引擎訪問網站的全部部分
User-agent: *
Disallow: /
禁止百度索引你的網站
User-agent: Baiduspider
Disallow: /
禁止Google索引你的網站
User-agent: Googlebot
Disallow: /
禁止除Google外的一切搜索引擎索引你的網站
User-agent: Googlebot
Disallow:
User-agent: *
Disallow: /
禁止除百度外的一切搜索引擎索引你的網站
User-agent: Baiduspider
Disallow:
User-agent: *
Disallow: /
禁止蜘蛛訪問某個目錄
(例如禁止admin\css\images被索引)
User-agent: *
Disallow: /css/
Disallow: /admin/
Disallow: /images/
容許訪問某個目錄中的某些特定網址
User-agent: *
Allow: /css/my
Allow: /admin/html
Allow: /images/index
Disallow: /css/
Disallow: /admin/
Disallow: /images/
使用「*」,限制訪問某個後綴的域名
例如索引訪問admin目錄下全部ASP的文件
User-agent: *
Disallow: /admin/*.htm
使用「$」僅容許訪問某目錄下某個後綴的文件
User-agent: *
Allow: .asp$
Disallow: /
禁止索引網站中全部的動態頁面
(這裏限制的是有「?」的域名,例如index.asp?id=1)
User-agent: *
Disallow: /*?*
有些時候,咱們爲了節省服務器資源,須要禁止各種搜索引擎來索引咱們網站上的圖片,這裏的辦法除了使用「Disallow: /images/」這樣的直接屏蔽文件夾的方式以外,還能夠採起直接屏蔽圖片後綴名的方式。具體辦法以下。
禁止Google搜索引擎抓取你網站上的全部圖片
(若是你的網站使用其餘後綴的圖片名稱,在這裏也能夠直接添加)
User-agent: Googlebot
Disallow: .jpg$
Disallow: .jpeg$
Disallow: .gif$
Disallow: .png$
Disallow: .bmp$
禁止百度搜索引擎抓取你網站上的全部圖片
User-agent: Baiduspider
Disallow: .jpg$
Disallow: .jpeg$
Disallow: .gif$
Disallow: .png$
Disallow: .bmp$
除了百度以外和Google以外,禁止其餘搜索引擎抓取你網站的圖片
(注意,在這裏爲了讓各位看的更明白,所以使用一個比較笨的辦法——對於單個搜索引擎單獨定義。)
User-agent: Baiduspider
Allow: .jpeg$
Allow: .gif$
Allow: .png$
Allow: .bmp$
User-agent: Googlebot
Allow: .jpeg$
Allow: .gif$
Allow: .png$
Allow: .bmp$
User-agent: *
Disallow: .jpg$
Disallow: .jpeg$
Disallow: .gif$
Disallow: .png$
Disallow: .bmp$
僅僅容許百度抓取網站上的「JPG」格式文件
(其餘搜索引擎的辦法也和這個同樣,只是修改一下搜索引擎的蜘蛛名稱便可)
User-agent: Baiduspider
Allow: .jpg$
Disallow: .jpeg$
Disallow: .gif$
Disallow: .png$
Disallow: .bmp$
僅僅禁止百度抓取網站上的「JPG」格式文件
User-agent: Baiduspider
Disallow: .jpg$
在瞭解了以上這些基礎的語法以後,對於robots.txt的寫法各位已經有了一個大概的概念了,不過在學習寫做robots.txt文件時,咱們還必需要了解一些大型搜索引擎的蜘蛛名稱,這樣能夠便於咱們寫作robots.txt文件。
蜘蛛名稱
做用
Googlebot
Google對通常網頁的索引蜘蛛
Googlebot-Mobile
Google對於移動設備,如手機網頁的索引蜘蛛
Googlebot-Image
Google專門用來抓取圖片的蜘蛛
Mediapartners-Google
這是Google專門爲放置了Google Adsense廣告聯盟代碼的網站使用的專用蜘蛛,只有網站放置了Google Adsense代碼的狀況下,Google纔會使用這個蜘蛛。這個蜘蛛的做用是專門抓取Adsense廣告內容
Adsbot-Google
這是Google專門爲Google Adwords客戶設計的蜘蛛,若是你使用了Google的Adwords服務,那麼這個蜘蛛就會派出這個蜘蛛來衡量放置了你廣告的網站的質量。
百度蜘蛛Baiduspider
百度的綜合索引蜘蛛
雅虎蜘蛛:Yahoo! Slurp
雅虎的綜合索引蜘蛛
雅虎搜索引擎廣告蜘蛛Yahoo!-AdCrawler
雅虎專門爲Yahoo!搜索引擎廣告開發的專用蜘蛛
網易有道蜘蛛YodaoBot
網易有道搜索引擎綜合索引蜘蛛
騰訊SOSO蜘蛛Sosospider
騰訊SOSO綜合索引蜘蛛
搜狗蜘蛛sogou spider
搜狗綜合索引蜘蛛 MSNBot
Live綜合索引蜘蛛
注意:以上蜘蛛名稱請按照圖表區分大小寫
在上面這些搜索引擎蜘蛛中,咱們最經常使用的就是Googlebot和Baiduspider,所以對這兩個蜘蛛的用法要特別注意。
以上的robots.txt文件能夠幫助咱們對於搜索引擎的訪問作一個限制,這裏須要注意的有幾個方面。
一、 robots.txt文件必須處於網站根目錄下,並且必須命名爲robots.txt
二、 robots.txt文件的文件名所有是小寫字母,沒有大寫字母。
三、 若是對於robots.txt文件的寫法把握不許,那麼能夠直接放一個空的文本文檔,命名爲robots.txt便可。
對限制搜索引擎的原標籤(META)作一個介紹。
第一種狀況:限制網頁快照
不少搜索引擎都提供一個網頁快照的功能。可是網頁快照功能卻有不少的弊端,例如事實內容在網頁快照中更新不及時、索引網頁快照浪費大量的服務器資源等。所以,咱們有些時候可能並不須要搜索引擎來索引咱們某個頁面的網頁快照。
解決這樣問題的辦法很簡單,只須要在你的網頁元標記中(<head>和</head>之間)放置以下的一段代碼。
<meta name="robots" content="noarchive">
以上的一段代碼限制了全部的搜索引擎創建你的網頁快照。若是咱們須要僅僅限制一個搜索引擎創建快照的話,就能夠像以下這樣去寫
<meta name="Baiduspider" content="noarchive">
須要注意的是,這樣的標記僅僅是禁止搜索引擎爲你的網站創建快照,若是你要禁止搜索引擎索引你的這個頁面的話,請參照後面的辦法。
第二種狀況:禁止搜索引擎抓取本頁面。
在SEO中,禁止搜索引擎抓取本頁面或者是容許搜索引擎抓取本頁面是常常會用到的。所以咱們須要對這一部分重點作一次討論。
爲了讓搜索引擎禁止抓取本頁面,咱們通常的作法是在頁面的元標記中加入以下的代碼:
<META NAME="ROBOTS" CONTENT="NOINDEX,FOLLOW">
在這裏,META NAME="ROBOTS"是泛指全部的搜索引擎的,在這裏咱們也能夠特指某個搜索引擎,例如META NAME="Googlebot"、META NAME="Baiduspide"等。content部分有四個命令:index、noindex、follow、nofollow,命令間以英文的「,」分隔。
INDEX命令:告訴搜索引擎抓取這個頁面
FOLLOW命令:告訴搜索引擎能夠從這個頁面上找到連接,而後繼續訪問抓取下去。
NOINDEX命令:告訴搜索引擎不容許抓取這個頁面
NOFOLLOW命令:告訴搜索引擎不容許今後頁找到連接、拒絕其繼續訪問。
根據以上的命令,咱們就有了一下的四種組合
<META NAME="ROBOTS" CONTENT="INDEX,FOLLOW">:能夠抓取本頁,並且能夠順着本頁繼續索引別的連接
<META NAME="ROBOTS" CONTENT="NOINDEX,FOLLOW">:不準抓取本頁,可是能夠順着本頁抓取索引別的連接
<META NAME="ROBOTS" CONTENT="INDEX,NOFOLLOW">:能夠抓取本頁,可是不準順着本頁抓取索引別的連接
<META NAME="ROBOTS" CONTENT="NOINDEX,NOFOLLOW">:不準抓取本頁,也不準順着本頁抓取索引別的連接。
這裏須要注意的是,不可把兩個對立的反義詞寫到一塊兒,例如
<META NAME="ROBOTS" CONTENT="INDEX,NOINDEX">
或者直接同時寫上兩句
<META NAME="ROBOTS" CONTENT="INDEX,FOLLOW">
<META NAME="ROBOTS" CONTENT="NOINDEX,FOLLOW">
這裏有一個簡便的寫法,若是是
<META NAME="ROBOTS" CONTENT="INDEX,FOLLOW">的形式的話,能夠寫成:
<META NAME="ROBOTS" CONTENT="ALL">
若是是
<META NAME="ROBOTS" CONTENT="NOINDEX,NOFOLLOW">的形式的話,能夠寫成:
<META NAME="ROBOTS" CONTENT="NONE">
固然,咱們也能夠把禁止創建快照和對於搜索引擎的命令寫到一個命令元標記中。從上面的文章中咱們得知,禁止創建網頁快照的命令是noarchive,那麼咱們就能夠寫成以下的形式:<META NAME="ROBOTS" CONTENT="INDEX,FOLLOW,noarchive">
若是是對於單獨的某個搜索引擎不容許創建快照,例如百度,咱們就能夠寫成:
<META NAME=" Baiduspider" CONTENT="INDEX,FOLLOW,noarchive">
若是在元標記中不屑關於蜘蛛的命令,那麼默認的命令即爲以下
<META NAME="ROBOTS" CONTENT="INDEX,FOLLOW, archive">
所以,若是咱們對於這一部分把握不許的話,能夠直接寫上上面的這一行命令,或者是直接留空。
原文連接:http://blog.sina.com.cn/s/blog_77714dcf0100vlz2.html