实战设计robots.txt与标签
文/ 黄天赐 (记者) 2006-02-23
搜寻引擎的网路蜘蛛看似无孔不入,但它其实也是知所进退,有它的运作礼貌。设定适当的robots.txt与,对于网站和搜寻引擎沟通相当大的帮助
网路蜘蛛并非不分青红皂白一网打尽,只要适当规划robots.txt与<META>标签,企业网站就能安心与搜寻引擎和解共生。
搜寻引擎的网路蜘蛛看似无孔不入,但它其实也是知所进退,有它的运作礼貌。当网路蜘蛛到达网站的第一个动作,便是找寻并读取robots.txt档,并依照网站设定的限制再向下搜寻内容。读取网页时,位于网页<HEAD></HEAD>之间的<META>标签如果设有robot属性,它也会依照指示来行动。因此,设定适当的robots.txt与<META>,对于网站和搜寻引擎沟通相当大的帮助。
建立告知禁止存取范围的robots.txt
和网路蜘蛛沟通的辨法,是建立一个名为robots.txt的文字档,内容陈述哪些目录、档案不希望被存取,再将这个档案放置到网页伺服器上。
robots.txt的内容由两个部份组成,分别是user-agent与disallow。前者定义这个网站规则对哪些网路蜘蛛程式发挥作用,后者则是定义哪些目录或档案不想被搜寻。限制所有网路蜘蛛存取,并含及所有内容的robots.txt的写法如下:
robots.txt撰写范例1
# 全部限制存取的robots.txt
user-agent: *
disallow: /
第1行是注解栏,用#字符号标示,可以让管理者加注。第2行则用*号表示对所有搜寻引擎的网路蜘蛛通用,第3行则告知程式「”/”」代表的根目录以下的内容都不允许有存取动作,换言之,搜寻引擎便会忽略整个网站。
不过这种「大隐于市」的做法,通常不是企业所需,毕竟建置网站的目的是在与广大的网路接用者增加接触机会,禁绝所有网站内容和网路蜘蛛撷取,形同关上大门拒绝往来。就企业而言,设定目录与资料类型管控,才能达到最佳效益。
robots.txt撰写范例2
user-agent: *
disallow: /cig-bin
disallow:/members/data
disallow:/*.pdf$
在范例2中,第1行宣告下面的规则适用于所有网路蜘蛛,而第2行则是禁止存取cgi-bin目录中的资讯,第3行告知members目录底下的data目录不希望被撷取,但members目录底下如有其他目录存在则不受影响。第4行宣告所有PDF格式的档案禁止撷取,必须注意的是附档名后面要加上「$」符号。如此就可以避免资料遭不当下载,被搜寻引擎作页面库存而被公开。禁止档案格式的方式也可以限定在特定的目录,以增加使用上的弹性。
另外,user-agent也可以针对个别的搜寻引擎作限定,举例来说,可以用「user-agent:Googlebot」来阻绝Google的网路蜘蛛。
robots.txt撰写范例3
user-agent: Googlebot-image
disallow:/*.jpg$
user-agent: *
disallow: /cig-bin
disallow:/members/data
disallow:/*.pdf$
范例3中,第1行是Google搜寻图片的网路蜘蛛名称,和第2行结合的结果是禁止Google搜寻图片去抓取网站中所有jpg格式的图片,而第3行以下则是套用范例2的限制,让其他搜寻引擎不能存取cgi-bin、member/data和PDF格式的档案。
robots.txt弹性而简单的设定,让网站管理者在内容控管上增加许多自主性,也避免了被搜寻引擎库存网站敏感资讯的风险。不过如果有需要针对个别页面做设定的需求,利用HTML的<META>语法,会比robots.txt要来得适用。
使用<META>标记宣告禁止索引与连结
除了可以使用robots.txt的方式来调整之外,另一种方式是以HTML的<META>标记语法做设定,告知网路蜘蛛不要产生网页的索引及库存。
<META>语法范例一
<HTML>
<HEAD>
<META NAME="robots" CONTENT="noindex,nofollow">
<TITLE>...</TITLE>
</HEAD>
<BODY>...
将上述<META>起始的语法放置在网页<HEAD> 区段中,这个页面就不会搜寻到,NAME的部份使用「robots」即可阻挡所有的网路蜘蛛,也可以指定特定名称,例如Googlebot或Yahoo!Slurp,就可阻挡特定网站蜘蛛。CONTENT可指定noindex、nofollow等两个属性,noindex意指不可对本页进行索引动作,nofollow指的是否可使用本页的超连结再延伸出去撷取搜寻。
另外,Google提供更细项的调整设定,可以移除片段内容和快取网页,片段内容是指出现在Google搜寻结果的网页标题下的文字摘录,通常描述网页的内容。如要移除这段文字,则可以利用下方语法移除:
<META>语法范例二
<META NAME="Googlebot" CONTENT="nosnippet">
必须注意的是,移除片段内容同时也会移除快取的网页。至于移除快取的网页则是让Google不会显示快取的连结:
<META>语法范例三
<META NAME="Googlebot" CONTENT="noarchive">
若也想让其他的搜寻引擎找不到,则将name指定的部份改成robots即可。而这个部份只能移除网页快取的连结,但不会影响索引及片段内容。只要善加利用robots.txt与<META>语法,就可让网站资讯安全更加稳固。文⊙黄天赐