作者:Dflying Chen (http://dflying.cnblogs.com/)
随着Web 2.0概念的发展以及Web上内容的不断丰富,搜索引擎逐渐成了Internet的统治者。毫不疑问的说,搜索引擎对您站点的重视程度(排名高低,收录程度等)直接决定了用户的重视程度,也就是决定了您的网站的成败。由此也引出了SEO这个专业名词,并成为了目前每个站长必须考虑的问题。关于SEO的概念介绍/重要程度/基本知识/常用作法,Internet上的资源非常丰富,请各位在Google或Baidu中搜索。本文也不会探讨SEO的通用做法,例如交换链接,在知名网站上留评论等。本文仅旨针对博客园中建立的Blog给出如下一些简洁可行的SEO办法,让我们的辛勤劳动得到更多人的关注,下列条目基本按照重要程度排名。
内容,还是内容
虽然本文讨论的内容是SEO,但我还是要把内容放在最前面。我们要有这样的基本概念:搜索引擎是为用户服务的,而用户实际感兴趣的是内容。搜索引擎AI(人工智能)的局限性让它不能与真正的人类判断能力相媲美,这也就是SEO出现的根本原因(钻空子)。然而,搜索引擎出现的本意以及其生存的压力让其不停的优化算法/提高效率使其不断地追赶人类认知能力,以期提供人类最合理/有用的搜索结果。由此,SEO也有如下的common sense:不要太低估搜索引擎的智慧,例如添加过多的关键词,内容中隐藏与背景颜色一样的关键词等等纯粹作弊的手段绝对不要使用。搜索引擎对此深恶痛绝,而作为对此的惩罚,您的网站往往会永远在该搜索引擎中消失。
回到内容上,具体的做法很简单:提高技术水平,用心写高质量的文章并保持原创。
选择适当的Blog名称以及域名
Blog的域名(xxx.cnblogs.com中的xxx)将出现在您一切页面的URL中,Blog的名称也将直接出现在您Blog的每一个页面的<title>标签中。URL和<title>标签中的内容是搜索引擎最关注的部分,所以选择一个好的Blog名称和相应的域名将是非常重要的。例如,如果我的Blog中只讨论ASP.NET的内容,那么Blog名称可以为Dflying的ASP.NET分享;如果我的Blog是为了提升我自己的影响力,那么就可以直接叫做Dflying Chen。同时,还需要考虑的是Blog不是商业网站,它有很强的个人展示成分在其中,所以这种针对专门网站的SEO办法在大多数时间不是很容易实现,例如,您很难得到aspnet.cnblogs.com这样的URL(因为没有人愿意用aspnet这硬梆梆的词汇作为自己的用户名)。但也无需过度追求,可以结合固然好,不可以也没必要强求。
在子标题中用<h1>包裹重要文字
子标题是网站标题下面一段介绍性文字。也是搜索引擎抓取您页面时得到的很靠前的部分。一张页面对于搜索引擎而言,排在前面的内容被认为是相对重要的,这一点在下一条中有更多的解释,这里不赘。同时,<h1>的语义是代表网页上的内容的标题,搜索引擎对此也自然是非常的重视。十分幸运,博客园的Blog提供了我们自定义子标题的功能,更幸运的是其中可以插入HTML标记。这样您就可以在其中写入一些关键词,并用<h1>标记包含起来。至于<h1>往往会显示成较大字体的问题,我们可以用CSS(写在自定义CSS中)来控制。例如,对于我的Blog,子标题中有如下一段<h1>:
<h1>Atlas, ASP.NET, .NET, Javascript, PHP, and C#</h1>
相应的CSS让其显示成正常文字大小:
.headerText h1{
font-size: 11px;
margin: 0;
padding: 0;
font-weight: normal;
}
选择好的模板
目前博客园提供了相当多的模版供我们选择。作为用户,我们自然选择漂亮的,而作为搜索引擎,它只是将页面简单认为是一个HTML String。对于Blog而言,页面基本由导航栏部分和内容部分组成。显然,对于网站的浏览者,打开您Blog中某个页面之后看到的是一幅二维的图像,他自然明白内容部分是最重要的,而对于搜索引擎,将过滤一切的Style和图片,得到的仅仅是一维的String,它只能通过内容在这个String中出现的顺序来估计其重要性。所以,页面HTML中出现的顺序也应该是先内容,后导航栏,这样让搜索引擎的认识和用户的认识保持统一,以得到更好的页面抓取结果。遗憾的是,目前的Web开发技术(无论是Table还是CSS Layout)的局限性让开发人员更倾向于选择将导航栏放在HTML的前部位置。您可以通过查看源文件来看到页面的布局顺序并挑选正确的模版。
避免Meta中书写不必要的keyword
HTML中meta标记的内容曾是很多搜索引擎最看重的部分,甚至有些只通过分析其中内容建立网页索引。然而后期过多的SEO人员在其中堆砌了大量不相关信息,严重的影响了搜索引擎分析结果的准确性,以致直接导致目前的大多数浏览器干脆忽略了meta标记,甚至如果您填写了太多的不相关关键字,搜索引擎会认为你在作弊而除名,这样就太不值得了。博客园的Blog虽然提供了自定义meta标记中description和keyword的功能,我的建议是无需关心它们。
为每篇文章指定明确的标题
我们知道,Blog是由一篇篇文章组成的,每篇文章中最重要的是标题,这些搜索引擎也知道(通过分析HTML中的<h2>等标记),加上博客园中会把文章的标题放在页面的<title>中,更是让搜索引擎认为它是非常重要的。所以,为文章取一个有意义的名字是非常有必要的。例如您在一篇文章中分享了如何在DataGrid的行编辑模式下将某个列显示为DropDownList(这也是一年前很热门的话题之一),一个较好的标题是在ASP.NET DataGrid的编辑行中显示DropDownList(四个关键词:ASP.NET,DataGrid,编辑行,DropDownList),而不是随随便便的取个名字DataGrid小技巧之类。
为每一篇文章指定EntryName (page name)
默认的,在发布文章时博客园会为您的帖子指定一个ID,这样该帖子的URL就变成了:http://dflying.cnblogs.com/archive/2006/04/29/389027.html之类,固然,作为Blog程序,这种ID是很容易理解的,也是高效的,但这样的URL并不是人类可读的(也不是搜索引擎可理解的),也就是说只凭这个URL我们并不能知道这个页面的内容。幸运的是,博客园的Blog系统提供了这个功能,在编辑文章的界面的高级选项下面有EntryName (page name)的选项,您可以输入一个有意义的文章名字,例如Check_Password_Strength_using_Custom_Atlas_Behavior,这样您的帖子地址就变成了http://dflying.cnblogs.com/archive/2006/05/16/Check_Password_Strength_using_Custom_Atlas_Behavior.html,如此人类和搜索引擎都可以通过URL这个最重要的部分充分判断出页面的内容。
在Windows Live Writer中设置:
注意,这里不支持中文,但是一个技巧:在中文前面加一个英文字母或单词就可以了。
每篇文章中添加至少一个指向本站内的链接
网站实在太多了,而内容却有限,所以很多网站都以转载为主要的内容来源,甚至出现了专门的“新闻采集系统”。其中比较道德的转载者会标出文章的出处,而好多干脆忽略,甚至特意除去了出处信息。您的一篇文章如果被十个较有影响力的网站“采集”(博客园的Blog往往会很容易得到这样的“照顾”),那么很可能在搜索引擎中您页面就排在了第11位,这是很尴尬的事情,我们也没有办法影响。然而如果在文章的内容中有对您站内的链接,那么这个链接一般会被保留,您就可以从这个链接得到潜在的排名提升(参见Google的PageRank原理)以及潜在的回访用户。
在每一页发布Google AdSense
作为国内用户,AdSense并不是很好的赚钱方式,但由于Google会通过抓取并分析页面的内容来选择投放的广告,所以这不乏为吸引搜索引擎注意的方法。虽然Google官方否定AdSense的抓取和Google收录抓取的关系,然而显然Google不会放弃这由投放广告而顺便得来的网页内容信息。我们也基本上可以肯定Google会利用这部分信息于搜索结果中的。您既可以自己申请成为AdSense Publisher,也可以在页面上显示博客园的广告,顺便为博客园做点贡献。