有些时候,我们并不希望网站的某些页面被抓取和收录,比如付费内容、还在测试阶段的页面、复制内容页面等。即便我们在网站上不出现这些页面的链接,甚至使用 JavaScript、Flash 的方式进行链接,nofollow 标签也不能保证页面一定不被搜索引擎收录,虽然我们自己没有链接到不想被收录的页面,但其他网站可能由于某种原因出现导入链接,而致使页面被收录。
要确保页面不被收录,方法之一就是使用 robots.txt 文件。
robots.txt 即蜘蛛协议,全称为“网络爬虫排除标准”(Robots Exclusion Protocol),也称为爬虫协议、机器人协议等,其作用是告知搜索引擎允许或不允许抓取哪些页面。
robots.txt 是一种纯文本格式的文件,使用任何一个常见的文本编辑器(比如Windows系统自带的记事本)就可以创建和编辑,它是搜索引擎进入网站后第一个爬取的文件,通常放置于网站根目录下。
搜索引擎蜘蛛在访问网站时会先查看网站根目录下是否存在一个名为 robots.txt 的纯文本文件,robots.txt 用于指定搜索引擎禁止抓取网站某些内容或指定允许抓取某些内容,如C的 robots 文件位于 http://c.biancheng.net/robots.txt。
只有在需要禁止抓取某些内容时,写 robots.txt 才有意义。
robots文件不存在或者是空文件都意味着允许搜索引擎抓取所有内容。
部分服务器存在设置问题,当 robots 文件不存在时会返回 200 状态码及一些错误信息,而不是 404 状态码,这有可能使搜索引擎错误解读 robots 文件信息,所以建议即使允许抓取所有内容,也要建一个空的 robots.txt 文件放在根目录下。
robots.txt 文件由记录组成,记录之间以空行分开,我们举例说明 robots.txt 的具体格式。
例1:禁止所有搜索引擎访问网站的任何部分:
User-agent: *
Disallow: /
例2:允许所有搜索引擎蜘蛛访问(或者建一个空文件“/robots.txt”):
User-agent: *
Allow: /
例3:禁止某个搜索引擎访问:
User-agent: Baiduspider
Disallow: /
例4:允许某个搜索引擎访问:
User-agent: Baiduspider
Allow: /
例5:只允许某个搜索引擎访问,其他搜索引擎禁止访问:
User-agent: Baiduspider
Disallow:
User-agent: *
Disallow: /
例6:只禁止某个搜索引擎访问,其他搜索引擎允许访问:
User-agent: Baiduspider
Disallow: /
User-agent: *
Disallow:
书写 robots 文件时需要注意以下细节:
/
代替即可。:
是英文状态下的。:
后面紧跟着一个空格。D
是大写的。robots.txt 文件内容释义:
User-agent 代表蜘蛛名称,例如:
*
是一个通配符。Disallow 表示不允许,代表禁止蜘蛛爬取的文件或目录。例如:
.htm
为后缀的 URL(包含子目录)。?
的网址。.jpg
格式的图片。Allow 表示允许,代表允许蜘蛛爬取的目录或文件。例如:
.htm
为后缀的 URL。Sitemap 一般放在 robots.txt 内容最底部,用于告知网络爬虫这个页面是网站地图,如 Sitemap:http://www.youdomainname.com/sitemap.htm。
主流搜索引擎都遵守 robots 文件指令,robots.txt 禁止爬取的文件搜索引擎将不访问、不爬取。但要注意的是,被 robots 文件禁止爬取的 URL 还是可能出现在搜索结果中。只要有导入链接指向这个 URL,搜索引擎就知道这个 URL 的存在。虽然不会抓取页面内容,但是可能以下面几种形式显示在搜索结果中:
要想使 URL 完全不出现在搜索结果中,需要使用页面上的 meta robots 标签。
更多...
加载中...