robots.txt(小写)是一份存放在网站根目录下的ASCII编码文本文件,它负责告诉网络搜索引擎的漫游器(也被称为网络蜘蛛):哪些内容是不应被获取的,哪些内容是可以被获取的。
robots.txt 文件位置
由于系统中的某些URL是大小写敏感的,因此为了统一,robots.txt的文件名应全部采用小写字母且应该被放置在网站的根目录下
如果你想单独定义搜索引擎漫游器访问子目录时的行为,可以将自定义的设置融入到根目录下的robots.txt中,或者使用robots元数据(Metadata)。
直接将robots.txt放在网站的子目录中是无效的。
robots.txt 并不能强制阻止抓取
需要注意的是,robots.txt协议并不是一个规范,而只是一个约定俗成的习惯。对于搜索引擎而言,并没有义务遵守这个约定,但仍然有许多爬虫遵守这一约定,使得网站的隐私得以一定程度的保护。
然而,这不能保证所有的爬虫都会遵守这一约定,因此我们不能将网站的隐私完全寄托在robots.txt上。
robots.txt 指令
在robots.txt 文件中,我们可以看到一些特定的指令和规则,它们就像一道道神秘的符咒,保护着网站的秘密。对于网站的制作者来说,robots.txt 文件就如同一个守护者,防止搜索引擎的漫游器随意访问和抓取不希望被公开的内容。
允许所有的搜索引擎爬虫:
User-agent: *
Disallow:
或者另外一种写法:
User-agent: *
Allow:/
User-agent 是用来指定特定搜索引擎爬虫的标签,当它的值为”*”时,代表了所有的搜索引擎。Disallow 指令是禁止的意思,而 Allow 指令则是允许。
允许百度搜索引擎抓取所有页面(示例):
User-agent: Baiduspider
Allow:/
禁止除百度、必应与谷歌搜索引擎抓取外的其它搜索引擎抓取所有页面(示例):
User-agent: *
Disallow: /
User-agent: Baiduspider
Allow:/
User-agent: Bingbot
Allow:/
User-agent: Googlebot
Allow:/
禁止所有爬虫访问特定目录(示例):
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$
常见的搜索引擎爬虫及相应名称
爬虫名称 | 对应搜索引擎 |
---|---|
Baiduspider Baiduspider-render |
百度搜索 |
Googlebot | 谷歌搜索 |
Bingbot | 必应搜索 |
360Spider | 360搜索 |
YoudaoBot | 有道搜索 |
Slurp | Yahoo搜索 |
Goodbot | DuckDuckGo |
Sogou | 搜狗搜索 |
Sitemap 指令
Sitemap指令被几大搜索引擎支持(包括百度、Google、Bing和搜狗),指定网站Sitemaps文件的位置。Sitemap
指令并不受User-agent
指令的限制,所以它可以放在robots.txt文件中的任意位置。示例:
User-agent: *
Disallow: /admin/
Allow:/*.html$
Allow:/*.css$
Allow:/*.js$
Allow:/*.webp$
Sitemap: https://www.zhanzhangb.cn/sitemap.xml
WordPress 设置示例
User-agent: *
Disallow: /wp-admin/
Allow: /wp-admin/admin-ajax.php
Sitemap: https://www.zhanzhangb.cn/wp-sitemap.xml
暂无评论内容