DedeCms 是公認的在SEO優(yōu)化方面做得做好的CMS,可能很多人會說,優(yōu)化是靠個人的,與CMS無關,這其實也不盡正確,因為必須程序提供商提供足夠的工具才有可能,舉例說:如果某CMS的欄目設置連關鍵字、摘要都沒有,何來優(yōu)化之說?本文以DedeCMS為例,深入說明SEO優(yōu)化方面的攻略
DedeCms 是公認的在SEO優(yōu)化方面做得做好的CMS,可能很多人會說,優(yōu)化是靠個人的,與CMS無關,這其實也不盡正確,因為必須程序提供商提供足夠的工具才有可能,舉例說:如果某CMS的欄目設置連關鍵字、摘要都沒有,何來優(yōu)化之說?本文以DedeCMS為例,深入說明SEO優(yōu)化方面的攻略,本文所說的優(yōu)化絕對不是那種含作弊的SEO策略,而是針對網(wǎng)站自身的內容,提高搜索引擎對內容的識別能力。
1、全局優(yōu)化
在DedeCms的系統(tǒng)參數(shù)配置中,包含了“網(wǎng)站版權、編譯JS等底部調用信息;站點默認關鍵字;站點描述”這些項目,其實必須注意的是站點默認關鍵字、站點描述的設置必須合理。
(1) 站點名稱和關鍵字是搜索引擎識別你這個網(wǎng)站內容的關鍵,其中在主頁的網(wǎng)站名稱可以手工填寫,在標題的地方適當增加一些關鍵字。
(2) 網(wǎng)站摘要(站點描述)必須要合理,最理想的寫法應該是“某某網(wǎng)站是關于某某方面的內容的網(wǎng)站”這里千萬別堆砌關鍵字,否則可能會被搜索引擎視為作弊或放棄使用你指定的這些描述作為站點描述。
(3) 對于新站而言,為了提高網(wǎng)站名的權重,還可以在底部放一些“某某網(wǎng)站的內容來自何處或版權所有之類”這里也不能堆砌關鍵字或僅突出某一兩個關鍵字,僅是為了提高網(wǎng)站名的權重。
2、欄目標題與關鍵字、摘要
對于有耐心的用戶,在新建欄目時最好把欄目的關鍵字填寫完整,如果沒有耐心的,不妨用下面的方法。
在建好所有欄目后,到系統(tǒng)->SQL命令行工具的地方運行下面的SQL:
代碼如下:
Update `dede_arctype` set
keywords=Conact(typename, ',', typename, ',', '和內容相關的關鍵字,如:教程、新聞、資源等'),
description=Conact('本欄目主要是關于', typename, ',', typename, ',', '和內容相關的關鍵字,如:教程、新聞、資源等', '方面的內容');
3、文章內容
DedeCms 提供了自動關鍵字提取、自動摘要等各類工具來進行文檔的優(yōu)化,不過有部份用戶往往習慣對本站所的文章都用同樣的關鍵字、同樣的摘要,這種方法是極不可取的,如果在沒法獲得關鍵字和摘要的情況下,寧可放棄這些描述,讓搜索引擎自動生成。
使用DedeCms時,需要進行如下更改:
(1) 對于多頁的文章 DedeCms 的標題默認沒有1、2、3之類的標識,這里可以打開 arc.archives.class.php
在大約是 350 行左右的地方找到“//循環(huán)生成HTML文件”,然后把for循環(huán)起始的地方改為
代碼如下:
for($i=1;$i<=$this->TotalPage;$i++)
{
if($this->TotalPage > 1) {
$this->Fields['tmptitle'] = (empty($this->Fields['tmptitle']) ? $this->Fields['title'] : $this->Fields['tmptitle']);
$this->Fields['title'] = $this->Fields['tmptitle']."($i)";
}
這樣就能使多頁文章的標題帶有(1)、(2)、(3).... 的標識了。
(2) 如果標題進行了修改,那么每頁所對應該的摘要必須也要進行修改,否則會被搜索引擎認為描述是相同引發(fā)被懷疑堆疊關鍵字的警告。
打開 arc.archives.class.php 找到 function ParseDMFields($pageNo,$ismake=1)
把
代碼如下:
if($this->SplitPageField!='' && isset($this->Fields[$this->SplitPageField]))
{
$this->Fields[$this->SplitPageField] = $this->SplitFields[$pageNo - 1];
}
改為
代碼如下:
if($this->SplitPageField!='' && isset($this->Fields[$this->SplitPageField]))
{
$this->Fields[$this->SplitPageField] = $this->SplitFields[$pageNo - 1];
$this->Fields['description'] = trim(ereg_replace("[\r\n\t]", ' ', cn_substr(html2text($this->Fields[$this->SplitPageField]), 200)));
}
這樣文檔每頁的摘要便有所區(qū)別。
4、關于目錄式鏈接
DedeCms V5.3中,為了兼容某些人配置的WEB服務器,對欄目鏈接強制指向了默認頁,即是顯示為 typedir/index.html ,對于某些用戶可能希望指定"typedir/", 對于SEO而言,這確實有利于體現(xiàn)出網(wǎng)站的目錄結構,因此這樣想法是合理的,如果你的網(wǎng)站結構比較簡單(如不使用一些公司簡介之類的非默認頁鏈接),可以按下面方式修改。
打開文件 channelunit.func.php 找到 function GetTypeUrl($typeid,$typedir,$isdefault,$defaultname,$ispart,$namerule2,$moresite=0,$siteurl='',$sitepath='')
把前面一段
代碼如下:
if($isdefault==-1)
{
//動態(tài)
$reurl = $GLOBALS['cfg_phpurl']."/list.php?tid=".$typeid;
}
else if($ispart==2)
{
//跳轉網(wǎng)址
$reurl = $typedir;
return $reurl;
}
else
{
if($isdefault==0 && $ispart==0)
{
$reurl = str_replace("{page}","1",$namerule2);
$reurl = str_replace("{tid}",$typeid,$reurl);
$reurl = str_replace("{typedir}",$typedir,$reurl);
} else {
$reurl = $typedir.'/'.$defaultname;
}
}
改為:
代碼如下:
if($isdefault==-1)
{
//動態(tài)
$reurl = $GLOBALS['cfg_phpurl']."/list.php?tid=".$typeid;
}
else if($ispart==2)
{
//跳轉網(wǎng)址
$reurl = $typedir;
return $reurl;
}
else
{
if($isdefault==0 && $ispart==0)
{
$reurl = str_replace("{page}","1",$namerule2);
$reurl = str_replace("{tid}",$typeid,$reurl);
$reurl = str_replace("{typedir}",$typedir,$reurl);
} else {
if(!isset($cfg_need_dfname) || $cfg_need_dfname=='N') $reurl = $typedir.'/';
else $reurl = $typedir.'/'.$defaultname;
}
}
關鍵在于:“if(!isset($cfg_need_dfname) || $cfg_need_dfname=='N') $reurl = $typedir.'/';”這一句
不過大家一定需注意一個問題,目錄必須用 typedir/ 的形式,否則在IIS如果用 typedir不帶"/"的形式,IIS會通過303永久重定向到 typedir/ ,讓搜索引擎又多費了一重功夫,這顯然不搜索引擎喜歡的,也不是我們想看到的。
5、重復文檔標題
不管任何情況,盡量減少你網(wǎng)站出現(xiàn)的重復文檔,DedeCms本身也提供了重復標題檢測處理的功能,在網(wǎng)站被搜索引擎大量收錄前,必須排除網(wǎng)站上重復的文檔,如果重復量過大,甚至會被認為你的網(wǎng)站是作弊的。
綜上總總,DedeCms 自身為SEO提供了各類的工具,不愧是SEO優(yōu)化做得最好的CMS,在默認模板上也有體現(xiàn),但由于兼容性原因,官方也沒開放所有符合SEO的方案,如果你做的網(wǎng)站進行上面所說的修改后,并不會影響到運行,這樣將會更完美。