robots.txt文件

1. 什么是robots.txt文件?

 

搜索引擎通过一种程序robot(又称spider),自动访问互联网上的网页并获取网页信 息。您可以在您的网站中创建一个纯文本文件robots.txt,在这个文件中声明该网站中不想被robot 访问的部分,这样,该网站的部分或全部内容就可以不被搜索引擎收录了,或者指定搜 索引擎只收录指定的内容。

 

2. robots.txt文件放在哪里?

 

robots.txt文件应该放在网站根目录下。举例来说,当搜索引擎访问一个网站时,首先会检查该网站中是否存在robots.txt这个文件,如果robots机器人程序找到这个文件,它就会根据这个文件的内容,来确定它访问权限的范围。


wordpressrobots文件位置


没在wordpress网站根节目上传过robots.txt,当搜寻引擎和用户拜访某个文件时,wordpress程序会主动生成一个robots.txt给搜寻引擎和用户;若是我们上传编写的robots.txt到网站根节目,用户和搜寻引擎蛛蛛拜访的就是我们上传的文件,wordpress就不会再产生那个文件了。只有服务器找不到robots的时候wordpress才会生成这个文件。

 

网站URL相应的robots.txtURL

 

http://www.w3.org/                 http://www.w3.org/robots.txt 

http://www.w3.org:80/              http://www.w3.org:80/robots.txt 

http://www.w3.org:1234/            http://www.w3.org:1234/robots.txt 

http://w3.org/                      http://w3.org/robots.txt

 

 

文件格式


robots.txt”文件包含一条或多条记录,这些记录通过空行分开(以CRCR/NLor NL作为结束符),每一条记录的格式如下所示:

<field>:<optionalspace><value><optionalspace>


在该文件中可以使用#进行注释,具体使用方法和UNIX中的惯例一样。该文件中的记录通常以一行或多行User-agent开始,后面加上若干Disallow行,详细情况如下:


User-agent

该项的值用于描述搜索引擎机器人robot的名字。在“robots.txt”文件中,如果有多条 User-agent记录,说明有多个robot会受到该协议的约束。所以,“robots.txt”文件中至少要有一条User- agent记录。如果该项的值设为*通配符),则该协议对任何搜索引擎机器人均有效。在“robots.txt”文件 中,“User-agent*”这样的记录只能有一条。


Disallow

该项的值用于描述不希望被访问到的一个URL,这个URL可以是一条完整的路径,也可以 是部分的,任何以Disallow开头的URL均不会被robot访问到。例如:

Disallow: /help”对/help.html /help/index.html都不允许搜索引擎访问, 而“Disallow: /help/”则允许robot访问/help.html,而不能访问/help/index.html


任何一条Disallow记录为空,说明该网站的所有部分都允许被访问,在 “/robots.txt”文件中,至少要有一条Disallow记录。如果“/robots.txt”是一个空文 件,则对于所有的搜索引擎robot,该网站都是开放的。

 

robots.txt文件用法举例:

 

1、禁止所有搜索引擎访问网站的任何部分

User-agent: *

Disallow: /

 

2、允许所有的robot访问

User-agent: *

Disallow:

(或者也可以建一个空文件 "/robots.txt" file

 

3、禁止某个搜索引擎的访问

User-agent: BadBot

Disallow: /

 

4、允许某个搜索引擎的访问

User-agent: Baiduspider

Disallow:

User-agent: *

Disallow: /

 

5、假设某个网站有三个目录对搜索引擎的访问做了限制,可以这么写:

User-agent: *

Disallow: /cgi-bin/

Disallow: /tmp/

Disallow: /joe/


需要注意的是,对每一个目录必须分开声明,而不要写成:“Disallow: /cgi-bin/ /tmp/”。

 

6:禁止搜索引擎收录以.jpg结尾的所有图片文件

User-agent: *

Disallow: :/*.jpg$

 

User-agent:后的*通配符) 具有特殊的含义,代表“any robot”,所以在该文件中不能有 “Disallow: /tmp/*” or Disallow: *.gif ”这样的记录出现。


另外,robots.txt主要作用是保障网络安全与网站隐私,百度蜘蛛遵循robots.txt协议。通过根目录中创建的纯文本文件robots.txt,网站就可以声明哪些页面不想被百度蜘蛛爬行并收录,每个网站都可以自主控制网站是否愿意被百度蜘蛛收录,或者指定百度蜘蛛只收录指定的内容。当百度蜘蛛访问某个站点时,它会首先检查该站点根目录下是否存在robots.txt,如果该文件不存在,那么爬虫就沿着链接抓取,如果存在,爬虫就会按照该文件中的内容来确定访问的范围。


一般屏蔽


屏蔽隐私页面,后台登陆页面,缓存页面,图片目录,css目录,模板页面,屏蔽双页面的内容,同时可以屏蔽一些质量比较差的页面,例如金网的所有会员用户空间页面,dz的动态链接也可以设置屏蔽。通过Disallow:命令来进行设置。


使用技巧


每当用户试图访问某个不存在的URL时,服务器都会在日志中记录404错误(无法找到文件)。每当搜索蜘蛛来寻找并不存在的robots.txt文件时,服务器也将在日志中记录一条404错误,所以你应该在网站中添加一个robots.txt

网站管理员必须使搜索引擎机器人程序远离服务器上的某些目录,以保证服务器性能。比如:大多数网站服务器都有程序储存在“cgi-bin”目录下,因此在robots.txt文件中加入“Disallow: /cgi-bin”是个好主意,这样能够避免所有程序文件都被蜘蛛索引,以达到节省服务器资源的效果。


一般网站中不需要蜘蛛抓取的文件有:后台管理文件、程序脚本、附件、数据库文件、编码文件、样式表文件、模板文件、导航图片和背景图片等等。

下面是VeryCMS里的robots.txt文件:

User-agent: *

Disallow: /admin/ 后台管理文件

Disallow: /require/程序文件

Disallow: /attachment/ 附件

Disallow: /images/ 图片

Disallow: /data/数据库文件

Disallow: /template/ 模板文件

Disallow: /css/ 样式表文件

Disallow: /lang/ 编码文件

Disallow: /script/脚本文件

Disallow: /js/js文件


如果你的网站是动态网页,并且你为这些动态网页创建了静态副本,以供搜索蜘蛛更容易抓取。那么你需要在robots.txt文件里设置避免动态网页被蜘蛛索引,以保证这些网页不会被视为是网站重复的内容。


robots.txt文件里还可以直接包括在sitemap件的链接。就像这样:

Sitemap: http://www.***.com/sitemap.xml

 

不要以为Web Robot是毫无组织,毫无管束地乱跑。很多Web Robot软件给网络站点的 管理员或网页内容制作者提供了两种方法来限制Web Robot的行踪:


 1、Robots Exclusion Protocol 协议


网络站点的管理员可以在站点上建立一个专门格式的文件,来指出站点上的哪一部分 可以被robot访问, 这个文件放在站点的根目录下,即 robots.txt."  http://.../robots.txt


   2、Robots META tag


  一个网页作者可以使用专门的HTML META tag ,来指出某一个网页是否可以被索 引、分析或链接。

  这些方法适合于大多数的Web Robot,至于是否在软件中实施了这些方法,还依赖于 Robot的开发者,并非可以保证对任何Robot都灵验。如果 你迫切需要保护自己内容,则应考虑采用诸如增加密码等其他保护方法。


  使用Robots Exclusion Protocol协议


当Robot访问一个 Web 站点时,它先去检查文件robots.txt。如果这个文件存在,它便会按照这样的记录格式去分析:

User-agent: * 

Disallow: /cgi-bin/ 

Disallow: /tmp/ 

Disallow: /~joe/


  以确定它是否应该检索站点的文件。这些记录是专门给Web Robot看的,一般的浏览者大概永远不会看到这个文件,所以千万不要异想天开地在 里面加入形似<img src=*> 类的HTML语句或是How do you do? where are you from?之类假情假意的问候语。


  在一个站点上只能有一个 "/robots.txt" 文件,而且文件名的每个字母要求全部是小 写。在Robot的记录格式中每一个单独的"Disallow"行表 示你不希望Robot访问的URL, 每个URL必须单独占一行,不能出现 "Disallow: /cgi-bin/ /tmp/"这样的病句。同时在一个记录中不能出现空 行,这是因为空行是多个记录分割的标志。


  User-agent行指出的是Robot或其他代理的名称。在User-agent行,''*'' 表示一个特殊的含义---所有的robot。


使用Robots META tag方式


Robots META tag 允许HTML网页作者指出某一页是否可以被索引,或是否可以用来查找更多的链接文件。目前只有部分robot实施了这一功能。

Robots META tag的格式为: 

META NAME="ROBOTS" CONTENT="NOINDEX, NOFOLLOW" 


像其他的META tag一样,它应该放在HTML文件的HEAD区: 

<html>

<head>

<meta name="robots" content="noindex,nofollow">

<meta name="description" content="This page ...."> <title>...</title>

</head>

<body>

...


Robots META tag指令使用逗号隔开,可以使用的指令包括 [NO]INDEX 和[NO]FOLLOW。INDEX 指令指出一个索引性robot是否可以对本页进行索 引;FOLLOW 指 令指出robot是否可以跟踪本页的链接。缺省的情况是INDEX和FOLLOW。例如:

<meta name="robots" content="index,follow">

<meta name="robots" content="noindex,follow">

<meta name="robots" content="index,nofollow"> 

<meta name="robots" content="noindex,nofollow">     

       

一个好的Web 站点管理员应该将robot的管理考虑在内,使robot为自己的主页服务, 同时又不损害自己网页的安全。

 

阅读更多
文章标签: HTML
个人分类: 知识点
想对作者说点什么? 我来说一句

没有更多推荐了,返回首页

关闭
关闭
关闭