最近開發新站,由于想全站動態,省掉生成的麻煩,所以又要用到偽靜態了。呵呵,但是偽靜態會指向很多不想要的頁面,只有用robots來禁止他爬行垃圾鏈接了。
首先我們要了解robots是什么?robots.txt是一個協議,而不是一個命令。robots.txt是搜索引擎中訪問網站的時候要查看的第一個文件。robots.txt文件告訴蜘蛛程序在服務器上什么文件是可以被查看的。如果處理不當,而我們不想被搜索引擎收錄的網站后臺地址卻被搜索引擎無情的收錄。
當我們在谷歌或百度的搜索頁上輸入:site:www.xxx.com 自己的后臺地址就會顯露無疑,因此網站安全性也無從談起。遇到這樣的情況時,我們如何阻止搜索引擎收錄我們不想被收錄的文件呢?
兩個辦法:
一、編輯robots.txt文件。
robots.txt文件,是每一個搜索引擎到你的網站之后要尋找和訪問的第一個文件,robots.txt是你對搜索引擎制定的一個如何索引你的網站的規則。通過這個文件,搜索引擎就可以知道在你的網站中,哪些文件是可以被索引的,哪些文件是被拒絕索引的。
在很多網站中,站長們都忽略了使用robots.txt文件。因為很多站長都認為,自己的網站沒有什么秘密可言,而且自己也不太會使用robots.txt的語法,因此一旦寫錯了會帶來更多的麻煩,還不如干脆不用。其實這樣的做法是不對的。在前面的文章中我們知道,如果一個網站有大量文件找不到的時候(404),搜索引擎就會降低網站的權重。而robots.txt作為蜘蛛訪問網站的第一個文件,一旦搜索引擎要是找不到這個文件,也會在他的索引服務器上記錄下一條404信息。
語法作用及寫法:
建立一個空白的文本文檔,命名為robots.txt
User-agent:*
Disallow:
或者
User-agent:*
Allow:/
禁止所有搜索引擎訪問網站的所有部分
User-agent:*
Disallow:/
禁止除Google外的一切搜索引擎索引你的網站
User-agent:Googlebot
Disallow:
User-agent:*
Disallow:/
禁止百度索引你的網站
User-agent:Baiduspider
Disallow:/
禁止Google索引你的網站
User-agent:Googlebot
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/*.asp
使用“$”僅允許訪問某目錄下某個后綴的文件
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文件。
蜘蛛名稱
Googlebot
Google對一般網頁的索引蜘蛛
Googlebot-Mobile
Google對于移動設備,如手機網頁的索引蜘蛛
Googlebot-Image
Google專門用來抓取圖片的蜘蛛
Mediapartners-Google
這是Google專門為放置了GoogleAdsense廣告聯盟代碼的網站使用的專用蜘蛛,只有網站放置了GoogleAdsense代碼的情況下,Google才會使用這個蜘蛛。這個蜘蛛的作用是專門抓取Adsense廣告內容
Adsbot-Google
這是Google專門為GoogleAdwords客戶設計的蜘蛛,如果你使用了Google的Adwords服務,那么這個蜘蛛就會派出這個蜘蛛來衡量放置了你廣告的網站的質量。
百度蜘蛛Baiduspider
百度的綜合索引蜘蛛
雅虎蜘蛛:Yahoo!Slurp
雅虎的綜合索引蜘蛛
雅虎搜索引擎廣告蜘蛛Yahoo!-AdCrawler
雅虎專門為Yahoo!搜索引擎廣告開發的專用蜘蛛
網易有道蜘蛛YodaoBot
網易有道搜索引擎綜合索引蜘蛛
騰訊SOSO蜘蛛Sosospider
騰訊SOSO綜合索引蜘蛛
搜狗蜘蛛sogouspider
搜狗綜合索引蜘蛛
MSNBot
Live綜合索引蜘蛛
注意:以上蜘蛛名稱請按照圖表區分大小寫
在上面這些搜索引擎蜘蛛中,我們最常用的就是Googlebot和Baiduspider,因此對這兩個蜘蛛的用法要特別注意。
以上的robots.txt文件可以幫助我們對于搜索引擎的訪問做一個限制,這里需要注意的有幾個方面。
1、robots.txt文件必須處于網站根目錄下,而且必須命名為robots.txt
2、robots.txt文件的文件名全部是小寫字母,沒有大寫字母。
3、如果對于robots.txt文件的寫法把握不準,那么可以直接放一個空的文本文檔,命名為robots.txt即可。
二、在不想被收錄的頁面頭部放置METANAME="ROBOTS"標簽。
第一種情況:限制網頁快照
很多搜索引擎都提供一個網頁快照的功能。但是網頁快照功能卻有很多的弊端,例如事實內容在網頁快照中更新不及時、索引網頁快照浪費大量的服務器資源等。因此,我們有些時候可能并不需要搜索引擎來索引我們某個頁面的網頁快照。
解決這樣問題的辦法很簡單,只需要在你的網頁元標記中(<head>和</head>之間)放置如下的一段代碼。
<metaname="robots"content="noarchive">
以上的一段代碼限制了所有的搜索引擎建立你的網頁快照。如果我們需要僅僅限制一個搜索引擎建立快照的話,就可以像如下這樣去寫
<metaname="Baiduspider"content="noarchive">
需要注意的是,這樣的標記僅僅是禁止搜索引擎為你的網站建立快照,如果你要禁止搜索引擎索引你的這個頁面的話,請參照后面的辦法。
第二種情況:禁止搜索引擎抓取本頁面。
在SEO中,禁止搜索引擎抓取本頁面或者是允許搜索引擎抓取本頁面是經常會用到的。因此我們需要對這一部分重點做一次討論。
為了讓搜索引擎禁止抓取本頁面,我們一般的做法是在頁面的元標記中加入如下的代碼:
<METANAME="ROBOTS"CONTENT="NOINDEX,FOLLOW">
在這里,METANAME="ROBOTS"是泛指所有的搜索引擎的,在這里我們也可以特指某個搜索引擎,例如METANAME="Googlebot"、METANAME="Baiduspide"、METANAME="www.nfrencai.com"等。content部分有四個命令:index、noindex、follow、nofollow,命令間以英文的“,”分隔。
INDEX命令:告訴搜索引擎抓取這個頁面
FOLLOW命令:告訴搜索引擎可以從這個頁面上找到鏈接,然后繼續訪問抓取下去。
NOINDEX命令:告訴搜索引擎不允許抓取這個頁面
NOFOLLOW命令:告訴搜索引擎不允許從此頁找到鏈接、拒絕其繼續訪問。
根據以上的命令,我們就有了一下的四種組合
<METANAME="ROBOTS"CONTENT="INDEX,FOLLOW">:可以抓取本頁,而且可以順著本頁繼續索引別的鏈接
<METANAME="ROBOTS"CONTENT="NOINDEX,FOLLOW">:不許抓取本頁,但是可以順著本頁抓取索引別的鏈接
<METANAME="ROBOTS"CONTENT="INDEX,NOFOLLOW">:可以抓取本頁,但是不許順著本頁抓取索引別的鏈接
<METANAME="ROBOTS"CONTENT="NOINDEX,NOFOLLOW">:不許抓取本頁,也不許順著本頁抓取索引別的鏈接。
這里需要注意的是,不可把兩個對立的反義詞寫到一起,例如www.houjinzhe.com
<METANAME="ROBOTS"CONTENT="INDEX,NOINDEX">
或者直接同時寫上兩句
<METANAME="ROBOTS"CONTENT="INDEX,FOLLOW">
<METANAME="ROBOTS"CONTENT="NOINDEX,FOLLOW">
這里有一個簡便的寫法,如果是
<METANAME="ROBOTS"CONTENT="INDEX,FOLLOW">的形式的話,可以寫成:
<METANAME="ROBOTS"CONTENT="ALL">
如果是:
<METANAME="ROBOTS"CONTENT="NOINDEX,NOFOLLOW">的形式的話,可以寫成:
<METANAME="ROBOTS"CONTENT="NONE">
當然,我們也可以把禁止建立快照和對于搜索引擎的命令寫到一個命令元標記中。從上面的文章中我們得知,禁止建立網頁快照的命令是noarchive,那么我們就可以寫成如下的形式:<METANAME="ROBOTS"CONTENT="INDEX,FOLLOW,noarchive">
如果是對于單獨的某個搜索引擎不允許建立快照,例如百度,我們就可以寫成:
<METANAME="Baiduspider"CONTENT="INDEX,FOLLOW,noarchive">
如果在元標記中不屑關于蜘蛛的命令,那么默認的命令即為如下
<METANAME="ROBOTS"CONTENT="INDEX,FOLLOW,archive">
因此,如果我們對于這一部分把握不準的話,可以直接寫上上面的這一行命令,或者是直接留空。
在SEO中,對于蜘蛛的控制是非常重要的一部分內容,所以希望各位看官準確把握這部分的內容。
新聞熱點
疑難解答