再议robots.txt和robots Meta标签的写法以及Sitemap的提交

robots.txt篇:

1、robots.txt是什么
搜索引擎使用网络蜘蛛spider程序自动访问互联网上的网页并获取网页信息,而robots.txt是一个纯文本文件,用来告诉网络蜘蛛spider(不仅限搜索引擎蜘蛛)本站中哪些位置允许抓取,哪些位置不允许抓取。spider在访问一个网站时,会首先会检查该网站的根域下是否有一个叫做robots.txt的纯文本文件,这个文件用于指定spider在您网站上的抓取范围。
通过设置robots.txt,可以阻止蜘蛛们爬行站点一些不希望被索引的页面,如网站后台、某些图片、某类文件或某个文件,甚至直接屏蔽掉某个搜索引擎(例如:淘宝的robots.txt屏蔽了百度),从而提高蜘蛛的工作效率,把大量精力都放到索引政正常页面上去。

2、怎么设置和放置robots.txt?
建立robots.txt文件并放在网站根目录;如果域名指向到了次目录(如虚拟主机这种同一服务器下很多网站的),在次目录放置的robots.txt文件只对此域名有效。而且,文件名必须小写,如Robots.txt、roBots.txt、robots.TXT都是错误的。

3、robots.txt应该怎么写?
同时包含2个域,“User-agent:”和“Disallow:”,每条指令独立一行。
(1)User-agent:
指定允许哪些蜘蛛抓取,如果给出参数,则只有指定的蜘蛛能够抓取;如值为通配符“*”号,代表允许所有蜘蛛抓取。如:
User-agent: Googlebot
只允许Google的蜘蛛抓取;
User-agent: *
允许所有蜘蛛抓取。
注意:User-agent必须出现在第一行(有意义的行,注释除外),首先声明用户代理。
(2)Disallow:
指定禁止蜘蛛抓取的目录或文件,如:
Disallow: /help.php
禁止抓取根目录下help.php文件;
Disallow: /admin/
禁止抓取根目录下的admin子目录中任何内容;
Disallow:
值为空时,表示不限制,蜘蛛可以抓取站内任何内容。
如果需要指定多个目录或文件,可以用多个“Disallow: 文件或目录名”来指定,但必须每一项单独一行(例如google的robots.txt就很夸张)。

4、robots.txt需要注意的几个问题:
robots.txt文件中任意一行Disallow的值为空,其他指定的项都将失效,整站允许User-agent指定的蜘蛛抓取;robots.txt文件中允许使用注释,以“#”开头的内容被认作注释;但注释最好独立成一行,尽量不要加在参数后面,如“Disallow: /admin/ #manage dir”,某些蜘蛛可能将注释当作值的一部分。
尽量不要在一行的前面出现空格,如“ Disallow: /”,可能某些蜘蛛无法正确读取。
推荐一个robots.txt检查工具:http://tool.motoricerca.info/robots-checker.phtml

5、看几个来自百度的例子:
1)禁止百度索引,淘宝就这么写的
User-agent: Baiduspider
Disallow: /

2)禁止百度抓取JPG图片
User-agent: Baiduspider
Disallow: .jpg$
3)仅允许访问以".htm"为后缀的URL。
User-agent: *
Allow: .htm$
Disallow: /
4)禁止某些目录,但允许其目录下某些文件被索引
User-agent: *
Allow: /cgi-bin/see
Allow: /tmp/hi
Allow: /~joe/look
Disallow: /cgi-bin/
Disallow: /tmp/
Disallow: /~joe/

总结下来,/代表全部,*代表任意个字符,$代表强制结束符,禁止某个文件夹或者文件的时候要写上/,但禁止一类文件的时候直接写.***即可。

 

robots Meta标签篇:

1、robots Meta标签是什么?
robots Meta标签放在网页中,一般用于部分网页需要单独设置。与robots.txt的功能是一样的,但是部分搜索引擎不支持robots Meta标签,所以,还是要尽可能的使用robots.txt文件来限制抓取

2 、怎么设置和放置robots Meta标签?
必须放在<head>和</head>之间,格式:<meta name=”robots” content=”index,follow” />

3、robots Meta标签常用参数及写法?(Googlebot支持的参数)
1)index,follow:允许抓取本页,允许跟踪链接。也可以写成<meta name=”robots” content=”all” />
2)index,nofollow:允许抓取本页,但禁止跟踪链接。(这不同于超链接上的nofollow属性,那个属性只是组织索引单独的链接)
3)noindex,follow:禁止抓取本页,但允许跟踪链接。
4)noindex,nofllow:禁止抓取本页,同时禁止跟踪本页中的链接。也可以写成<meta name=”robots” content=”none” />
5)noarchive:不保存该页面的网页快照。(百度也支持这个参数)例如:
防止所有搜索引擎显示您网站的快照 <meta name="robots" content="noarchive">
允许其他搜索引擎显示快照,但仅防止百度显示 <meta name="Baiduspider" content="noarchive">
6)nosnippet:不在搜索结果中显示该页面的摘要信息,同时不保存该页面的网页快照。
7)noodp:在搜索结果中不使用Open Directory Project中的描述信息作为其摘要信息。

4、如果同时使用robots.txt和robots meta标签会如何?
如果同时使用了robots.txt文件和robots meta标签,如果robots.txt和meta标签有冲突,googlebot将使用限制更严的。具体来说:如果你在robots.txt里禁止了某一页,Googlebot永远也不会去索引那一页,也不会读取那一页的任何标识。如果你在robot.txt中允许,但是在页面中使用 meta标签对其进行限制,那么Googlebots会访问那一页,读取里面的标签,但不会对其进行索引。

5、如果设置了很多robots meta标签会如何?
1)建议把所有的Meta标签内容放在一个meta中。这将使得meta标签更易于读取并降低发生错误的概率。
例如:<META NAME="ROBOTS" CONTENT="NOINDEX, NOFOLLOW">
2)如果一行包含对个meta标签,我们将会累加标签的内容,例如,会将
<META NAME="ROBOTS" CONTENT="NOINDEX">
<META NAME="ROBOTS" CONTENT="NOFOLLOW">
理解为:<META NAME="ROBOTS" CONTENT="NOINDEX, NOFOLLOW">
3)如果内容的数值有冲突,将使用最严格的那个。所以,如果有个页面包含下面的meta标签:
<META NAME="ROBOTS" CONTENT="NOINDEX">
<META NAME="ROBOTS" CONTENT="INDEX">
我们将只遵守noindex的数值。

 

Sitemap 篇:
1、如何向Google、Yahoo!、MSN、Ask和百度等搜索引擎提交Sitemap?
搜索引擎都遵循一样的Sitemap协议,baidu Sitemap内容和形式可以和Google Sitemap完全一样。但因为百度还没开通类似Google 网站管理员工具的提交后台,所以,我们需要采用以下方式提交"baidu Sitemap" 。

向Google提交网站地图Sitemap: 通过网址http://www.google.com/webmasters管理提交;
向Yahoo!提交网站地图Sitemap: 通过网址http://siteexplorer.search.yahoo.com管理提交;
向MSN提交网站地图Sitemap: 用URL直接提交:http://api.moreover.com/pingu=http://your.domainname/sitemap.xml这是向MSN直接提交网站地图的后门URL
向百度Baidu提交网站地图Sitemap: 现在百度不支持Sitemap,但可通过http://www.baidu.com/search/url_submit.html来提交你的网址。百度会自行搜索,更新速度很快。

2、将XML格式Sitemap地址放到robots.txt中
这么做的作用是,如果搜索引擎蜘蛛能够识别此行,就能快速获知网站的XML地图文件地址,并将地图文件作为一个URL参考进行高效索引
还是看google的robots.txt中最后面写了好几个Sitemap
Sitemap: http://www.google.com/sitemaps_webmasters.xml

 

附各大搜索引擎的蜘蛛名称
 
Google的蜘蛛:
1) Googlebot:从Google的网站索引和新闻索引中抓取网页
2) Googlebot-Mobile针对Google的移动索引抓取网页
3) Googlebot-Image:针对Google的图片索引抓取网页
4) Mediapartners-Google:抓取网页确定 AdSense 的内容。只有在你的网站上展示 AdSense 广告的情况下,Google才会使用此漫游器来抓取您的网站。
5) Adsbot-Google:抓取网页来衡量 AdWords 目标网页的质量。只有在你使用 Google AdWords 为你的网站做广告的情况下,Google才会使用此漫游器。
百度(Baidu)蜘蛛名称:Baiduspider
雅虎(Yahoo)蜘蛛名称:Yahoo Slurp
有道(Yodao)蜘蛛名称:YodaoBot
搜狗(sogou)蜘蛛名称:sogou spider
MSN的蜘蛛名称:Msnbot

 

本文参考资料:

1、google网站质量指南:使用robots.txt 文件拦截或删除网页

2、百度屈指可数的有点意义的搜索帮助中心:禁止搜索引擎收录的方法

发表评论