作为一个小站的站长,与研究百度、谷歌等搜索引擎是比不可少的。而robot.txt则是与搜索引擎打交道的其中一部分,熟悉robot.txt的写法,对于小站长来说十分有必要。在这里,怡然博客结合自己的建站时遇到的问题,做个抛砖引玉,希望大家在这里进行探讨。
首先,我们先谈些小知识。
1、并不是所有的网站都要建立robot.txt文件。只有当网站存在不希望被搜索引擎收录的内容时,才需要使用robots.txt文件。如果您希望搜索引擎收录网站上所有内容,请勿建立robots.txt文件。当robot.txt不存在的时候,搜索引擎蜘蛛就会直接爬链接。
2、robot.txt文件只能放在网站的根目录下,放在其他地方不能被发现。
3、每个站点只能够有一个robot.txt。注:二级域名被搜索引擎视为一个新的站点。
4、文件名“robots.txt”为小写字母,其他如Robots.txt或robots.Txt等都是不正确的写法,命名错误将会被搜索引擎的蜘蛛忽略。
其次,robot.txt的书写语法。
Robot.txt文件的书写语法比较比简单,主要包括了User-Agent、Disallow、Allow这三个命令,其中有部分的搜索引擎不止Allow,但谷歌、百度等都支持,可以放心使用。
1、User-agent:
其后面接的是具体的搜索引擎的蜘蛛的名字。如果其值设置为“*”,则表示对任何蜘蛛都有效。在"robots.txt"文件中,可以有多条User-agent记录,但“User-agent:*”这样的记录只能有一条。如果在"robots.txt"文件中,加入"User-agent: SomeSpider "和若干Disallow、Allow行,那么名为"SomeSpider"只受到"User-agent: SomeSpider "后面的Disallow和Allow行的限制。
2、Disallow:
不希望被访问的URL或者文件夹,可以是完整的路径,也可以是路径的非空前。robots.txt文件中,至少要有一条Disallow记录。Disallow的内容对大小写敏感,书写时要注意大小写。
3、Allow:
可以被访问的一组URL,与Disallow项相似,这个值可以是完整的路径,也可以是路径的前缀,Allow同样对大小写敏感。
4、(1)需要特别注意的是Disallow与Allow行的顺序是有意义的,robot会根据第一个匹配成功的Allow或Disallow行确定是否访问某个URL。(2)部分蜘蛛支持使用通配符"*"和"$"来模糊匹配url。其中"*" 匹配0或多个任意字符,"$" 匹配行结束符。
再次,robot.txt的具体写法举例。
1、禁止所有搜索引擎访问网站的任何部分
User-agent: *
Disallow: /
2、允许所有的搜索引擎访问
User-agent: *
Disallow:
或者
User-agent: *
Allow: /
或者直接建一个空的robot.txt文件。
3.、仅禁止某种蜘蛛访问,例如谷歌
User-agent: Googlebot
Disallow: /
4、仅允许某种蜘蛛访问,例如谷歌
User-agent: Googlebot
Disallow:
User-agent: *
Disallow: /
5、禁止搜索引擎访问网站的特定目录
User-agent: *
Disallow: /mulu1/
Disallow: /mulu2/
Disallow: /mulu3/
注意:这几个目录必须要分开来写,不能写成Disallow: /mulu1//mulu2//mulu3/
6、禁止某个搜索引擎访问某个目录,但允许其他搜索引擎访问。
User-agent: Googlebot
Disallow: /mulu/
User-agent: *
Disallow: /mulu1/
上例中表示仅禁止谷歌访问mulu这个目录,同时禁止所有搜索引擎访问/mulu1/这个目录。
6、允许访问特定目录中的部分url
User-agent: *
Allow: / mulu1/a
Allow: / mulu2/b
Allow: / mulu3/c
Disallow: /mulu1/
Disallow: /mulu2/
Disallow: /mulu3/
7、使用"*"限制访问url
(1)禁止访问/mulu1/目录下的所有以".htm"为后缀的URL(包含子目录)。
User-agent: *
Disallow: /mulu1/*.htm
(2)禁止访问"mulu1"开头的子目录
User-agent: *
Disallow: /mulu1*/
8、使用"$"限制访问url
(1)仅允许访问以".htm"为后缀的URL。
User-agent: *
Allow: .htm$
Disallow: /
(2)禁止访问以.asp 结尾的网址:
User-Agent: *
Disallow:/*.asp$
9、禁止访问网站中所有的动态页面,即禁止访问包含问号(?)的网址
User-agent: *
Disallow: /*?*
10、禁止搜索引擎抓取网站上所有图片
User-agent: *
Disallow: /*.jpg$
Disallow: /*.jpeg$
Disallow: /*.gif$
Disallow: /*.png$
Disallow: /*.bmp$
上述写法表示,仅允许抓取网页,禁止抓取任何图片。
11、仅允许搜索引擎抓取网页和某种格式的图片,如.gif格式图片
User-agent: *
Allow: /*.gif$
Disallow: /*.jpg$
Disallow: /*.jpeg$
Disallow: /*.png$
Disallow: /*.bmp$
最后,谈谈针对博客seo robot.txt的一些写法。
由于怡然博客这个科技博客是使用wordpress建立的,这里谈的仅仅是关于wp。
1、 禁止访问所有以wp-开头的文件夹,但/wp-content/uploads/除外。
User-agent: *
Allow: /wp-content/uploads/
Disallow: / wp-*/
2、禁止访问所有的feed,feed中的内容都是重复了正文的。爬feed爬多了,网页的内容就会爬少了。
User-agent: *
Disallow: /feed
Disallow: /comments/feed
Disallow: /*/*/*/feed
后面不加“/”表示不仅仅禁止抓取feed目录,还包括了所有的feed的网页,如feed.htm等。
3、禁止抓取不存在的网页。如果你的域名之前曾经建过站,那么一般都会存在一些你网站不存在的网址。这里建议在建站之前像搜索引擎提交删除此域名下的所有索引。(谷歌可用,百度尚不清楚)。当你建站后,就不建议用这招了。建议直接用robot禁止访问。
4、补充一下遗留的。
User-agent: *
sitemap: http://www.domain.com/sitemap.xml
暂无评论