robots.txt是一個純文本文件,在這個文件中網站管理者可以聲明該網站中不想被搜索引擎訪問的部分,或者指定搜索引擎只收錄指定的內容。
當一個搜索引擎(又稱搜索機器人或蜘蛛程序)訪問一個站點時,它會首先檢查該站點根目錄下是否存在robots.txt,如果存在,搜索機器人就會按照該文件中的內容來確定訪問的范圍;如果該文件不存在,那么搜索機器人就沿著鏈接抓取。
1、引導搜索引擎蜘蛛抓取指定欄目或內容;
2、網站改版或者URL重寫優(yōu)化時候屏蔽對搜索引擎不友好的鏈接;
3、屏蔽死鏈接、404錯誤頁面;
4、屏蔽無內容、無價值頁面;
5、屏蔽重復頁面,如評論頁、搜索結果頁;
6、屏蔽任何不想被收錄的頁面;
7、引導蜘蛛抓取網站地圖;
三個語法如下:
1、User-agent:(定義搜索引擎)
示例:
User-agent: *(定義所有搜索引擎)
User-agent: Googlebot (定義谷歌,只允許谷歌蜘蛛爬取)
User-agent: Baiduspider (定義百度,只允許百度蜘蛛爬?。?/p>
不同的搜索引擎的搜索機器人有不同的名稱,谷歌:Googlebot、百度:Baiduspider、MSN:MSNbot、Yahoo:Slurp。
2、Disallow:(用來定義禁止蜘蛛爬取的頁面或目錄)
示例:
Disallow: /(禁止蜘蛛爬取網站的所有目錄 "/" 表示根目錄下)
Disallow: /admin (禁止蜘蛛爬取admin目錄)
Disallow: /abc.html (禁止蜘蛛爬去abc.html頁面)
Disallow: /help.html (禁止蜘蛛爬去help.html頁面)
3、Allow:(用來定義允許蜘蛛爬取的頁面或子目錄)
示例:
Allow: /admin/test/(允許蜘蛛爬取admin下的test目錄)
Allow: /admin/abc.html(允許蜘蛛爬去admin目錄中的abc.html頁面)
兩個通配符如下:
4、匹配符 “$”
$ 通配符:匹配URL結尾的字符
5、通配符 “*”
* 通配符:匹配0個或多個任意字符
1、禁止搜索引擎抓取特定目錄
在這個例子中,該網站有三個目錄對搜索引擎的訪問做了限制,即搜索引擎不會訪問這三個目錄。
User-agent: *
Disallow: /admin/
Disallow: /tmp/
Disallow: /abc/
2、禁止admin目錄,但允許抓取admin目錄下的seo子目錄
User-agent: *
Allow: /admin/seo/
Disallow: /admin/
3、禁止抓取/abc/目錄下的所有以".htm”為后綴的URL(包含子目錄)
User-agent: *
Disallow: /abc/*.htm$
4、禁止抓取網站中所有的動態(tài)頁面
User-agent: *
Disallow: /*?*
屏蔽所有帶“?”的文件,這樣就屏蔽所有的動態(tài)路徑。
5、禁止百度蜘蛛抓取網站所有的圖片:
User-agent: Baiduspider
Disallow: /*.jpg$
Disallow: /*.jpeg$
Disallow: /*.gif$
Disallow: /*.png$
Disallow: /*.bmp$
6、要在阻止網站頁面被抓取的同時仍然在這些頁面上顯示 AdSense 廣告
User-agent: *
Disallow: /folder1/
User-agent: Mediapartners-Google
Allow: /folder1/
請禁止除 Mediapartners-Google 以外的所有漫游器。 這樣可使頁面不出現在搜索結果中,同時又能讓 Mediapartners-Google 漫游器分析頁面,從而確定要展示的廣告。 Mediapartners-Google 漫游器并不與其他 Google User-agent 共享網頁。
1、robots.txt 文件必須放在網站的根目錄,不可以放在子目錄。
以WEB開發(fā)者網站為例:比如通過 http://www.admin10000.com/robots.txt 你就可以訪問 admin10000.com的robots.txt文件了。
2、robots.txt 文件名命名必須小寫,記得在robot面加“s”。
3、User-agent、Allow、Disallow的 “:” 后面有一個字符的空格。
4、路徑后面加斜杠“/” 和不加斜杠的是有區(qū)別的
Disallow: /help
禁止蜘蛛訪問 /help.html、/helpabc.html、/help/index.html
Disallow: /help/
禁止蜘蛛訪問 /help/index.html。 但允許訪問 /help.html、/helpabc.html
5、Disallow與Allow行的順序是有意義的:
舉例說明:
允許蜘蛛訪問 /admin/ 目錄下的seo文件夾
User-agent: *
Allow: /admin/seo/
Disallow: /admin/
如果Allow 和 Disallow 的順序調換一下:
User-agent: *
Disallow: /admin/
Allow: /admin/seo/
蜘蛛就無法訪問到 /admin/ 目錄下的 seo 文件夾,因為第一個 Disallow: /admin/ 已匹配成功。
Robots.txt文件主要是限制整個站點或者目錄的搜索引擎訪問情況,而Robots Meta標簽則主要是針對一個個具體的頁面。和其他的META標簽(如使用的語言、頁面的描述、關鍵詞等)一樣,Robots Meta標簽也是放在頁面中,專門用來告訴搜索引擎ROBOTS如何抓取該頁的內容。
Robots Meta 標簽中沒有大小寫之分,name="Robots" 表示所有的搜索引擎,可以針對某個具體搜索引擎(如google)寫為 name="Googlebot", content部分有四個指令選項:index、noindex、follow、nofollow,指令間以 “,” 分隔。
Index 指令告訴搜索機器人抓取該頁面;
NoIndex命令:告訴搜索引擎不允許抓取這個頁面
Follow 指令表示搜索機器人可以沿著該頁面上的鏈接繼續(xù)抓取下去;
NoFollow命令:告訴搜索引擎不允許從此頁找到鏈接、拒絕其繼續(xù)訪問。
Robots Meta 標簽的缺省值是Index和Follow;
根據以上的命令,我們就有了一下的四種組合:
<meta name="robots" content="index,follow"/>
可以抓取本頁,而且可以順著本頁繼續(xù)索引別的鏈接
<meta name="robots" content="noindex,follow"/>
不許抓取本頁,但是可以順著本頁抓取索引別的鏈接
<neta name="robots" content="index,nofollow"/>
可以抓取本頁,但是不許順著本頁抓取索引別的鏈接
<meta name="robots" content="noindex,nofollow"/>
不許抓取本頁,也不許順著本頁抓取索引別的鏈接。
如果是 <meta name="robots" content="noindex,nofollow"/> 形式的話,可以寫成:
<meta name="robots" content="none"/>
如果是 <meta name="robots" content="index,follow"/> 形式的話,可以寫成:
<meta name="robots" content="all"/>
將"nofollow"放在超鏈接中,告訴搜索引擎不要抓取特定的鏈接。
如某博客上有垃圾評論:
<a href="URL">灌水</a>
以下操作,即進行了 nofollow:
<a href="URL" rel="nofollow" >灌水</a>
聯系客服