有些时候咱们会遇到这样的困难:咱们本来不想被搜索引擎收录的网站后台地址却被搜索引擎“无情”的收录,这样只要在Google里输入一个“后台、管理site:www.soumore.com”,本身的后台地址就会显露无疑,所以网站安全性也无从谈起。遇到这样的状况时,咱们如何阻止搜索引擎收录咱们不想被收录的文件呢?css
通常在这个时候,咱们经常使用的办法有两个,一个是编辑robots.txt文件,另一个是在不想被收录的页面头部放置META NAME="ROBOTS"标签。html
所谓的robots.txt文件,是每个搜索引擎到你的网站以后要寻找和访问的第一个文件,robots.txt是你对搜索引擎制定的一个如何索引你的网站的规则。经过这个文件,搜索引擎就能够知道在你的网站中,哪些文件是能够被索引的,哪些文件是被拒绝索引的。安全
在不少网站中,站长们都忽略了使用robots.txt文件。由于不少站长都认为,本身的网站没有什么秘密可言,并且本身也不太会使用robots.txt的语法,所以一旦写错了会带来更多的麻烦,还不如干脆不用。服务器
其实这样的作法是不对的。在前面的文章中咱们知道,若是一个网站有大量文件找不到的时候(404),搜索引擎就会下降网站的权重。而robots.txt做为蜘蛛访问网站的第一个文件,一旦搜索引擎要是找不到这个文件,也会在他的索引服务器上记录下一条404信息。ide
虽然在百度的帮助文件中,有这样的一句话“请注意,仅当您的网站包含不但愿被搜索引擎收录的内容时,才须要使用robots.txt文件。若是您但愿搜索引擎收录网站上全部内容,请勿创建robots.txt文件。”可是我我的仍是认为创建robots.txt仍是必须的,哪怕这个robots.txt文件是一个空白的文本文档均可以。由于咱们的网站毕竟不是仅仅会被百度收录,同时也会被其余搜索引擎收录的,因此,上传一个robots.txt文件仍是没有什么坏处的。学习
如何写一个合理的robots.txt文件?网站
首先咱们须要了解robots.txt文件的一些基本语法。搜索引擎
语法做用spa |
写法设计 |
容许全部搜索引擎访问网站的全部部分 或者创建一个空白的文本文档,命名为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: / |
禁止蜘蛛访问某个目录 (例如禁止admin\css\images被索引) |
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文件能够帮助咱们对于搜索引擎的访问作一个限制,这里须要注意的有几个方面。
一、 robots.txt文件必须处于网站根目录下,并且必须命名为robots.txt
二、 robots.txt文件的文件名所有是小写字母,没有大写字母。
三、 若是对于robots.txt文件的写法把握不许,那么能够直接放一个空的文本文档,命名为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">
所以,若是咱们对于这一部分把握不许的话,能够直接写上上面的这一行命令,或者是直接留空。
在SEO中,对于蜘蛛的控制是很是重要的一部份内容,因此但愿各位看官准确把握这部分的内容。