一、robots.txt是什么?
robots.txt是一个纯文本文件,在这个文件中网站管理者可以声明该网站中不想被搜索引擎访问的部分,或者指定搜索引擎只收录指定的内容。
当一个搜索引擎(又称搜索机器人或蜘蛛程序)访问一个站点时,它会首先检查该站点根目录下是否存在robots.txt,如果存在,搜索机器人就会按照该文件中的内容来确定访问的范围;如果该文件不存在,那么搜索机器人就沿着链接抓取。
二、robots.txt的作用
1、引导搜索引擎蜘蛛抓取指定栏目或内容;
2、网站改版或者URL重写优化时候屏蔽对搜索引擎不友好的链接;
3、屏蔽死链接、404错误页面;
4、屏蔽无内容、无价值页面;
5、屏蔽重复页面,如评论页、搜索结果页;
6、屏蔽任何不想被收录的页面;
7、引导蜘蛛抓取网站地图;
三、Robots的语法(三个语法和两个通配符)
三个语法如下:
1、User-agent:(定义搜索引擎)
示例:
User-agent: *(定义所有搜索引擎)
User-agent: Googlebot (定义谷歌,只允许谷歌蜘蛛爬取)
User-agent: Baiduspider (定义百度,只允许百度蜘蛛爬取)
不同的搜索引擎的搜索机器人有不同的名称,谷歌:Googlebot、百度:Baiduspider、MSN:MSNbot、Yahoo:Slurp。
2、Disallow:(用来定义禁止蜘蛛爬取的页面或目录)
示例:
Disallow: /(禁止蜘蛛爬取网站的所有目录 "/" 表示根目录下)
Disallow: /admin (禁止蜘蛛爬取admin目录)
Disallow: /abc.html (禁止蜘蛛爬去abc.html页面)
Disallow: /help.html (禁止蜘蛛爬去help.html页面)
3、Allow:(用来定义允许蜘蛛爬取的页面或子目录)
示例:
Allow: /admin/test/(允许蜘蛛爬取admin下的test目录)
Allow: /admin/abc.html(允许蜘蛛爬去admin目录中的abc.html页面)
两个通配符如下:
4、匹配符 “$”
$ 通配符:匹配URL结尾的字符
5、通配符 “*”
* 通配符:匹配0个或多个任意字符
四、robots.txt 综合示例
1、禁止搜索引擎抓取特定目录
在这个例子中,该网站有三个目录对搜索引擎的访问做了限制,即搜索引擎不会访问这三个目录。
User-agent: * Disallow: /admin/
Disallow: /tmp/
Disallow: /abc/
2、禁止admin目录,但允许抓取admin目录下的seo子目录
User-agent: * Allow: /admin/seo/
Disallow: /admin/
3、禁止抓取/abc/目录下的所有以".htm”为后缀的URL(包含子目录)
User-agent: * Disallow: /abc/*.htm$
4、禁止抓取网站中所有的动态页面
User-agent: * Disallow: /?
屏蔽所有带“?”的文件,这样就屏蔽所有的动态路径。
5、禁止百度蜘蛛抓取网站所有的图片:
User-agent: Baiduspider
Disallow: /.jpg$
Disallow: /.jpeg$
Disallow: /.gif$
Disallow: /.png$
Disallow: /*.bmp$
6、要在阻止网站页面被抓取的同时仍然在这些页面上显示 AdSense 广告
User-agent: * Disallow: /folder1/
User-agent: Mediapartners-Google
Allow: /folder1/
请禁止除 Mediapartners-Google 以外的所有漫游器。 这样可使页面不出现在搜索结果中,同时又能让 Mediapartners-Google 漫游器分析页面,从而确定要展示的广告。 Mediapartners-Google 漫游器并不与其他 Google User-agent 共享网页。
五、注意事项
1、robots.txt 文件必须放在网站的根目录,不可以放在子目录。
以吴钧泽博客网站为例:比如通过 https://www.wujunze.com/robots.txt 你就可以访问 wujunze.com的robots.txt文件了。
2、robots.txt 文件名命名必须小写,记得在robot面加“s”。
3、User-agent、Allow、Disallow的 “:” 后面有一个字符的空格。
4、路径后面加斜杠“/” 和不加斜杠的是有区别的
Disallow: /help
禁止蜘蛛访问 /help.html、/helpabc.html、/help/index.html
Disallow: /help/
禁止蜘蛛访问 /help/index.html。 但允许访问 /help.html、/helpabc.html
5、Disallow与Allow行的顺序是有意义的:
举例说明:
允许蜘蛛访问 /admin/ 目录下的seo文件夹
User-agent: * Allow: /admin/seo/
Disallow: /admin/
如果Allow 和 Disallow 的顺序调换一下:
User-agent: * Disallow: /admin/
Allow: /admin/seo/
蜘蛛就无法访问到 /admin/ 目录下的 seo 文件夹,因为第一个 Disallow: /admin/ 已匹配成功。
六、在vue项目中使用
vue使用robots.txt直接把robots.txt放到public文件夹中,打包时会自动放到dist文件夹中