Discuz論壇的SEO優(yōu)化方案
設(shè)discuz 已啟用偽靜態(tài)功能,使用5.5.5GBK 版本;1、meta,content 優(yōu)化2、內(nèi)容頁(yè)的網(wǎng)頁(yè)復(fù)制問(wèn)題3、robots.txt 使用及其它更新discuz5.5的robots.txt
設(shè)discuz 已啟用偽靜態(tài)功能,使用5.5.5GBK 版本;
1、meta,content 優(yōu)化
2、內(nèi)容頁(yè)的網(wǎng)頁(yè)復(fù)制問(wèn)題
3、robots.txt 使用及其它
更新
discuz5.5的robots.txt 問(wèn)題
DZ 禁止一個(gè)版面帖子的收錄的補(bǔ)充
一、meta 的優(yōu)化
discuz 的后臺(tái)可以對(duì)meta 信息進(jìn)行設(shè)置,甚至可以添加自己的頭部信息,但它的設(shè)置都是針對(duì)于所有頁(yè)面的,全部頁(yè)面都擁有相同的keywords 和description 是(億推英文TuiGuang123_COM)所不贊成的。
方案一:刪除meta
修改頁(yè)頭模板文件templatesdefaultheader.htm :將meta 的keywords 和description 標(biāo)簽刪除。
這兩個(gè)標(biāo)簽作用很小了,而且還有discuz 自帶的一些無(wú)用信息,用得不好反而會(huì)有壞作用,因此寧缺勿濫。
方案二:定制meta
本部分實(shí)現(xiàn)了將內(nèi)容頁(yè)keywords 設(shè)為帖子標(biāo)題,description 為內(nèi)容前1字;也實(shí)現(xiàn)了主頁(yè)與各版列表頁(yè)meta 的單獨(dú)設(shè)置(不同版的不同,同一版各列表頁(yè)相同)。
1. 修改頁(yè)頭模板文件templates?faultheader.htm:將meta 的keywords 和description 標(biāo)簽改為如下形式
這里的$seokeywords、$seodescription就是后臺(tái)設(shè)置的那個(gè)值,下面說(shuō)怎么定制這個(gè)值;{$metakeywords}是奇虎的關(guān)鍵字,留下以后處理
2. 內(nèi)容頁(yè)(viewthread )設(shè)置keywords 為帖子標(biāo)題,description 為內(nèi)容前1字
2.1修改viewthread.php 文件:
在includetemplate('viewthread');(更新:dz5.5為
,iincludetemplate($iscircle?'supesite_viewthread':'viewthread');)語(yǔ)句的上面加入一行:
require_onceDISCUZ_ROOT.'.includebmt.thread.inc.php';
2.2創(chuàng)建includebmt.thread.inc.php 文件,內(nèi)容為
if(!defined('IN_DISCUZ')){exit('AccessDenied');}
$seokeywords=strip_tags($thread['subject']);關(guān)鍵字設(shè)為帖子的標(biāo)題
(已更新:nethome提出問(wèn)題,當(dāng)啟用主題分類并允許按類別瀏覽時(shí),原來(lái)代碼會(huì)有問(wèn)題。所以加了標(biāo)簽過(guò)濾, 本來(lái)在viewthread.php 中改更好,為以后升級(jí)方便,還是放在這里吧,subject 很短,不會(huì)影響效率)
,if(!defined('IN_DISCUZ')){exit('AccessDenied');}
$seokeywords=$forum['name'];
$seodescription=$forum['description'];
switch($forum['fid']){
case1:此數(shù)字為版的ID 號(hào),不同版設(shè)置不同的meta
$seokeywords='key1,key2,...';
$seodescription='xxxxxxxxxxxx';
break;
case2:
$seokeywords='key1,key2,...';
$seodescription='xxxxxxxxxxxx';
break;
}
?>
更新:一般情況下可以不用switch 和case ,列表頁(yè)的關(guān)鍵字為版名,說(shuō)明為版的說(shuō)明, 若要對(duì)某個(gè)版設(shè)置特殊的關(guān)鍵字和說(shuō)明,可以設(shè)置case 。這樣解決了版面很多時(shí)要設(shè)置很多case 語(yǔ)句,加快了程序執(zhí)行速度(不了解php ,JAVA 的case 進(jìn)行了優(yōu)化,執(zhí)行很快)
使用修改文件來(lái)實(shí)現(xiàn),每版的meta 改起來(lái)不方便,感覺(jué)有些弱智,呵呵。但沒(méi)有改數(shù)據(jù)庫(kù),用了兩個(gè)單獨(dú)的文件,修改了兩個(gè)文件也很簡(jiǎn)單,這樣升級(jí)或遷移更方便吧
case 雖然多了一些,但比起讀數(shù)據(jù)庫(kù)的記錄,速度應(yīng)該快很多
4. 主頁(yè)meta
在后臺(tái)設(shè)置即可。(如果2、3不做,則meta 也同主頁(yè))
content 的優(yōu)化
discuz 有個(gè)archiver ,一是URL 容易收錄,二是頁(yè)面比較干靜,還有description 會(huì)從正文中取內(nèi)容,但archiver 沒(méi)有對(duì)內(nèi)容中[b ][url ]之類的解析,那些標(biāo)簽起不到作用,原樣顯示還會(huì)增加垃圾信息。
,本部分主要做兩方面的優(yōu)化,一是去除內(nèi)容頁(yè)的無(wú)用信息,二是給標(biāo)題加上
。加上偽靜態(tài)和上篇meta 的優(yōu)化,效果就超過(guò)了archiver ,因此可以在后臺(tái)禁用它,還減少了復(fù)制網(wǎng)頁(yè)。
實(shí)施方案
1. 隱藏內(nèi)容頁(yè)(viewthread )中的無(wú)用信息:
修改內(nèi)容頁(yè)模板文件templatesdefaultviewthread.htm :
用將要隱藏的信息包含起來(lái)。
準(zhǔn)確的說(shuō)是當(dāng)游客(bots)訪問(wèn)時(shí),隱藏那些信息,當(dāng)用戶登錄后是正常的,所以不影響使用。
這些信息主要指的是左側(cè)用戶信息欄、(資料個(gè)人空間主頁(yè)短消息等等)、用戶的簽名(隱藏后不怕簽名的內(nèi)容影響正文,鏈接也不起作用了:P)
以住相關(guān)文章
2. 為標(biāo)題加上
標(biāo)簽
修改內(nèi)容頁(yè)模板文件templatesdefaultviewthread.htm :
將
替換為
$post[subject]
定制“本帖最后由XXX 于xxxxxx 編輯”內(nèi)容
修改文件templatesdefaultmisc.lang.php :將下面兩行改成您喜歡的內(nèi)容: 'post_edit'=>'nn[[i]]本帖最后由$editor于$edittime編輯[i]]',
'post_edit_regexp'=>'n{2}[[i]本帖最后由.*?于.*?編輯[i]]$s', 比如我改成[網(wǎng)站名URLxxx 于xxxx 編輯]。改程序無(wú)聊時(shí)的自?shī)?,呵?/p>
注意上下兩個(gè)表達(dá)式要匹配。為了防止解析方括號(hào)是全角,不要復(fù)制后在文件中查找。
二、內(nèi)容頁(yè)的網(wǎng)頁(yè)復(fù)制問(wèn)題
看看內(nèi)容頁(yè)的URL 大家就知道了:thread-(tid)-(page)-(forumdisplaypage),可以看出最后一節(jié)表示的是此帖在列表頁(yè)的第幾頁(yè)。所以,當(dāng)您的帖子越來(lái)越多,
,這個(gè)帖就會(huì)由第一頁(yè)到第二頁(yè)... ,它的URL 就會(huì)不斷的變化。其實(shí)打開(kāi)一個(gè)列表頁(yè)就可以看出來(lái),第2頁(yè)的帖子鏈接的最后數(shù)字都是2,第3頁(yè)的都是3, 只是很少注意它。我是在SE 的收錄中發(fā)現(xiàn)復(fù)制網(wǎng)頁(yè)越來(lái)越多,才對(duì)最后的數(shù)字注意的。 解決方法
修改forumdisplay.php 文件:
將$extra=rawurlencode("page=$page$forumdisplayadd");語(yǔ)句替換為 $extra=rawurlencode("page=1$forumdisplayadd");
語(yǔ)句中的page 就是forumdisplaypage ,這樣改后不管帖子在列表頁(yè)的第幾頁(yè),這個(gè)數(shù)都是1。
功能損失:當(dāng)用戶編輯帖子或版主管理帖子后,有個(gè)提示跳轉(zhuǎn)頁(yè):選擇轉(zhuǎn)入列表頁(yè)還是主題頁(yè),這時(shí)轉(zhuǎn)入列表頁(yè)的話,只能轉(zhuǎn)到列表頁(yè)第一頁(yè), 而不管您原來(lái)停留在第幾頁(yè)。
redirect 的31重定向
在discuz 論壇中可以看到類似redirect.php?tid=xxx&goto=lastpost#lastpost這樣的鏈接,它的功能是實(shí)現(xiàn)“最新發(fā)表、最后發(fā)表、上一主題、下一主題“功能,僅這一個(gè)功能就可以給同一個(gè)內(nèi)容頁(yè)造成四份復(fù)制網(wǎng)頁(yè),因此將這樣的鏈接31永久重定向到帖子的靜態(tài)地址。
解決方法
修改redirect.php 文件:
將前兩個(gè)require_onceDISCUZ_ROOT.'.viewthread.php';語(yǔ)句替換為 $bmt_url='Location:thread-'.$tid.'-'.$page.'-1';
header('HTTP1.131MovedPermanently');
header($bmt_url);
將后兩個(gè)require_onceDISCUZ_ROOT.'.viewthread.php';語(yǔ)句替換為 $bmt_url='Location:thread-'.$tid.'-1-1';
header('HTTP1.131MovedPermanently');
header($bmt_url);
dz5.5的引用處也有個(gè)跳轉(zhuǎn),也可以做31:
將
,dheader("Location:viewthread.php?tid=$post[tid]&page=$page#pid$pid");替換為
$bmt_url='Location:thread-'.$post[tid].'-'.$page.'-1#pid'.$pid; header('HTTP1.131MovedPermanently');
header($bmt_url);
***注意此處直接轉(zhuǎn)到了靜態(tài)地址,沒(méi)有做判斷是否開(kāi)啟偽靜態(tài)功能,所以不開(kāi)啟會(huì)有問(wèn)題
功能損失:轉(zhuǎn)向到靜態(tài)地址后,動(dòng)態(tài)地址中類似#lastpost的錨點(diǎn)將無(wú)法起作用了,可能要手動(dòng)滾屏了
? 好像沒(méi)有影響錨點(diǎn)
提示信息頁(yè)的網(wǎng)頁(yè)復(fù)制
這個(gè)問(wèn)題和內(nèi)容頁(yè)也有著很大的關(guān)系,呵呵。如管理員設(shè)置允許游客瀏覽列表,而禁止瀏覽內(nèi)容時(shí),這些內(nèi)容頁(yè)都將返回一沒(méi)有權(quán)限的提示信息頁(yè),但它們的URL 是不同的,這樣就形成了嚴(yán)重的網(wǎng)頁(yè)復(fù)制,此外還有其它形成的無(wú)權(quán)操作等。別一種提示信息如帖子不存在等,數(shù)量大了也會(huì)形成網(wǎng)頁(yè)復(fù)制。這兩種提示信息,都是通過(guò)showmessage 函數(shù)分別調(diào)用nopermission.htm 和showmessage.htm 兩個(gè)模板實(shí)現(xiàn)的。
解決方法
1. 創(chuàng)建另一個(gè)頭模板文件templatesdefaultheader_disbots.htm
內(nèi)容同header.htm 文件,但加入metarobot 標(biāo)簽,如下
2. 分別修改templatesdefaultnopermission.htm 和
templatesdefaultshowmessage.htm 文件
將它們第一行的{templateheader}替換為{templateheader_disbots} 雖然對(duì)metarobots 標(biāo)簽支持的不是很廣泛,但這是比較省事的方法
因?yàn)槭翘崾拘畔㈨?yè),用31來(lái)實(shí)現(xiàn)的話,還要傳給轉(zhuǎn)到的頁(yè)好多信息,修改起來(lái)比較麻煩
三、robots.txt 使用
User-agent:*
,#禁止一個(gè)版面的收錄
#如果有個(gè)水版,不想禁止游客權(quán)限,也不想SE 收錄,已免影響網(wǎng)站質(zhì)量,可以用如下方法
Disallow:forum-1-
#數(shù)字即為要禁止版塊的ID 。
#注意數(shù)字最后的-不要省略,否則連ID 為11,12等1開(kāi)頭的版都禁了
[更新]補(bǔ)充方法:再給內(nèi)容頁(yè)加metarobot 禁止
#再禁網(wǎng)頁(yè)復(fù)制
Disallow:viewthread.php
#這個(gè)是內(nèi)容頁(yè)的動(dòng)態(tài)形式,前面對(duì)偽靜態(tài)做了優(yōu)化并修改了很多的復(fù)制網(wǎng)頁(yè),因此這里動(dòng)態(tài)形式如打印頁(yè)等一定要禁止
Disallow:forumdisplay.php
#這個(gè)要慎重:列表頁(yè)的動(dòng)態(tài)形式,還包括精華、活動(dòng)、投票等形式。我發(fā)現(xiàn)5. 的靜態(tài)化不徹底,它的上一頁(yè)下一頁(yè)翻頁(yè)仍是動(dòng)態(tài),這樣如果禁止了,十頁(yè)之后的內(nèi)容就不能通這索引了。所以如果您站內(nèi)的交差鏈接不豐富的話,不要在此禁止,以免影響收錄。
hekaiyu 說(shuō)沒(méi)有這個(gè)問(wèn)題,去官方看了下5.5的確沒(méi)問(wèn)題(也許我的5. 本來(lái)沒(méi)問(wèn)題,也許官方在新版本中完善了正則表達(dá)式的替換規(guī)則) ,這樣更好了,禁止它,又干凈了好多
#禁止其它無(wú)用內(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.txtend------
[更新]dz5.5的robots.txt 后部分給出的Disallow:post.php等是不合規(guī)范的,一定要在前面加上"" 。>>詳細(xì)說(shuō)明
首頁(yè)URL 問(wèn)題
后臺(tái)基本設(shè)置->首頁(yè)文件名如果不設(shè)置,會(huì)默認(rèn)為index.php 。所以站內(nèi)到首頁(yè)的鏈接為形式為http:domainindex.php。而我們一般引用論壇首頁(yè)或交換鏈接的形式一般是domain 。實(shí)際是一樣的,但SE 可認(rèn)為是兩個(gè)URL, 而且一個(gè)擁有很多的內(nèi)部鏈接,一個(gè)擁有較多的外部鏈接,所以哪個(gè)被降級(jí)都不是好事情,最好統(tǒng)一起來(lái)。這里的修改目標(biāo)是http:domain的形式。
1. 進(jìn)入后臺(tái),基本設(shè)置->首面文件名設(shè)置為:
2. 修改文件member.php 將header("Location:{$boardurl}".$indexname);替換為
if($indexname==''){
header("Location:{$boardurl}");
}else{
header("Location:{$boardurl}".$indexname);
}
[更新]dz5.5為dheader
此修改處的功能是清除cookies 后返回到首頁(yè),如不修改域名后就有兩個(gè)。暫時(shí)未發(fā)現(xiàn)使用當(dāng)首頁(yè)文件名的其它問(wèn)題
結(jié)束
除了文件的修改,有些地方要配合后臺(tái)設(shè)置,前面都提到了,這里總結(jié)一下。主要有:1.URL 靜態(tài)化,只啟用普通頁(yè)面靜態(tài)化就可以了;2. 不要啟用Archiver 功能;3. 后臺(tái)的keywords 和description 設(shè)置只是針對(duì)首頁(yè)的(如果您沒(méi)做列表頁(yè)和內(nèi)容頁(yè)的meta 修改則也應(yīng)用到它們);4. 后臺(tái)首頁(yè)文件名為(當(dāng)然您也可以設(shè)
,置自己特定的)
億推英文新聞稿推廣TuiGuang123, 億推Tuiguang123英文新聞稿推廣, 億推英文新聞稿代發(fā)TuiGuang123, 億推Tuiguang123英文新聞稿代發(fā), 億推英文新聞稿服務(wù)TuiGuang123, 億推Tuiguang123英文新聞稿服務(wù)。億推(TuiGuang123_COM) 提供標(biāo)準(zhǔn)化的英文軟文發(fā)布、英文新聞稿撰寫服務(wù)。專業(yè)的英語(yǔ)本土軟文寫手,100篇英文軟文可在一周內(nèi)完成。歡迎國(guó)內(nèi)外貿(mào)客戶或外貿(mào)推廣合作伙伴聯(lián)系業(yè)務(wù)共謀發(fā)展。聯(lián)系方法,在百度搜索“億推英文推廣”或直接訪問(wèn)Tuiguang_COM