作者: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這個最重要的部分充分判斷出頁面的內容。
每篇文章中添加至少一個指向本站內的連結
網站實在太多了,而內容卻有限,所以很多網站都以轉載為主要的內容來源,甚至出現了專門的“新聞採集系統”。其中比較道德的轉載者會標出文章的出處,而好多乾脆忽略,甚至特意除去了出處資訊。您的一篇文章如果被十個較有影響力的網站“採集”(部落格園的Blog往往會很容易得到這樣的“照顧”),那麼很可能在搜尋引擎中您頁面就排在了第11位,這是很尷尬的事情,我們也沒有辦法影響。然而如果在文章的內容中有對您站內的連結,那麼這個連結一般會被保留,您就可以從這個連結得到潛在的排名提升(參見Google的PageRank原理)以及潛在的回訪使用者。
在每一頁發布Google AdSense
作為國內使用者,AdSense並不是很好的賺錢方式,但由於Google會通過抓取並分析頁面的內容來選擇投放的廣告,所以這不乏為吸引搜尋引擎注意的方法。雖然Google官方否定AdSense的抓取和Google收錄抓取的關係,然而顯然Google不會放棄這由投放廣告而順便得來的網頁內容資訊。我們也基本上可以肯定Google會利用這部分資訊於搜尋結果中的。您既可以自己申請成為AdSense Publisher,也可以在頁面上顯示部落格園的廣告,順便為部落格園做點貢獻。