一、robots文件正确书写方法
1:“/folder/”和“/folder”的区别
举个例子:
User-agent:*
Disallow:/folder/
Disallow:/folde
“Disallow:/folder/”表示拦截的是一个目录,该目录文件下的所有文件不允许被抓取,但是允许抓取folder.hlml。
“Disallow:/folder”:对/folder/下的所有文件和folder.html都不能被抓取。
2:只允许某一蜘蛛抓取
如果要拦截除某一蜘蛛之外的所有爬虫:
User-agent:*
disallow:/
Uer-agent:允许的蜘蛛名
Disallow:
3:$匹配网址结束
如果要拦截以某个字符串结束的网址,就可以使用$,例如,要拦截以.asp结束的网址:
User-agent:*
Disallow:/*.asp$
4:“*”匹配任意字符
User-agent:*
表示屏蔽所有的蜘蛛。当我们做了伪静态处理之后,会同时又动态网页和静态网页,网页内容一模一样,视为静态页面,所以我们要屏蔽掉动态的网页,可以用*号来屏蔽动态的网页
User-agent:*
Disallow:/?*?/
二、robots文件使用中常见的误区
误区一:Allow与disallow顺序颠倒
首先我们来看一段robots.txt语句:
User-agent: *
Allow: /
Disallow: /web2012
这段语句初看我们可以得到目的是告诉搜索引擎在web2012目录下面的页面不能抓取,但是其他所有的页面可以。但是这段语句的实际效果如何呢?效果是背道而驰的,为什么呢?我们知道搜索引擎蜘蛛对于robots文件中的规则的执行是从上到下的。这将会造成Disallow语句失效,正确的做法,是要把Disallow: / web2012/置于Allow: /前才能发挥我们想要的效果。
误区二:Disallow命令和Allow命令之后没有以加斜杠”/”。
这个也很容易被忽视,比如有人这样写Disallow: web.html ,这种是没有效果的。斜杠”/”表示的是文件对于根目录的位置,如果不带的话,自然无法判断url是哪个,所以是错误的。
误区三:屏蔽目录的后面没有跟上斜杠“/”
也就是比如想屏蔽抓取/web/这个目录,有些人这样写Disallow: /web。这样书写确实可以屏蔽/ web /下面的所有url,不过同时也屏蔽了类似/ web123.html这种开头为/ web的所有页面,效果等同于Disallow: / web*。
三、如何检查robots文件是否正确,是否达到了自己想要的效果
我们可以充分利于百度站长平台的robots工具(http://zhanzhang.baidu.com/robots),只要注册下,认证下网站就ok了,它可以很好的检验你的robots写的是否正确,该工具可以检测您的网站是否有robots.txt文件,及robots.txt文件内容,并能按照您的需求生成正确的robots.txt文件,为robots文件的制作起到了很大的帮助。
总之,正确创建robots文件至关重要,正确的书写robots文件可以节省网站的资源,还可以帮助蜘蛛更加有效的抓取网,从而提高排名。但是如果我们不重视robots文件书写上的小细节的不仅会失去robotss.txt原有的效果,还会引起不必要的反效果。所以大家在创建robots文件时一定要谨慎。