現(xiàn)在做論壇最常用是的是Discuz論壇程序,那么想要做好一個BBS論壇,首先是要解決用戶的兩大痛點,一是論壇的訪問速度,二是能提供用戶所關(guān)心的內(nèi)容以及解決方案或是資料下載。為此,成都SEO達人為大家免費提供以下論壇的優(yōu)化方案。
論壇速度優(yōu)化
如果訪客進入論壇,感覺論壇打開速度慢了,當(dāng)然是直接關(guān)掉網(wǎng)頁,馬上離開,所以做論壇性能方面的優(yōu)化非常重要,就像你給一個女孩子的第一印象,那是不言而喻的事。對大型論壇網(wǎng)站優(yōu)化方面更為明顯一些。
論壇速度優(yōu)化的作用:
1、加強用戶體驗(再好的網(wǎng)站,如果打開速度慢,10個人會有9個人選擇離開);
2、有利于蜘蛛爬行,利于網(wǎng)站被收錄(之前在博客分析過公式:抓取量 = 爬蟲總停留時間/ 單個頁面下載時間)
論壇速度優(yōu)化操作:
1、后臺--全局--性能優(yōu)化--論壇頁面緩存設(shè)置、服務(wù)器優(yōu)化和內(nèi)存優(yōu)化;
A、緩存論壇首頁有效期:0、緩存帖子有效期:0、緩存系數(shù):0最佳,當(dāng)然這個主要是針對訪問量比較小的論壇,如果您的網(wǎng)站訪問量很大,建議根據(jù)自己的需要來設(shè)置。
B、訪問量一般或者小的網(wǎng)站設(shè)置方法:是否優(yōu)化更新主題瀏覽量:否、查看數(shù)開啟防刷新:否、附件下載量延遲更新:是、禁止瀏覽器緩沖:否、JS 文件目錄:緩存目錄、開啟圖片延時加載:是,其他不用設(shè)置即可。
C、訪問量大或者非常大設(shè)置方法:是否優(yōu)化更新主題瀏覽量:是、查看數(shù)開啟防刷新:根據(jù)實際情況設(shè)置,建議設(shè)置為否。模塊更新時間區(qū)間:3-6點最佳。
2、后臺--全局--SEO設(shè)置--URL 靜態(tài)化
開啟偽靜態(tài)不僅對SEO有利,同樣可以加快網(wǎng)站內(nèi)容頁打開速度
3、后臺--應(yīng)用--插件
盡量減少使用不必要的插件,盡量使用成熟插件作者的插件
4、后臺--界面--風(fēng)格管理
模板這塊主要是JS的加載位置和CSS的代碼2塊比較重要,一樣建議大家使用比較成熟的模板作者的模板或者改動比較小的模板,盡量不要使用一些雜牌或者亂傳播下載的模板,很可能導(dǎo)致K站等問題。模板對應(yīng)網(wǎng)站速度和SEO的作用大家都是不可忽略的,希望各位站長的一定要重視起來。
5、后臺--站長--數(shù)據(jù)庫--優(yōu)化
數(shù)據(jù)表優(yōu)化可以去除數(shù)據(jù)文件中的碎片,使記錄排列緊密,提高讀寫速度。大家沒事就可以優(yōu)化下這塊,尤其是訪問量比較大的論壇,優(yōu)化這塊對論壇的速度也有一定的影響。
6、后臺--站長--用戶表優(yōu)化
通過用戶表優(yōu)化可以大幅度提高Discuz網(wǎng)站的性能
論壇網(wǎng)站SEO優(yōu)化操作
一、meta的優(yōu)化
discuz的后臺可以對meta信息進行設(shè)置,甚至可以添加自己的頭部信息,但它的設(shè)置都是針對于所有頁面的,全部頁面都擁有相同的keywords和description是成都SEO達人所不贊成的。
方案一:刪除meta,修改頁頭模板文件 templates/default/header.htm:將meta的keywords和description標(biāo)簽刪除。這兩個標(biāo)簽作用很小了,而且還有discuz自帶的一些無用信息,用得不好反而會有壞作用,因此寧缺勿濫。
方案二:定制meta,本部分實現(xiàn)了將內(nèi)容頁keywords設(shè)為帖子標(biāo)題,description為內(nèi)容前100字;也實現(xiàn)了主頁與各版列表頁meta的單獨設(shè)置(不同版的不同,同一版各列表頁相同)。
1.修改頁頭模板文件 templates\default\header.htm:將meta的keywords和description標(biāo)簽改為如下形式
<meta name="keywords" content="{$metakeywords}$seokeywords" />
<meta name="description" content="$seodescription" />
這里的$seokeywords、$seodescription就是后臺設(shè)置的那個值,下面說怎么定制這個值;
{$metakeywords}是網(wǎng)站的關(guān)鍵字,留下以后處理
2.內(nèi)容頁(viewthread)設(shè)置keywords為帖子標(biāo)題,description為內(nèi)容前100字
2.1修改 viewthread.php 文件:
在 include template('viewthread'); (更新:dz5.5為iinclude template($iscircle ?
'supesite_viewthread' : 'viewthread'); ) 語句的上面加入一行:
require_once DISCUZ_ROOT.'./include/bmt.thread.inc.php';
2.2創(chuàng)建 include/bmt.thread.inc.php 文件,內(nèi)容為
<?php
if(!defined('IN_DISCUZ')) { exit('Access Denied'); }
$seokeywords = strip_tags($thread['subject']); //關(guān)鍵字設(shè)為帖子的標(biāo)題
//(已更新: nethome 提出問題,當(dāng)啟用主題分類并允許按類別瀏覽時,原來代碼會有問題。所以加了標(biāo)簽過濾,本來在viewthread.php中改更好,為以后升級方便,還是放在這里吧,subject很短,不會影響效率)
$seodescription = current( $postlist );//description取文章內(nèi)容的前100字
$seodescription = mb_substr( $seodescription['message'],0,100,"gb2312" );
$seodescription = htmlspecialchars( strip_tags($seodescription) );
?>
*此處數(shù)字和個別函數(shù)適用于GBK版本
最后一行作用是過濾內(nèi)容中的html,否則在meta中會引起語法錯誤。先是去除HTML標(biāo)簽,但因為這里是前100字,有可能html標(biāo)簽已經(jīng)被截斷了,所以又用了htmlspecialchars轉(zhuǎn)義一下,有可能會有些垃圾信息。 當(dāng)然也可以在截取之前用strip_tags去除html標(biāo)簽,可能效率會差了。
*所以此處表達式您需要根據(jù)自己的情況修改。
大部分論壇網(wǎng)站目前用的是preg_replace( '/[^\xa1-\xff]/', '', $seodescription ),即過濾漢字以外的所在內(nèi)容,但這樣會損失英文關(guān)鍵字。特別說明,此處數(shù)據(jù)都是viewthread.php已取好的,所以不會產(chǎn)生額外的數(shù)據(jù)庫操作,只是做了字符串處理,不會引響效率。
3.列表頁(forumdisplay)設(shè)置不同的keywords和description
3.1修改 forumdisplay.php文件,在 include template('forumdisplay'); 語句上面添加
require_once DISCUZ_ROOT.'./include/bmt.forum.inc.php';
3.2創(chuàng)建 include/bmt.forum.inc.php 文件,內(nèi)容為
<?php
if(!defined('IN_DISCUZ')) { exit('Access Denied'); }
$seokeywords = $forum['name'];
$seodescription = $forum['description'];
switch ( $forum['fid'] ){
case 1: //此數(shù)字為版的ID號,不同版設(shè)置不同的meta
$seokeywords = 'key1,key2,...';
$seodescription = 'xxxx xxxx xxxx';
break;
case 2:
$seokeywords = 'key1,key2,...';
$seodescription = 'xxxx xxxx xxxx';
break;
?>
//更新:一般情況下可以不用switch和case,列表頁的關(guān)鍵字為版名,說明為版的說明,若要對某個版設(shè)置特殊的關(guān)鍵字和說明,可以設(shè)置case。這樣解決了版面很多時要設(shè)置很多case語
句,加快了程序執(zhí)行速度(不了解php,JAVA的 case進行了優(yōu)化,執(zhí)行很快)使用修改文件來實現(xiàn),每版的meta改起來不方便,感覺有些弱智,呵呵。但沒有改數(shù)據(jù)庫,用了兩個單獨的文件,修改了兩個文件也很簡單,這樣升級或遷移更方便吧,case雖然多了一些,但比起讀數(shù)據(jù)庫的記錄,速度應(yīng)該快很多
4.主頁meta
在后臺設(shè)置即可。(如果2、3不做,則meta也同主頁)
content的優(yōu)化
discuz有個archiver,一是URL容易收錄,二是頁面比較干靜,還有description會從正文中取內(nèi)容,但archiver沒有對內(nèi)容中[b][url]之類的解析,那些標(biāo)簽起不到作用,原樣顯示還會增加垃圾信息。
本部分主要做兩方面的優(yōu)化,一是去除內(nèi)容頁的無用信息,二是給標(biāo)題加上 <h1> 。加上偽靜態(tài)和上篇meta的優(yōu)化,效果就超過了archiver,因此可以在后臺禁用它,還減少了復(fù)制網(wǎng)頁。
論壇優(yōu)化核心操作
1.隱藏內(nèi)容頁(viewthread)中的無用信息:
修改內(nèi)容頁模板文件 templates/default/viewthread.htm:用<!--{if $discuz_uid}--> <!--{/if}-->將要隱藏的信息包含起來。準(zhǔn)確的說是當(dāng)游客(bots)訪問時,隱藏那些信息,當(dāng)用戶登錄后是正常的,所以不影響使用。 這些信息主要指的是左側(cè)用戶信息欄、(資料 個人空間 主頁 短消息 等等)、用戶的簽名(隱藏后不怕簽名的內(nèi)容影響正文,鏈接也不起作用了:P) 以住相關(guān)文章。
2.為標(biāo)題加上 <h1> 標(biāo)簽,修改內(nèi)容頁模板文件 templates/default/viewthread.htm:
將 <span class="bold">$post[subject]</span><br><br> 替換為 <h1>$post[subject]</h1>
定制“本帖最后由 XXX 于 xxxxxx 編輯”內(nèi)容
修改文件 templates/default/misc.lang.php:將下面兩行改成您喜歡的內(nèi)容:
'post_edit' => '\n\n[[i]] 本帖最后由 $editor 于 $edittime 編輯 [/i]]',
'post_edit_regexp' => '/\n{2}\[\[i\] 本帖最后由 .*? 于 .*? 編輯 \[\/i\]\]$/s',
比如可以改成 [ 網(wǎng)站名 URL xxx 于 xxxx 編輯]。改程序無聊時的自娛,注意上下兩個表達式要匹配。為了防止解析方括號是全角,不要復(fù)制后在文件中查找。
二、處理論壇內(nèi)容頁重復(fù)問題
看看內(nèi)容頁的URL大家就知道了:thread-(tid)-(page)-(forumdisplay page).html,可以看出最后一節(jié)表示的是此帖在列表頁的第幾頁。所以,當(dāng)您的帖子越來越多,這個帖就會由第一頁到第二頁...,它的URL就會不斷的變化。其實打開一個列表頁就可以看出來,第2頁的帖子鏈接的最后數(shù)字都是2,第3頁的都是3,只是很少注意它。我是在SE的收錄中發(fā)現(xiàn)復(fù)制網(wǎng)頁越來越多,才對最后的數(shù)字注意的。
解決方法
修改 forumdisplay.php 文件:
將 $extra = rawurlencode("page=$page$forumdisplayadd"); 語句替換為
$extra = rawurlencode("page=1$forumdisplayadd");
語句中的page就是forumdisplay page,這樣改后不管帖子在列表頁的第幾頁,這個數(shù)都是1。功能損失:當(dāng)用戶編輯帖子或版主管理帖子后,有個提示跳轉(zhuǎn)頁:選擇轉(zhuǎn)入列表頁還是主題頁,這時轉(zhuǎn)入列表頁的話,只能轉(zhuǎn)到列表頁第一頁,而不管您原來停留在第幾頁。
redirect的301重定向
在discuz論壇中可以看到類似redirect.php?tid=xxx&goto=lastpost#lastpost這樣的鏈接,它的功能是實現(xiàn)“最新發(fā)表、最后發(fā)表、上一主題、下一主題“功能,僅這一個功能就可以給同一個內(nèi)容頁造成四份復(fù)制網(wǎng)頁,因此將這樣的鏈接301永久重定向到帖子的靜態(tài)地址。
解決方法
修改 redirect.php 文件:
將前兩個 require_once DISCUZ_ROOT.'./viewthread.php'; 語句替換為
$bmt_url='Location:/thread-'.$tid.'-'.$page.'-1.html';
header('HTTP/1.1 301 Moved Permanently');
header( $bmt_url );
將后兩個 require_once DISCUZ_ROOT.'./viewthread.php'; 語句替換為
$bmt_url='Location:/thread-'.$tid.'-1-1.html';
header('HTTP/1.1 301 Moved Permanently');
header( $bmt_url );
dz5.5的引用處也有個跳轉(zhuǎn),也可以做301:
將 dheader("Location: viewthread.php?tid=$post[tid]&page=$page#pid$pid");替換為
$bmt_url='Location:/thread-'.$post[tid].'-'.$page.'-1.html#pid'.$pid;
header('HTTP/1.1 301 Moved Permanently');
header( $bmt_url );
***注意此處直接轉(zhuǎn)到了靜態(tài)地址,沒有做判斷是否開啟偽靜態(tài)功能,所以不開啟會有問題,功能損失:轉(zhuǎn)向到靜態(tài)地址后,動態(tài)地址中類似#lastpost的錨點將無法起作用了,可能要手動滾屏了 。
提示信息頁的網(wǎng)頁復(fù)制
這個問題和內(nèi)容頁也有著很大的關(guān)系,呵呵。如管理員設(shè)置允許游客瀏覽列表,而禁止瀏覽內(nèi)容時,這些內(nèi)容頁都將返回一沒有權(quán)限的提示信息頁,但它們的URL 是不同的,這樣就形成了嚴(yán)重的網(wǎng)頁復(fù)制,此外還有其它形成的無權(quán)操作等。別一種提示信息如帖子不存在等,數(shù)量大了也會形成網(wǎng)頁復(fù)制。這兩種提示信息,都是通過showmessage函數(shù)分別調(diào)用nopermission.htm和showmessage.htm兩個模板實現(xiàn)的。
解決方法
1.創(chuàng)建另一個頭模板文件 templates/default/header_disbots.htm
內(nèi)容同 header.htm 文件,但加入meta robot標(biāo)簽,如下
<meta name="robots" content="noindex,nofollow" />
2.分別修改 templates/default/nopermission.htm 和 templates/default/showmessage.htm 文件
將它們第一行的 {template header} 替換為 {template header_disbots}
雖然對meta robots標(biāo)簽支持的不是很廣泛,但這是比較省事的方法
因為是提示信息頁,用301來實現(xiàn)的話,還要傳給轉(zhuǎn)到的頁好多信息,修改起來比較麻煩
三、robots.txt使用
User-agent: *
#禁止一個版面的收錄
#如果有個水版,不想禁止游客權(quán)限,也不想SE收錄,已免影響網(wǎng)站質(zhì)量,可以用如下方法
Disallow: /forum-1-
#數(shù)字即為要禁止版塊的ID。
#注意數(shù)字最后的 - 不要省略,否則連ID為11,12等1開頭的版都禁了
[更新]補充方法:再給內(nèi)容頁加meta robot禁止
#再禁網(wǎng)頁復(fù)制
Disallow: /viewthread.php
#這個是內(nèi)容頁的動態(tài)形式,前面對偽靜態(tài)做了優(yōu)化并修改了很多的復(fù)制網(wǎng)頁,因此這里動態(tài)形式如打印頁等一定要禁止
Disallow: /forumdisplay.php
#這個要慎重:列表頁的動態(tài)形式,還包括精華、活動、投票等形式。我發(fā)現(xiàn)5.0的靜態(tài)化不徹底,它的上一頁下一頁翻頁仍是動態(tài),這樣如果禁止了,十頁之后的內(nèi)容就不能通這索引了。所以如果您站內(nèi)的交差鏈接不豐富的話,不要在此禁止,以免影響收錄。hekaiyu說沒有這個問題,去官方看了下5.5的確沒問題(也許我的5.0本來沒問題,也許官方在新版本中完善了正則表達式的替換規(guī)則),這樣更好了,禁止它,又干凈了好多。
#禁止其它無用內(nèi)容
Disallow: /profile
#用戶信息,不知為什么discuz也靜態(tài)化了,一律禁止
Disallow: /relatethread
Disallow: /post
Disallow: /blog
Disallow: /member
Disallow: /misc
Disallow: /faq
Disallow: /my
Disallow: /pm
Disallow: /digest
Disallow: /status
# ... ... 等等
# ----- robots.txt end ------
[更新]dz5.5的robots.txt后部分給出的Disallow: post.php等是不合規(guī)范的,一定要在前面加上"/"。>>詳細(xì)說明
首頁URL問題
后臺基本設(shè)置->首頁文件名如果不設(shè)置,會默認(rèn)為index.php。所以站內(nèi)到首頁的鏈接為形式為http: //domain/index.php。而我們一般引用論壇首頁或交換鏈接的形式一般是http://domain/。實際是一樣的,但SE可認(rèn)為是兩個 URL,而且一個擁有很多的內(nèi)部鏈接,一個擁有較多的外部鏈接,所以哪個被降級都不是好事情,最好統(tǒng)一起來。這里的修改目標(biāo)是http: //domain/的形式。
1.進入后臺,基本設(shè)置->首面文件名 設(shè)置為: /
2.修改文件 member.php 將 header("Location: {$boardurl}".$indexname); 替換為
if( $indexname=='/'){
header("Location: {$boardurl}");
}else{
header("Location: {$boardurl}".$indexname);
}
[更新]dz5.5為dheader此修改處的功能是清除cookies后返回到首頁,如不修改域名后就有兩個。
其它優(yōu)化輔助說明
除了文件的修改,有些地方要配合后臺設(shè)置,這里總結(jié)一下。主要有:1.URL靜態(tài)化,只啟用普通頁面靜態(tài)化就可以了;2.不要啟用 Archiver功能;3.后臺的keywords和description設(shè)置只是針對首頁的(如果您沒做列表頁和內(nèi)容頁的meta修改則也應(yīng)用到它們);4.后臺首頁文件名為/(當(dāng)然您也可以設(shè)置自己特定的)
提高論壇活帖點擊率回帖率
論壇活動貼(活動帖,指一些如:有獎?wù)魑?、促消打折、有獎轉(zhuǎn)發(fā)等類似內(nèi)容)是一個非常好的論壇宣傳方式,它可以輕易的帶出自己要宣傳的內(nèi)容,一個成功的活動帖,并不一定是從頭到尾都會受到客戶或網(wǎng)友支持和關(guān)注的,很多都是活動帖發(fā)布方在發(fā)帖初期、中期、后期,自己利用其它馬甲帳號去引導(dǎo)客戶,引導(dǎo)網(wǎng)友,按我們要發(fā)展的方向走的,一步步的完善我們要達到的效果和目標(biāo)。
如何判斷自己的活動帖子是否做的成功,可以從下面幾個方面去衡量,如何有時間和而心做好,各論壇發(fā)貼內(nèi)容及下面幾點的跟蹤記錄的話,會得到很大的提升。
1、帖子的瀏覽量
2、真實的回帖量
3、話題討論過程中非重復(fù)用戶數(shù)
4、是否成功利用馬甲將宣傳內(nèi)容重點展開或引出其它有價值的討論
5、是否因帖子而衍生用戶的自發(fā)帖討論
論壇宣傳高點擊論瀏覽量活動帖樣例
如果說小的產(chǎn)品價格低的產(chǎn)品更容易做宣傳,是因為客戶群體基數(shù)大的話,那么相對來說顧客基數(shù)小貴一些的產(chǎn)品就會更加有銷售宣傳的難度,所以選擇了一款汽車活動帖子來和大家一起分享一下,以下樣兩個樣例都是來自雪佛蘭在某論壇信息,感覺很典型,值得我們一起學(xué)習(xí)分析??醋龅暮玫脑挼暮锰幨欠浅6嗟模拖裣逻叺臉永以谶@和大家分享也是給他做了一種無形的宣傳了效果,所以朋友們不要怕累要有耐心和細(xì)心做宣傳,加油啊朋友們!
樣例主題:《那天在大街上看到雪佛蘭SPARK舉行的活動》
——我在南門內(nèi)廣場看到圍著不少人,就跑去看了看,說相聲,唱秦腔,那車蠻小巧,在城里開開還行, 如果親戚來,一起跑次華山什么的估計問題也不大,不知道多少錢能買,有點心動。
回貼一:這段時間我們上海這里微轎炒得特別熱,我每天在地鐵口都能看到巨大的廣告牌,不知道樓主說的是不是一樣的。
回貼二: 呵,我正好知道,這車路上還不多見,也是小排量的家用車,叫SPARK,這活動好象是在全國分階段進行的,各個主要城市都會搞的,我想西安只是里面的一站吧。
回貼三:恩,什么時候來我們這里我也去看看,挺有興趣的,有關(guān)于這個活動的具體介紹嗎?
回貼四:這個活動總共分了七站,包括……(介紹),網(wǎng)址(……)
回帖五:沒有到我們這個小地方,唉,不爽。
回帖六:到不到杭州啊~~到不到杭州啊~
回帖七:其實這東西在網(wǎng)上還有活動呢,我給你去找找地址。
注:以上帖子會以多名用戶身份回帖。
論壇優(yōu)化相關(guān)問題:
1、論壇的動態(tài)URL是否要用robots.txt屏蔽?
要屏蔽和不屏蔽都可以。我們發(fā)現(xiàn),一段時間后搜索引擎已經(jīng)會自動選擇留下靜態(tài)化的URL,而刪除動態(tài)URL。論壇為了解決收錄問題,從最初的屏蔽,后來選擇了開放,但仍然沒有解決大規(guī)模收錄的問題。(論壇的全面收錄是一個難題,目前沒有實效辦法)
2、論壇需要登陸才可以看到內(nèi)容,可以嗎?
如果不開放,搜索引擎無法抓取到。類似本教研室,搜索引擎是無法抓取的。
3、其他版本的論壇呢?
以上思路適合所有版本的論壇程序,請根據(jù)具體論壇程序相應(yīng)修改即可。
4、有些論壇,訪問首頁時,就彈出窗口要求注冊,這樣好嗎?
這個是用js彈出的,應(yīng)該問題不大。但全局考慮,盡量不要如此。為了注冊量,可以把部分帖子設(shè)置會員可看。
5、論壇帖子之間的互聯(lián)如何做更好?
如論壇那樣,開啟右側(cè)的相關(guān)帖子,是一個讓帖子更多互聯(lián)的一個辦法。
6、使用論壇碰到困難怎么辦?
論壇相對其他開源程序而言,是復(fù)雜很多。還好,這么多年來基本上你可能碰到的問題,別人都碰到過。碰到錯誤代碼,或錯誤提示時,請在百度上搜索下,或者在論壇官方論壇搜索下。一般可以獲得答案。 論壇設(shè)置方面,盡量選擇簡單的,不要太復(fù)雜。
7、論壇為什么采用二級目錄,而不是二級域名?
是的,絕大部分的網(wǎng)站,論壇都是采用二級域名。是基于首頁SEO的排名考慮,把論壇的內(nèi)容全部放在主域名下面,提升主域名的權(quán)重和內(nèi)容量。如果你也如此操作,請注意,論壇的導(dǎo)航和次導(dǎo)航,加上錨文本