Robots文件是网站和各大搜索引擎建立良好沟通的桥梁,也是网站从搜索引擎获得流量的开端第一步,因为robots的设置不当,很有可能会失去很大一部分的流量。对于SEO优化的从业者或者是爱好者,必须要知道其中的原理和设置方法,对于网站管理员及相关的开发技术人员,了解robots.txt文件的设置方法是一项额外加分的工作技能。网上也有很多的相关教程,但总是残缺不全或难以理解,所以决定详细的梳理一遍。
robots.txt的作用是什么?
robots.txt文件只有一个作用:用于屏蔽一个或多个搜索引擎禁止收录你网站上的内容。默认情况下网站都是允许任何搜索引擎抓取和收录页面的,但出于某种目的,你可以屏蔽某个或多个搜索引擎收录你网站上的页面,为了达成这一共识,于是robots协议就顺利诞生了,所有的搜索引擎都遵循robots协议。
每个搜索引擎都一个被称为蜘蛛(spider)或机器人(bot)的程序,我们习惯上称之为“蜘蛛”,在决定是否抓取你的网站页面时,蜘蛛会首先检查你网站的根目录里面是否存在robots.txt文件,如果没有robots.txt则说明是允许全部抓取的;如果存在robots.txt文件,蜘蛛会识别里面有没有自己的名称在被拒绝之列,然后再判断你设置的那些内容是不允许抓取的,再进行网页的抓取和收录。
robots.txt文件的写法
基本语法
默认情况下是整个网站全部允许被任何搜索引擎抓取收录的,robots.txt只用于禁止搜索引擎收录,所以只需要添加搜索引擎蜘蛛的名称(User-agent)和disallow(禁止收录的内容)即可,特殊情况下也可以使用allow语法。
User-agent: * Disallow: / Allow: *.html$ #seo
需要注意首字母大写,冒号后面是英文状态下的一个空格,用“井号”来表示注释说明,支持 "*" 匹配0或多个任意字符,"$" 匹配行结束符,对大小写敏感,所以要注意文件或文件夹的名称精确匹配,为了搜索引擎能更好地识别robots.txt文件,建议保存编码设置为ANSI编码,下面举例说明各种用法及设置。
robots.txt各种写作方法
1、屏蔽所有的搜索引擎收录任何页面
屏蔽搜索引擎的搜索引擎只需要把user-agent设置为*即可,如下所示,而disallow后面的斜杠则表示根目录,自根目录以下的任何内容均不允许收录,两行代码即可。
User-agent: * Disallow: /
2、允许所有的搜索引擎收录所有页面
所有的搜索引擎均允许,可以把robots.txt文件里面的内容全部删除,即保留一个空文件就行,还可以使用下面的代码来说明。
User-agent: * Allow: /
3、仅允许指定的搜索引擎收录
需要把搜索引擎蜘蛛的名称写在前面,最后使用*来匹配全部,代码如下。仅允许百度和谷歌收录,其他搜索引擎全部禁止。
User-agent: baiduspider Allow: / User-agent: googelebot Allow: / User-agent: * Disallow: /
第5、6两句是禁止所有的,前面允许了指定的蜘蛛名称,所以除了被允许的百度和谷歌蜘蛛,其他的搜索引擎都不能收录的网站页面了。
4、禁止指定的搜索引擎收录
如果只是想有针对性的屏蔽某个或多个搜索引擎,比如禁止百度和谷歌蜘蛛,写法如下。
User-agent: baiduspider Disallow: / User-agent: googelebot Disallow: / User-agent: * Allow: /
由于默认是allow状态的,所以第5句、6句一般不写。只写disallow的部分。你可能已经发现了,user-agent后面只能是具体的蜘蛛名称或星号,而disallow和allow后面的内容是全站时均使用斜杠而不是其他符合,因为他们后面的是指网站的目录,所以在指向目录时就不能使用别的符合,比如“disallow:*”这个写法就错了。
禁止抓取和收录目录及文件的写作语法,下面分别举例说明。
1、禁止搜索引擎收录指定的目录
User-agent: * Disallow: /asf/ Disallow: /2020/
上的意思是对于所有的搜索引擎,均禁止收录asf和2020文件夹里面的任何内容。在屏蔽文件夹时最后要加斜杠结束,如果这样写“Disallow: /2020”,结尾没有加斜杠,则表示根目录下以2020开头的网址均被禁止,如/2020.html、/2020abc.html、/2020/df.html均被禁止收录,所以在写作disallow屏蔽目录时千万不要弄错了。
2、允许搜索引擎收录禁止目录中的特定URL
如果屏蔽了某个目录“df”,但是又希望df这个目录中指定的网页被收录怎么办,使用下面的语法即可。
User-agent: * Allow: /df/111.html Allow: /df/*22c.php Disallow: /df/
allow要写在前面,后面再紧跟着写屏蔽的目录名称。这种写法比较少用,一般都是直接屏蔽目录就没有必要再允许其中的某几个或某一类url还要被收录了,上面代码第2句指允许收录根目录df文件夹里面的111.html这个页面,第3句指允许收录根目录df目录下包含“22c.php”的所有url均允许收录,第4句是禁止收录df目录下的全部url,允许收录的写在前面。
3、使用星号来匹配某一类网址
星号可以匹配一种类型的网址,极大地提高了设置的方便性,在使用过程中要熟练掌握,SEO优化的设置中如果经常会遇到屏蔽某一类型的网址,使用*就非常常见。
User-agent: * Disallow: /abc/ Disallow: /*?* Disallow: /rt/jc* Disallow: /*.php Disallow: /*ps*
第3句禁止收录动态网址,第4句禁止收录rt目录下以jc开头的url,第5句禁止收录包含“.php”的url(包含以.php结尾的url在内,如h.php、as.php?id=2、dd.php23.html均被禁止),第6句禁止收录网址中含有“ps”的url。
4、使用$来匹配URL结束
如果需要屏蔽某类型结尾的url或文件,此时就需要用到结束匹配符号“$”。
User-agent: *Disallow: /abc/*ty.php$Disallow: /*.php$Disallow: /*.jpg$
上面第2句禁止收录abc目录下以ty.php结尾的url,第3句禁止收录全站以.php结尾的url,第4句禁止收录全站jpg格式的图片。可以看到如果是屏蔽具体的某一类后缀名url则需要以$作为结束。
5、禁止搜索引擎收录图片语法
禁止收录网站图片主要用到$和*匹配符,写法也是很简单的。
User-agent: * Disallow: /*.jpg$ Disallow: /*.jpeg$ Disallow: /*.png$ Disallow: /*.gif$
以上分别是禁止收录全站jpg/jpeg/png/gif格式的图片。
6、只允许搜索引擎收录静态页面
User-agent: * Allow: /*.html$ Disallow: /
配合allow来使用,禁止收录全站任何url,然后使用allow来允许收录以“.html”结尾的url即可。
以上就是全部robots文件的写法,其中难点是通配符星号的是用和结束符$的使用,要学会灵活的举一反三,在每写完一条记录时都要确保没有屏蔽错url,每行一条记录。对于robots.txt文件,每一次在写完之后都认真检查一遍,写错了损失就大了。