robots.txt的正确用法

robots.txt(统一小写)是一种存放于网站根目录下的ASCII编码的文本文件,它通常告诉网络搜索引擎的漫游器(又称网络蜘蛛),此网站中的哪些内容是不应被搜索引擎的漫游器获取的,哪些是可以被漫游器获取的。

robots.txt应小写且放置在网站根目录

因为一些系统中的URL是大小写敏感的,所以robots.txt的文件名应统一为小写。robots.txt应放置于网站的根目录下。

如果想单独定义搜索引擎的漫游器访问子目录时的行为,那么可以将自定义的设置合并到根目录下的robots.txt,或者使用robots元数据(Metadata,又称元数据)。

将robots.txt放置在网站的子目录中是无效的。

注意:robots.txt协议并不是一个规范,而只是一个约定而已(甚至有些爬虫不遵守该约定),所以并不能保证网站的隐私。

robots.txt指令

允许所有的搜索引擎爬虫:

User-agent: *
Disallow:

或者另外一种写法:

User-agent: *
Allow:/

User-agent是指定特点搜索引擎爬虫的,当值为*的时候,代表所有搜索引擎。

例如以下示例,允许百度搜索引擎抓取所有页面:

User-agent: Baiduspider
Allow:/

常见的搜索引擎爬虫及相应名称:

爬虫名称对应搜索引擎
Baiduspider百度搜索
Googlebot谷歌搜索
Bingbot必应搜索
360Spider360搜索
YoudaoBot有道搜索
ChinasoSpider中国搜索
Sosospider搜搜
Yisouspider宜搜
Sogou web spider
Sogou inst spider
Sogou spider2
Sogou blog
Sogou News Spider
Sogou Orion spider
搜狗搜索
以上数据更新于2021年2月

禁止所有爬虫访问特定目录:

User-agent: *
Disallow: /cgi-bin/
Disallow: /js/
Disallow: /tmp/

仅禁止谷歌访问特定目录:

User-agent: Googlebot
Disallow: /cgi-bin/
Disallow: /js/
Disallow: /tmp/

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

User-agent: *
Disallow: /*.php$
Disallow: /*.js$
Disallow: /*.inc$
Disallow: /*.css$

自动发现Sitemaps文件

Sitemap指令被几大搜索引擎支持(包括百度、Google、Bing和搜狗),指定网站Sitemaps文件的位置。Sitemap指令并不受User-agent指令的限制,所以它可以放在robots.txt文件中的任意位置。示例:

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

替代方法

虽然robots.txt是最为广泛接受的方法,但也可以与robots META标签一起使用。robots META标签主要是针对一个独立的页面设置,与其他的META标签(如使用的语言、页面的描述、关键词等)一样,robots META标签也是放在页面的HEAD标签中,专门用来告诉搜索引擎robots如何抓取该页的内容。

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

除了在网站根目录中使用robots.txt文件之外,还可以使用添加“X-Robots-Tag”HTTP标头的方式来实现同样的功能。


发表评论