Robots Exclusion Protocol简介
当 Robot 访问一个 Web 站点时,比如 http://www.hello.com/,它先去检查是否存在文件 http://www.hello.com/robots.txt。如果这个文件存在,它便会按照这样的记录格式去分析,以确定它是否应该检索站点的文件。这些记录是专门给 Web Robot 看的,一般的浏览者大概永远不会看到这个文件。
在一个站点上只有一个 “robots.txt” 文件有效。该文件必须上传到在网站的根目录下,而且文件名的每个字母要求全部是小写。在 Robot 的记录格式中每一个单独的 “Disallow” 行表示你不希望 Robot 访问的 URL,每个 URL 必须单独占一行,不能出现“Disallow: /cgi-bin/ /tmp/” 这样的语句。同时在一个记录中不能出现空行,这是因为空行是多个记录分割的标志。
例如:
User-agent: *
Disallow: /cgi-bin/
Disallow: /tmp/
Disallow: /~joe/
robots.txt 写作语法
例如 http://www.taobao.com/robots.txt 淘宝是屏蔽百度搜索的。
User-agent: Baiduspider
Disallow: /
User-agent: baiduspider
Disallow: /复制代码
一些 robots.txt 的具体用法:
允许所有的 robot 访问
User-agent: * Disallow:
或者也可以建一个空文件 "/robots.txt" file
禁止所有搜索引擎访问网站的任何部分
User-agent: * Disallow: /
禁止所有搜索引擎访问网站的几个部分(下例中的 01、02、03 目录)
User-agent: *
Disallow: /01/
Disallow: /02/
Disallow: /03/
禁止某个搜索引擎的访问(下例中的 BadBot)
User-agent: BadBot
Disallow: /
只允许某个搜索引擎的访问(下例中的 Crawler)
User-agent: Crawler
Disallow:
User-agent: * Disallow: /
使用技巧
- 每当用户试图访问某个不存在的 URL 时,服务器都会在日志中记录 404 错误(无法找到文件)。每当搜索蜘蛛来寻找并不存在的 robots.txt 文件时,服务器也将在日志中记录一条 404 错误,所以你应该在网站中添加一个 robots.txt。
2. 网站管理员必须使蜘蛛程序远离某些服务器上的目录——保证服务器性能。比如:大多数网站服务器都有程序储存在 “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/ 脚本文件
3. 如果你的网站是动态网页,并且你为这些动态网页创建了静态副本,以供搜索蜘蛛更容易抓取。那么你需要在 robots.txt 文件里设置避免动态网页被蜘蛛索引,以保证这些网页不会被视为含重复内容。
4. robots.txt 文件里还可以直接包括在 sitemap 文件的链接。就像这样:
Sitemap: sitemap.xml
目前对此表示支持的搜索引擎公司有 Google, Yahoo, Ask and MSN。而中文搜索引擎公司,显然不在这个圈子内。这样做的好处就是,站长不用到每个搜索引擎的站长工具或者相似的站长部分,去提交自己的 sitemap 文件,搜索引擎的蜘蛛自己就会抓取 robots.txt 文件,读取其中的 sitemap 路径,接着抓取其中相链接的网页。
5. 合理使用 robots.txt 文件还能避免访问时出错。比如,不能让搜索者直接进入购物车页面。因为没有理由使购物车被收录,所以你可以在 robots.txt 文件里设置来阻止搜索者直接进入购物车页面。
原文地址 blog.csdn.net