我想針對這個問題可以更寬泛的談一下CMS系統(content management system,內容管理系統)和SEO的關系。
現在很多網站都是由CMS系統建成的,電子商務網站,新聞類網站還有博客等等,絕大部分都是用CMS系統做成的。CMS優點很多,做的不好的話缺點也不少。
使用CMS系統制作頁面和管理網站都變得容易,但缺點是大部分CMS系統都不夠搜索引擎友好。
我覺得一個好的CMS系統在搜索引擎優化方面應該做到以下這些功能,讀者在選擇系統的時候可以注意看有沒有這些功能,開發CMS系統的讀者也可以做參考。
URL結構
這是CMS系統可能產生的最大問題。因為要從數據庫中提取內容,沒有經過處理的URL都是很長,帶有問號。比如
http://www.domain.com/index.php?cat=3&au=4&id=38480
這種URL很難被搜索引擎抓取,應該通過mod_rewrite等手段改寫成靜態URL。比如
http://www.domain.com/seo/cms-and-seo.html
對英文網站,URL中的目錄名和文件名可以從文章標題中提取,或者允許用戶自己定義。對中文網站來說,最好的方法就是由用戶自己定義。
按編號命名目錄名和文件名也可以。比如
http://www.domain.com/cat3/au4/38480.html
Session ID
不少電子商務網站都會對所有訪客自動產生Session ID,這也十分不可取。因為搜索引擎spider每次來的時候都會得到一個不同的Session ID,這樣同一個頁面就會產生多種URL,造成復制內容網頁。
如果需要的話,應該是客戶登錄以後再產生Session ID,對未登錄的一般訪問完全沒有必要產生一個Session ID。
網頁標題,關鍵詞和描述標簽
CMS系統應該在後台允許客戶輸入自定義的網頁標題標簽title tag,關鍵詞標簽keywords tag和描述標簽description tag。
對大的網站來說,用戶自定義每個網頁的標題,關鍵詞和描述標簽,比較困難,工作量太大。但是至少對首頁和頻道首頁應該允許用戶自定義,對更深層的產品頁可以給用戶兩種選擇,既可以自定義,也可以從產品名稱和描述中自動提取。
在自動產生時,網頁標題就應該是產品名,有的時候也可以按”產品名-頻道名-網站名”順序全部加上。但不應該是”網站名-頻道名-產品名”。
關鍵詞和描述標簽應該結合產品名和產品的其他特性生成,如品牌,作者,型號等。
要注意的是,每一個網頁的標題,關鍵詞和描述標簽都應該不一樣,千萬不要做成一個頻道裡所有網頁標題全是一個。
CSS和JS
CSS和JS都應該放為外部文件。不管是由CMS系統生成的網站,還是普通網站都常會犯的一個錯誤就是,把CSS和JS放在網頁的最前面,把真正的內容推到了很後面。
導航和網站地圖
整個網站應該非常清楚的形成樹型結構,最好用文字導航系統,而不是圖片。系統也要自動生成網站地圖。
導航系統應該清楚地連向首頁和各目錄首頁。
生成的HTML碼
生成的HTML碼應該干淨,盡量減少冗余的編碼,應該在不同的浏覽器下充分試驗兼容性,頁碼應該符合W3C標准。
應該在適當的地方使用不同的heading,比如文章標題,目錄或頻道名,使用黑體,斜體文字來強調一些地方。