今天我们主要学习一下robots.txt文件的使用和设置方法。
一、认识robots.txt文件
从网站优化和网站安全的方面来说,我们的站点并不是每一个页面都需要用户访问,这就好比即使再好的朋友来到了您的家里,您也不会将家里所有的东西都展示给朋友看。那么怎么控制搜索引擎蜘蛛抓取网站的范围呢?这就是我们今天要讲的主角——robots.txt文件。
robots.txt文件是搜索引擎来到网站之后访问的第一文件,robots.txt文件中设置了搜索引擎的抓取范围。
二、robots.txt文件设置要求
1、robots.txt文件必须放置在网站根目录;
2、robots.txt文件名必须小写。
根据上面两点提示我们查看到绝大部分网站的robots.txt文件,如果出现无法访问的现象,最大可能就是网站根目录中没有此文件。
三、robots.txt文件规则解读
robots.txt的书写格式为:<域>:<可选空格><域值><可选空格>
常见的robots.txt指令为:
User-agent: *
Disallow: /
此指令代表禁止所有的搜索引擎抓取网站的任何部分。此指令常用于站点不想被搜索引擎收录或者建站初期,当网站结构没有建设完成的时候,我们是不希望搜索引擎抓取网站任何内容的。
1、User-agent:
用于指定某个搜索引擎蜘蛛,如果使用通配符*代表所有的搜索引擎蜘蛛,如:
User-agent: Baiduspider指的是指定百度蜘蛛;
User-agent: Googlebot 指的是指定谷歌蜘蛛。
2、Disallow: /
代表着禁止抓取网站的某些内容,如“/”后面没有任何参数代表禁止抓取网站所有内容。我们来学习一下参数后面分别代表的含义:
Disallow: /admin/ 禁止抓取admin目录下的所有内容;
Disallow: /cgi-bin/*.htm 禁止抓取/cgi-bin目录下的所有以.htm结尾的文件;
Disallow: /*?* 禁止抓取网站中所有包含问号 (?) 的网址;
Disallow:/ab/adc.html 禁止抓取ab文件夹下面的adc.html文件;
在这里重点强调一点,Disallow指令有一个比较特殊的地方,Disallow: /代表着禁止抓取,但是Disallow: 代表着允许抓取,如:
User-agent: *
Disallow:
此指令代表允许所有的搜索引擎抓取网站的任何内容。
3、Allow:/
该指令用于允许蜘蛛抓取某些文件。Allow:/指令后面的参数与Disallow指令相同,如:
User-agent: *
Disallow: /a/
Allow: /a/b/
该指令的含义是不允许蜘蛛抓取a目录下的其他目录和文件,但是可以抓取a目录下的b目录中的内容。
4、$通配符,代表着以某个字符结尾的URL。
User-agent: *
Disallow: /.webp$
此指令的含义是禁止所有搜索引擎抓取所有.webp文件。
$指令在效果上有些地方和*是相同的,$指令常见于动态网址,互联网中应用不是特别广泛。
Disallow: /.webp$ 等同于 Disallow: /*.webp
5、Sitemap:告诉蜘蛛XML网站地图的位置,格式为:
Sitemap:http://你的域名/sitemap.xml
主流的搜索引擎都会遵守robots文件指令,但是被robots文件禁止抓取的网址还会出现在搜索引擎结果中,这就好比你虽然不告诉我发生了什么事,但是我从别人那里知道了你的事情一样。只要禁止被抓取的网址在互联网中存在导入链接,搜索引擎就会知道这个网址的存在,有可能被搜索引擎收录,但是搜索结果标题下方会出现对应的提示:
由于该网站的tobots.txt文件存在限制指令(限制搜索引擎抓取),系统无法提供该页面的内容。