有些时候我们会遇到这样的困难:我们原本不想被搜索引擎收录的网站后台地址却被搜索引擎“无情”的收录,这样只要在Google里输入一个“后台、管理site:www.soumore.com”,自己的后台地址就会显露无疑,因此网站安全性也无从谈起。遇到这样的情况时,我们如何阻止搜索引擎收录我们不想被收录的文件呢?
怎样屏蔽蜘蛛的抓取,我们常用的办法有两个,一个是编辑robots.txt文件,另外一个是在不想被收录的页面头部放置META NAME="ROBOTS"标签。
所谓的robots.txt文件,是每一个搜索引擎到你的网站之后要寻找和访问的第一个文件,robots.txt是你对搜索引擎制定的一个如何索引你的网站的规则。通过这个文件,搜索引擎就可以知道在你的网站中,哪些文件是可以被索引的,哪些文件是被拒绝索引的。
在很多网站中,站长们都忽略了使用robots.txt文件。因为很多站长都认为,自己的网站没有什么秘密可言,而且自己也不太会使用robots.txt的语法,因此一旦写错了会带来更多的麻烦,还不如干脆不用。
其实这样的做法是不对的。在前面的文章中我们知道,如果一个网站有大量文件找不到的时候(404),搜索引擎就会降低网站的权重。而robots.txt作为蜘蛛访问网站的第一个文件,一旦搜索引擎要是找不到这个文件,也会在他的索引服务器上记录下一条404信息。
虽然在百度的帮助文件中,有这样的一句话“请注意,仅当您的网站包含不希望被搜索引擎收录的内容时,才需要使用robots.txt文件。如果您希望搜索引擎收录网站上所有内容,请勿建立robots.txt文件。”但是我个人还是认为建立robots.txt还是必须的,哪怕这个robots.txt文件是一个空白的文本文档都可以。因为我们的网站毕竟不是仅仅会被百度收录,同时也会被其他搜索引擎收录的,所以,上传一个robots.txt文件还是没有什么坏处的。
如何写一个合理的robots.txt文件?
首先我们需要了解robots.txt文件的一些基本语法。
允许所有搜索引擎访问网站的所有部分
或者建立一个空白的文本文档,命名为robots.txt
User-agent: *
Disallow:
或者
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: /
禁止蜘蛛访问某个目录
(例如禁止admincssimages被索引)
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文件可以帮助我们对于搜索引擎的访问做一个限制,这里需要注意的有几个方面。
1、 robots.txt文件必须处于网站根目录下,而且必须命名为robots.txt
2、 robots.txt文件的文件名全部是小写字母,没有大写字母。
3、 如果对于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