一.robots.txt 具体作用
1. 对搜索引擎做出规定,抓取或者不抓取。
2. 由于有些资讯规定了不让抓取,所以可以保护到一些必要的资讯,比如:网站后台,多用户资讯。

3. 节省搜索引擎抓取资源。

二.robots.txt 规则
1.User-agent,用于告诉识别蜘蛛型别。比如,User-agent: Baiduspider 就是指百度蜘蛛。
各类蜘蛛列举如下:
百度蜘蛛:Baiduspider
谷歌机器人:GoogleBot
360 蜘蛛:360Spider
搜狗蜘蛛:Sogou News Spider
雅虎蜘蛛:“Yahoo! Slurp China” 或者 Yahoo!
有道蜘蛛:Youdaobot 或者 Yodaobot
Soso 蜘蛛:Sosospider
2.Allow,允许蜘蛛抓取指定目录或档案,预设是允许抓取所有。
3.Disallow,不允许蜘蛛抓取指定目录或档案。
4. 万用字元,“*”,匹配 0 或多个任意字元。
5. 终止符,“$”,可以匹配以指定字元结尾的字元。
举个例子:下面是一个 wordpress 站群程序的 robots.txt
User-agent: *
Disallow: /wp-admin/
Disallow: /wp-includes/
Disallow: /wp-content/plugins
Disallow: /wp-content/themes
Disallow: /feed
Disallow: /*/feed
Disallow: /comments/feed
Disallow: /*.js$
Disallow: /*?*
Sitemap: https://www.weixiaoduo.com/sitemap.xml
解释:
User-agent: *:对所有搜索引擎都使用下面的规则。
Disallow: /wp-admin/:不让蜘蛛抓取根目录下的 wp-admin 资料夹。
Disallow: /*.js$:不让蜘蛛抓取根目录下所有的 js 档案。
Disallow: /*?*:不抓取所有的动态链接。

Sitemap: https://www.weixiaoduo.com/sitemap.xml:给蜘蛛提供网站地图,方便蜘蛛抓取 WordPress 网站内容。

三.robots.txt 注意事项
1. 如果你希望搜索引擎收录网站上所有的内容,那么就不要建立 robots.txt 档案。
2. 如果同时存在动态和静态链接,那么建议遮蔽动态链接。
3.robots.txt 只能是遮蔽站内档案的,对站外档案没有遮蔽功能。
4.User-agent,Allow,Disallow,Sitemap 的首字母都是大写的。
5.User-agent,Allow,Disallow,Sitemap 的冒号后面都是有空格的,没有写空格直接写接下来的内容会出错。
6. 网站通常会遮蔽搜索结果页面。因为搜索结果页和正常展示的内容页相比,标题和内容上相同的,而这两个页面链接是不同的。那搜索引擎该将这篇文章归属于哪个站群内链呢? 这样就会造成站群内链之间相互竞争,造成内部资源损耗。
比如上面举的例子,那个 wordpress 站群程序,在没有设定伪静态,还是动态链接的时候,搜索结果页面链接都包含有/?s=,而 标题和内容 与 正常展示的动态链接内容页重复,可以通过 Disallow: /?=*来遮蔽搜索结果页面。
而现在那个 wordpress 站群程序已经设定了伪静态,也设定了 Disallow: /*?*,Disallow: /*?*本身就包含了 Disallow: /?=*,所以 Disallow: /?=*这句写不写都没有关系
7. 建议遮蔽 js 档案。 Disallow: /*.js$,以 .js 结尾的路径统统被遮蔽,这样就遮蔽了 js 档案。
8. 路径是区分大小写的。 Disallow: /ab/ 和 Disallow: /Ab/ 是不一样的。
9.robots.txt 会暴露网站相关目录,写 robots.txt 时要考虑到这一点。
10. 有些 seo 会将档案直接备份在站群服务器中,档案是 .zip 格式,然后在 robots.txt 中遮蔽。个人不建议这样,这就是明显告诉人家你的备份档案位置。建议档案和资料都备份到本地。
11. 一些特殊规则对比:
①Disallow: /和 Disallow: / ab (/后面有个空格,再有 ab) 是一样的,/后面多了个空格,蜘蛛之认空格前面那一段,就是 Disallow: /,所以两个都是遮蔽整站的。
②Disallow: /ab 和 Disallow: /ab*是一样的。比如两个都能遮蔽 http://域名/ab,http://域名/abc,http://域名/abcd 。
③Disallow: /ab/和 Disallow: /ab 是不一样的。很明显,Disallow: /ab 范围更广,包含了 Disallow: /ab/。因为 Disallow: /ab/只能遮蔽 http://域名/ab/,http://域名/ab/…. 这样的路径,也就是只能遮蔽 ab 目录和 ab 目录下的档案不被蜘蛛抓取。