网站 robots.txt 文件编写

Intro

robots.txt 是网站根目录下的一个纯文本文件,在这个文件中网站管理者可以声明该网站中不想被robots访问的部分,或者指定搜索引擎只收录指定的内容。

当一个搜索机器人(有的叫搜索蜘蛛或爬虫)访问一个站点时,它会首先检查该站点根目录下是否存在robots.txt ,如果存在,搜索机器人就会按照该文件中的内容来确定访问的范围; 如果该文件不存在,那么搜索机器人就沿着链接抓取。

robots.txt 必须放置在一个站点的根目录下,而且文件名必须全部小写。

Robots协议(也称为爬虫协议、机器人协议等)的全称是“网络爬虫排除标准”(Robots Exclusion Protocol),网站通过Robots协议告诉搜索引擎哪些页面可以抓取,哪些页面不能抓取。

robots.txt 语法

  • User-agent

    一般情况下robot.txt文件会以User-agent:开头,该项的值用于描述搜索引擎机器人robot的名字。

    例如User-agent:Baiduspider,就是针对百度蜘蛛进行的协议约束,robots.txt文件中至少要有一条User-agent记录。 如果该项的值设为*(通配符),则该协议对任何搜索引擎机器人均有效。 如果使用通配符,这样的记录只能有一条。

    User-agent:BaiduSpider 

    User-agent:*

  • Disallow

    用来描述不希望被搜索机器人访问到网址。这个网址可以是完整的路径,也就是域名加上目录名或者文件名的格式,也可以是相对,也就是除去了域名,只有文件名或者目录名。

    一个Disallow的对应一个文件或者目录,有多少个目录或者文件需要设置就写几个Disallow。

    Disallow: /admin/ 这里定义是禁止爬寻admin目录下面的目录

    Disallow: /cgi-bin/*.htm 禁止访问/cgi-bin/目录下的所有以".htm"为后缀的URL(包含子目录)。

    Disallow: /.jpg$ 禁止抓取网页所有的.jpg格式的图片

    Disallow:/ab/adc.html 禁止爬取ab文件夹下面的adc.html文件

    禁止访问Admin目录下的文件

    Disallow:/Admin/

    禁止某个搜索引擎爬虫的访问

    User-agent: BadBot

    Disallow: /

  • Allow

    Allow: /cgi-bin/ 这里定义是允许爬寻cgi-bin目录下面的目录

    Allow: /tmp 这里定义是允许爬寻tmp的整个目录

    Allow: .htm$ 仅允许访问以".htm"为后缀的URL。

    Allow: .gif$ 允许抓取网页和gif格式图片

  • Sitemap

Sitemap: 网站地图 告诉爬虫这个页面是网站地图

  Sitemap: <http://www.example.com/sitemap.xml>

Allow 和 Sitemap 为非标准语法,可能只有一些大型的搜索引擎会支持,为保证兼容性问题,推荐在 robots.txt 中只使用 User-agent ,Disallow

User-agent:后面为搜索机器人的名称,后面如果是*,则泛指所有的搜索机器人。Disallow:后面为不允许访问的文件目录。

使用示例:

禁止所有机器人访问特定文件类型

User-agent: *

Disallow: /.js$

Disallow: /.inc$

Disallow: /.css$

拦截所有的机器人

User-agent: * Disallow: /

允许所有的机器人

User-agent: *

Disallow:

More

其他的影响搜索引擎的行为的方法包括使用robots元数据

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

Robots META 标签则主要是针对一个个具体的页面。 和其他的 META 标签(如使用的语言、页面的描述、关键词等)一样,Robots META 标签也是放在页面的<head></head>中,专门用来告诉搜索引擎ROBOTS如何抓取该页的内容。

Robots META 标签的写法: Robots META 标签中没有大小写之分,name=”Robots”表示所有的搜索引擎,可以针对某个具体搜索引擎写为name=”BaiduSpider”。

content部分有四个指令选项:index、noindex、follow、nofollow,指令间以“,”分隔。 INDEX 指令告诉搜索机器人抓取该页面; FOLLOW 指令表示搜索机器人可以沿着该页面上的链接继续抓取下去; Robots Meta标签的缺省值是INDEX和FOLLOW,只有inktomi除外,对于它,缺省值是INDEX,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,FOLLOW"> 可以写成 <META NAME="ROBOTS" CONTENT="ALL">

<META NAME="ROBOTS" CONTENT="NOINDEX,NOFOLLOW"> 可以写成 <META NAME="ROBOTS" CONTENT="NONE"> 目 前看来,绝大多数的搜索引擎机器人都遵守robots.txt的规则,而对于Robots META标签,目前支持的并不多,但是正在逐渐增加。 如著名搜索引擎GOOGLE就完全支持,而且GOOGLE还增加了一个指令“archive”,可以 限制GOOGLE是否保留网页快照。例如:

<mata name="googlebot" content="index,follow,noarchive">

表示抓取该站点中页面并沿着页面中链接抓取,但是不在GOOLGE上保留该页面的网页快照。

Reference

网站 robots.txt 文件编写的更多相关文章

  1. 网站SEO优化之Robots.txt文件写法。

    作为网站开发者或网站管理员一定知道网站对搜索引擎的优化有多重要,好的网站不仅要有漂亮的界面,良好的用户体验,还要有较高的更新频率.要被百度.google这样的搜索引擎大量收录,才能增加网站展示量,访问 ...

  2. 网站之robots.txt文件

    一.robots.txt是什么?   robots.txt是一个纯文本文件,在这个文件中网站管理者可以声明该网站中不想被搜索引擎访问的部分,或者指定搜索引擎只收录指定的内容. 当一个搜索引擎(又称搜索 ...

  3. 网站的robots.txt文件

    什么是robots.txt? robots.txt是一个纯文本文件,是爬虫抓取网站的时候要查看的第一个文件,一般位于网站的根目录下.robots.txt文件定义了爬虫在爬取该网站时存在的限制,哪些部分 ...

  4. robots.txt文件配置和使用方法详解

    robots.txt文件,提起这个概念,可能不少站长还很陌生:什么是robots.txt文件?robots.txt文件有什么作用?如何配置robots.txt文件?如何正确使用robots.txt文件 ...

  5. 没有robots.txt文件是否会影响收录呢

    Spider在抓取您的网站之前,会访问您的robots.txt 文件,以确定您的网站是否会阻止 蜘蛛抓取任何网页或网址.如果您的 robots.txt 文件存在但无法访问(也就是说,如果它没有返回 2 ...

  6. 不可不知的robots.txt文件

    robots.txt基本介绍 robots.txt是一个纯文本文件,在这个文件中网站管理者可以声明该网站中不想被robots访问的部分,或者指定搜索引擎只收录指定的内容. 当一个搜索机器人(有的叫搜索 ...

  7. Python 网络爬虫 010 (高级功能) 解析 robots.txt 文件

    解析 robots.txt 文件 使用的系统:Windows 10 64位 Python 语言版本:Python 2.7.10 V 使用的编程 Python 的集成开发环境:PyCharm 2016 ...

  8. 网站robots.txt探测工具Parsero

    网站robots.txt探测工具Parsero   robots.txt文件是网站根目录下的一个文本文件.robots.txt是搜索引擎中访问网站的时候要查看的第一个文件.当搜索引擎访问一个站点时,它 ...

  9. 用PHP的fopen函数读写robots.txt文件

    以前介绍了用PHP读写文本文档制作最简单的访问计数器不需要数据库,仅仅用文本文档就可以实现网页访问计数功能.同样我们可以拓展一下这个思路,robots.txt文件对于我们网站来说非常重要,有时候我们需 ...

随机推荐

  1. Java内部类的定义和使用

    为什么要用到内部类: 在java开发学习中我们经常会碰到内部类.内部类又有很多的优势:首先举一个简单的例子,如果你想实现一个接口,但是这个接口中的一个方法和你构想的这个类中的一个方法名称参数相同,你应 ...

  2. Latch2:Latch和性能

    1,数据的IO操作 SQL Server访问的任何一个Page必须存在于内存中,如果不存在于内存中,那么SQL Server发出 Disk IO请求,将数据页从Disk读取到内存中,然后SQL Ser ...

  3. Spring(四)注解配置Ioc

    原文链接:http://www.orlion.ga/216/ 一.@Autowired beans.xml配置成如下: <?xml version="1.0" encodin ...

  4. 虚拟文件系统(VFS)

    原文链接:http://www.orlion.ga/1008/ linux在不同的文件系统之上做了一个抽象层,使得文件.目录.读写访问等概念都成为抽象层概念,这个抽象层被称为虚拟文件系统(VFS). ...

  5. 基于Metronic的Bootstrap开发框架经验总结(5)--Bootstrap文件上传插件File Input的使用

    Bootstrap文件上传插件File Input是一个不错的文件上传控件,但是搜索使用到的案例不多,使用的时候,也是一步一个脚印一样摸着石头过河,这个控件在界面呈现上,叫我之前使用过的Uploadi ...

  6. ASP.NET MVC Application_Error 无效不执行

    我们一般在开发 ASP.NET MVC 应用程序的时候,会在 Application_Error 中添加异常日志记录,一般会记录 500 的错误信息,但如果应用程序在出错的时候,Application ...

  7. C++指针和动态内存分配

    指针和动态内存分配 数组与指针 数组 数组名是一个指针常量. 数组名传递数据时,传递的是地址. 数组作为函数参数时不指定第一维大小. 对象数组 A a[2] = {A(1,2)}; 执行时先调用有参数 ...

  8. 深入seajs源码系列一

    简述 前端开发模块化已经是大势所趋,目前模块化的规范有很多,众所周知的有commonJS,Module/Wrappings和AMD等,而且ES6也着手开始制定模块化机制的实现.类似于c/c++的inc ...

  9. 【JAVA】基于MVC架构Java技术荟萃案例演练

    基于JAVA-MVC技术的顾客管理项目案例总结 作者 白宁超 2016年6月9日22:47:08 阅读前瞻:本文源于对javaweb相关技术和资料汇总,涉及大量javaweb基础技术诸如:Servle ...

  10. ASP.NET通过递归添加树(Treeview)

    先来看看效果,基本上就是这样的. 所谓树,无非就是2点,第一个:根节点,第二:叶子节点,其中叶子节点中还可能有叶子节点,但是根节点始终只有一个. 下面贴上 各部分的代码 1.PAGE_LOAD载入事件 ...