写这篇blog是为了推广一个robots meta tag: noindex,follow,如果你是webmaster,使用wordpress之类cms的用户,或者论坛、cms软件的作者,应该特别关注一下这个meta tag。
什么是Meta Tag
Meta Tag是HTML页面<head>内部的一个“子元素”,通常具有两个属性:name和content,例如描述页面关键字的meta tag是这样的:
<meta name="keywords" content="用逗号分隔的关键子列表" />
name属性的其他常见值还有description,下面重点介绍另一个常见值:robots
什么是robots Meta Tag
robots Meta Tag是robots.txt之外的另一种更为灵活的定义搜索引擎爬虫行为的方法。robots.txt的标准目前只能定义那些设计时已知的页面(或目录)是否可以被索引,而robots Meta Tag则可以定义当前页面(包括CMS软件生成的、设计时不知道具体URL的页面)更为灵活的索引方式,常见的有:
- noindex,nofollow
即不索引、不提取链接,对于Google来说等价于在robots.txt中屏蔽,不同的是Google会不时访问该页面,这种组合适合CMS软件(还包括blog、forum等)屏蔽某个页面(上传robots.txt时还不知道这个页面的URL)
- index,nofollow
即索引该页面,但不考虑该页面上的链接(即不计算该页面贡献的外部链接)。比如wikipedia为了防止abuse,最近为所有的外站链接都加上了rel="nofollow"属性,其实更好的方式是使用robots meta tag: index,nofollow。
- noindex,follow
跟上面的相反,不索引该页面,但继续爬取该页面上面的链接。听起来很怪异的需求,但这个组合需要特别推广,以解决webmaster抱怨“页面不收录”、用户抱怨“关键字搜不准”之类的问题(用户点击某个搜索结果,看到的只是一个包含关键字的链接列表,而不是该链接对应的页面 - 而该页面因为位置太深等原因未被收录)。
什么时候需要使用noindex,follow
一个页面使用了noindex,follow作为Robots Meta Tag后,该页面将不会被用户从搜索引擎上搜到。隐藏在背后的价值是:该网站那些本该被用户搜到的页面不会因为跟该页面有重复内容而被搜索引擎忽略。
如果一个页面满足以下条件之一,该页面通常需要使用noindex,follow作为Robots Meta Tag:
- 该页面是网站正文页面的“链接目录”的第N页,N>1。“链接目录”是指该页面只有指向该网站其他页面的链接,并且没有链接的说明(见下面的例子)
- 该页面是网站正文页面的“缩略目录”,无论是该目录的第几页。“缩略目录”是指该页面为每个链接包含了简短的描述,而描述文字属于正文页面文字的一部分。
下面举例说明:
总结
- 像WordPress这样产生缩略目录的CMS产品,需要给所有目录页面(包括Archive、Category、Search)使用noindex,follow
- 论坛程序需要在每个版面第2页开始使用noindex,follow
- 如果网站正文页面进入了Google的Supplemental索引,应该检查是否有“缩略目录”的存在
- 目前百度还不支持Robots Meta Tag
- Google关于Robots Meta Tag的介绍: http://www.google.com/support/webmasters/bin/answer.py?answer=61050