在一个网站里,robots.txt是一个重要的文件,每个网站都应当有一个设置正确的robots.txt。
+ b) k. ~( _' ~
当搜索引擎来抓取你的网站文件之前,它们会先来看看你网站的robots.txt文件的设置,以了解你所允许它抓取的范围,包括哪些文件,哪些目录。
5 J; C* c k/ k N, A0 G
" \2 c i/ v w' j3 v' N7 v那么如何配置您的robots.txt文件呢?
0 L# N! k3 z( U4 ]9 A* [# \
! s. r# a; f1 [robots.txt基本介绍
7 D- h0 u- h( b- U
robots.txt是一个纯文本文件,在这个文件中网站管理者可以声明该网站中不想被robots访问的部分,或者指定搜索引擎只收录指定的内容。
7 n( i. W' M8 o5 y 当一个搜索机器人(有的叫搜索蜘蛛)访问一个站点时,它会首先检查该站点根目录下是否存在robots.txt,如果存在,搜索机器人就会按照该文件中的内容来确定访问的范围;如果该文件不存在,那么搜索机器人就沿着链接抓取。
+ z! W0 K; w' ^, w* U+ E5 {
另外,robots.txt必须放置在一个站点的根目录下,而且文件名必须全部小写。
# |+ b4 V( C, G/ B: z
. Y+ [* \9 Y5 Y I* ]* }2 a" urobots.txt写作语法
8 h, B" @; m) h" e `$ F! p1 P 首先,我们来看一个robots.txt范例
http://forum.xpdd.net/robots.txt
* L7 l& ?( ^! G# d- [" s _0 [ 访问以上具体地址,我们可以看到robots.txt的具体内容如下:
7 ~8 \8 ~1 ~0 @( y3 X/ }
# Robots.txt file from
http://forum.xpdd.net# All robots will spider the domain
/ o9 Y5 b0 j; m$ b1 l) \; T' `User-agent: *
]/ D3 r- M- t: K
Disallow:
! F1 \/ b9 m3 F; L
以上文本表达的意思是允许所有的搜索机器人访问
http://forum.xpdd.net站点下的所有文件。
: h; Q/ Q3 `7 @5 p/ f
具体语法分析:其中#后面文字为说明信息;User-agent:后面为搜索机器人的名称,后面如果是*,则泛指所有的搜索机器人;Disallow:后面为不允许访问的文件目录。
4 r l- g! V' |" r
下面,我将列举一些robots.txt的具体用法:
# j! q6 [) G3 ]" r4 y2 ]$ i
, i0 a# i2 c" j7 b5 n/ r x/ i
允许所有的robot访问
% @! |3 T8 F$ S
User-agent: *
6 F# Z# ~; |6 W- S# N% oDisallow:
4 N% y( x- v7 L0 [9 Z或者也可以建一个空文件 "/robots.txt" file
C& G6 Z7 |# ^: f
0 ~* S e# D! K! o
禁止所有搜索引擎访问网站的任何部分
9 o8 J% Y) V# l7 d8 [3 |User-agent: *
+ M7 _/ q( h9 j, a
Disallow: /
0 s4 y' L: a! E4 T' n; \7 b
, a( K `8 \% C) t# X
禁止所有搜索引擎访问网站的几个部分(下例中的01、02、03目录)
2 g, V- v6 c9 [ Q
User-agent: *
; `. m7 h0 \# e. ?Disallow: /01/
4 R( |) `% f9 Z* x. O- X1 k4 N
Disallow: /02/
/ l) B4 N' @! X5 N+ N+ H. A( gDisallow: /03/
9 Z, @) O5 e W: E' ^) G% _
& B' G; U" |/ e7 v+ {% g
禁止某个搜索引擎的访问(下例中的BadBot)
/ O D& W c+ G8 d; t
User-agent: BadBot
2 N1 g( v( X/ d. h* R* F! TDisallow: /
3 U4 t$ j7 d9 A Y2 `4 f
+ L0 L- S0 H( D6 h ^3 k, n" {
只允许某个搜索引擎的访问(下例中的Crawler)
F+ [; y# m/ y! [( | S, W
User-agent: Crawler
6 _0 }9 y- M: P2 Q/ GDisallow:
, o( P" }: w; l) F$ @
5 M0 V) M% B- u, [" f. xUser-agent: *
5 l, N* g( n1 ~/ e* j; X' nDisallow: /
5 z3 [, r7 `5 T" O5 p, J0 s
. Q2 Z7 W! U9 [ ^
另外,我觉得有必要进行拓展说明,对robots meta进行一些介绍:
5 e$ D/ Z7 U4 I! F/ V Robots META标签则主要是针对一个个具体的页面。和其他的META标签(如使用的语言、页面的描述、关键词等)一样,Robots META标签也是放在页面的<head></head>中,专门用来告诉搜索引擎ROBOTS如何抓取该页的内容。
7 O: t! N9 }$ s. F5 y
; D, \: m, o2 R: J# Y9 | Robots META标签的写法:
5 `3 G& Q, V0 x# A) J6 [& [+ a) P
Robots META标签中没有大小写之分,name="Robots"表示所有的搜索引擎,可以针对某个具体搜索引擎写为name="BaiduSpider"。 content部分有四个指令选项:index、noindex、follow、nofollow,指令间以","分隔。
/ U' c1 z; W& v ?* O3 Y
$ o' ^' O% w k. oINDEX 指令告诉搜索机器人抓取该页面;
$ o: g2 }: d0 w
. j4 n6 p6 J( x4 Z: ~FOLLOW 指令表示搜索机器人可以沿着该页面上的链接继续抓取下去;
2 x2 \/ |& ~3 {3 F- o4 _+ u) M, d+ ~2 `* ?+ Q" o
Robots Meta标签的缺省值是INDEX和FOLLOW,只有inktomi除外,对于它,缺省值是INDEX,NOFOLLOW。
1 X7 c+ @$ ?" a3 c# B
. Q; ^; M4 E, M( h7 R& o. W8 I这样,一共有四种组合:<META NAME="ROBOTS" C>
! ]2 s; _$ w5 C<META NAME="ROBOTS" C>
! r6 S0 S: o) f0 u<META NAME="ROBOTS" C>
" [1 U5 U6 j( G& _% h<META NAME="ROBOTS" C>
, A! o& B9 j6 Y! n$ r其中
2 _) {( R9 }/ F! ^/ W
<META NAME="ROBOTS" C>可以写成<META NAME="ROBOTS" C>;
# x5 Y% h: y) K9 S) e& b" D# X' p0 i
<META NAME="ROBOTS" C>可以写成<META NAME="ROBOTS" C>
5 _! @( u' r! {4 d2 P; G! F) H! p( T6 E5 a; ~1 H$ T$ k9 L
目前看来,绝大多数的搜索引擎机器人都遵守robots.txt的规则,而对于Robots META标签,目前支持的并不多,但是正在逐渐增加,如著名搜索引擎GOOGLE就完全支持,而且GOOGLE还增加了一个指令"archive",可以限制GOOGLE是否保留网页快照。例如:
- ~; f$ b! c5 a, E) a; Y<META NAME="googlebot" C>
+ L# r. z5 B. K, j" B
表示抓取该站点中页面并沿着页面中链接抓取,但是不在GOOLGE上保留该页面的网页快照。
8 @+ y' w) I' Z" ]; U+ @( c* j3 w; v
; s' @+ x0 @ z) }& ^; z, @
特别说明,本文章的写作参考了一些网络信息,本人只是按照自己的思路对信息进行整理。