robots.txt有什么作用
robots.txt 文件由一条或多条规则组成。每条规则可禁止(或允许)特定抓取工具抓取相应网站中的指定文件路径。通俗一点的说法就是:告诉爬虫,我这个网站,你哪些能看,哪些不能看的一个协议。
我们都知道txt后缀的文件是纯文本文档,robots是机器人的意思,所以顾名思义,robots.txt文件也就是给搜索引擎蜘蛛这个机器人看 的纯文本文件。robots.txt是搜索引擎公认遵循的一个规范文 档,它告诉Google、百度等搜索引擎哪些网页允许抓取、索引并在搜索结果中显示,哪些网页是被禁止收录的。 搜索引擎蜘蛛 spider(Googlebot/Baiduspider)来访问你的网站页面的时候,首先会查看你的网站根目录下是否有robots.txt文件,如 果有则按照里面设置的规则权限对你网站页面进行抓取和索引。如淘宝网就通过设置robots.txt屏蔽百度搜索引擎:
User-agent: Baiduspider Disallow: / User-agent: baiduspider Disallow: / |
robots.txt的作用
我们了解了什么是robots.txt,那它有什么作用,总体来说,robots.txt文件至少有下面两方面的作用:
1、通过设置屏蔽搜索引擎访问不必要被收录的网站页面,可以大大减少因spider抓取页面所占用的网站带宽,小网站不明显,大型网站就很明显了。
2、设置robots.txt可以指定google或百度不去索引哪些网址,比如我们通过url重写将动态网址静态化为永久固定链接之后,就可以通 过robots.txt设置权限,阻止Google或百度等搜索引擎索引那些动态网址,从而大大减少了网站重复页面,对SEO优化起到了很明显的作用。
Robots.txt文件的存放位置
网站根目录下,通过“域名/robots.txt”能正常访问即可,如http://域名/robots.txt
robots.txt生成和写法
1.User-agent,用于告诉识别蜘蛛类型。比如,User-agent: Baiduspider 就是指百度蜘蛛。
各类蜘蛛列举如下:
百度蜘蛛:Baiduspider
谷歌机器人:GoogleBot
360蜘蛛:360Spider
搜狗蜘蛛:Sogou News Spider
雅虎蜘蛛:“Yahoo! Slurp China” 或者 Yahoo!
有道蜘蛛:Youdaobot 或者 Yodaobot
Soso蜘蛛:Sosospider
2.Allow,允许蜘蛛抓取指定目录或文件,默认是允许抓取所有。
3.Disallow,不允许蜘蛛抓取指定目录或文件。
4.通配符,“*”,匹配0或多个任意字符。
5.终止符,“$”,可以匹配以指定字符结尾的字符。
举个例子:下面是一个wordpress程序的robots.txt
User-agent: *
Disallow: /wp-admin/
Disallow: /wp-includes/
Disallow: /wp-content/plugins
Disallow: /wp-content/themes
Disallow: /feed
Disallow: /*/feed
Disallow: /comments/feed
Disallow: /*.js$
Disallow: /*?*
Sitemap: http://www.leheseo.com/sitemap.xml
解释:
User-agent: *:对所有搜索引擎都使用下面的规则。
Disallow: /wp-admin/:不让蜘蛛抓取根目录下的wp-admin文件夹。
Disallow: /*.js$:不让蜘蛛抓取根目录下所有的js文件。
Disallow: /*?*:不抓取所有的动态链接。
Sitemap: http://www.leheseo.com/sitemap.xml:给蜘蛛提供网站地图,方便蜘蛛抓取网站内容。
robots.txt注意事项
1.如果你希望搜索引擎收录网站上所有的内容,那么就不要建立robots.txt文件。
2.如果同时存在动态和静态链接,那么建议屏蔽动态链接。
3.robots.txt只能是屏蔽站内文件的,对站外文件没有屏蔽功能。
4.User-agent,Allow,Disallow,Sitemap的首字母都是大写的。
5.User-agent,Allow,Disallow,Sitemap的冒号后面都是有空格的,没有写空格直接写接下来的内容会出错。
6.网站通常会屏蔽搜索结果页面。因为搜索结果页和正常展示的内容页相比,标题和内容上相同的,而这两个页面链接是不同的。那搜索引擎该将这篇文章归属于哪个内链呢?这样就会造成内链之间相互竞争,造成内部资源损耗。
比如上面举的例子,那个wordpress程序,在没有设置伪静态,还是动态链接的时候,搜索结果页面链接都包含有/?s=,而 标题和内容 与 正常展示的动态链接内容页重复,可以通过Disallow: /?=*来屏蔽搜索结果页面。
而现在那个wordpress程序已经设置了伪静态,也设置了Disallow: /*?*,Disallow: /*?*本身就包含了Disallow: /?=*,所以Disallow: /?=*这句写不写都没有关系
7.建议屏蔽js文件。Disallow: /*.js$,以 .js 结尾的路径统统被屏蔽,这样就屏蔽了js文件。
8.路径是区分大小写的。Disallow: /ab/ 和 Disallow: /Ab/ 是不一样的。
9.robots.txt会暴露网站相关目录,写robots.txt时要考虑到这一点。
10.有些seo会将文件直接备份在服务器中,文件是 .zip 格式,然后在robots.txt中屏蔽。个人不建议这样,这就是明显告诉人家你的备份文件位置。建议文件和数据都备份到本地。
11.一些特殊规则对比:
①Disallow: /和Disallow: / ab (/后面有个空格,再有ab)是一样的,/后面多了个空格,蜘蛛之认空格前面那一段,就是Disallow: /,所以两个都是屏蔽整站的。
②Disallow: /ab和Disallow: /ab*是一样的。比如两个都能屏蔽http://域名/ab,http://域名/abc,http://域名/abcd。
③Disallow: /ab/和Disallow: /ab是不一样的。很明显,Disallow: /ab范围更广,包含了Disallow: /ab/。因为Disallow: /ab/只能屏蔽http://域名/ab/,http://域名/ab/….这样的路径,也就是只能屏蔽ab目录和ab目录下的文件不被蜘蛛抓取。
四.验证robots.txt文件的正确性和是否生效
当我们写好了robots.txt文件后,怎么确定文件的正确性呢?上传到服务器根目录后,怎么判断robots.txt文件是否生效了呢?这时我们可以借助百度资源平台Robots。比如输入乐呵SEO测试服网址,得到如下结果。
验证robots.txt文件是否生效
检测到robots.txt文件的内容
验证robots.txt文件的正确性
结果证明,http://wordpress.leheseo.com/robots.txt这个文件没有语法错误,并且已经生效了。
若是想测试某一个目录或者文件是否被屏蔽了,百度也是提供了工具的。如下图,由于 http://wordpress.leheseo.com 是测试服,我屏蔽了所有文件。所以无论我输入根目录下的任何目录或者任何文件,都是检测不到的,也就是说蜘蛛是抓取不到的。
输入了后台目录wp-admin:
后台目录检测结果:
经过测试,其他文件和目录页也检测不到,所以这个功能还是很好用的。
更多robots.txt内容,可以参考百度提供的文档哦。https://ziyuan.baidu.com/college/courseinfo?id=267&page=12
robots.txt写法和注意事项就总结到这里了,内容相对细致,结合了例子讲解会很容易看懂,希望对您有所帮助咯。