当前位置 : 主页 > 网站排名优化 > 网站优化方案 > >

论坛网站优化方案

现在做论坛最常用是的是Discuz论坛程序,那么想要做好一个BBS论坛,首先是要解决用户的两大痛点,一是论坛的访问速度,二是能提供用户所关心的内容以及解决方案或是资料下载。为此,成都SEO达人为大家免费提供以下论坛的优化方案。

论坛网站优化方案介绍

论坛速度优化

如果访客进入论坛,感觉论坛打开速度慢了,当然是直接关掉网页,马上离开,所以做论坛性能方面的优化非常重要,就像你给一个女孩子的第一印象,那是不言而喻的事。对大型论坛网站优化方面更为明显一些。

论坛速度优化的作用:

1、加强用户体验(再好的网站,如果打开速度慢,10个人会有9个人选择离开);

2、有利于蜘蛛爬行,利于网站被收录(之前在博客分析过公式:抓取量 = 爬虫总停留时间/ 单个页面下载时间)

论坛速度优化操作:

1、后台--全局--性能优化--论坛页面缓存设置、服务器优化和内存优化;

A、缓存论坛首页有效期:0、缓存帖子有效期:0、缓存系数:0最佳,当然这个主要是针对访问量比较小的论坛,如果您的网站访问量很大,建议根据自己的需要来设置。

B、访问量一般或者小的网站设置方法:是否优化更新主题浏览量:否、查看数开启防刷新:否、附件下载量延迟更新:是、禁止浏览器缓冲:否、JS 文件目录:缓存目录、开启图片延时加载:是,其他不用设置即可。

C、访问量大或者非常大设置方法:是否优化更新主题浏览量:是、查看数开启防刷新:根据实际情况设置,建议设置为否。模块更新时间区间:3-6点最佳。

2、后台--全局--SEO设置--URL 静态化

开启伪静态不仅对SEO有利,同样可以加快网站内容页打开速度

3、后台--应用--插件

尽量减少使用不必要的插件,尽量使用成熟插件作者的插件

4、后台--界面--风格管理

模板这块主要是JS的加载位置和CSS的代码2块比较重要,一样建议大家使用比较成熟的模板作者的模板或者改动比较小的模板,尽量不要使用一些杂牌或者乱传播下载的模板,很可能导致K站等问题。模板对应网站速度和SEO的作用大家都是不可忽略的,希望各位站长的一定要重视起来。

5、后台--站长--数据库--优化

数据表优化可以去除数据文件中的碎片,使记录排列紧密,提高读写速度。大家没事就可以优化下这块,尤其是访问量比较大的论坛,优化这块对论坛的速度也有一定的影响。

6、后台--站长--用户表优化

通过用户表优化可以大幅度提高Discuz网站的性能

论坛网站SEO优化操作

一、meta的优化

discuz的后台可以对meta信息进行设置,甚至可以添加自己的头部信息,但它的设置都是针对于所有页面的,全部页面都拥有相同的keywords和description是成都SEO达人所不赞成的。

方案一:删除meta,修改页头模板文件 templates/default/header.htm:将meta的keywords和description标签删除。这两个标签作用很小了,而且还有discuz自带的一些无用信息,用得不好反而会有坏作用,因此宁缺勿滥。

方案二:定制meta,本部分实现了将内容页keywords设为帖子标题,description为内容前100字;也实现了主页与各版列表页meta的单独设置(不同版的不同,同一版各列表页相同)。

1.修改页头模板文件 templates\default\header.htm:将meta的keywords和description标签改为如下形式

<meta name="keywords" content="{$metakeywords}$seokeywords" /> 

<meta name="description" content="$seodescription" />

这里的$seokeywords、$seodescription就是后台设置的那个值,下面说怎么定制这个值;

{$metakeywords}是网站的关键字,留下以后处理

2.内容页(viewthread)设置keywords为帖子标题,description为内容前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创建 include/bmt.thread.inc.php 文件,内容为

<?php 

if(!defined('IN_DISCUZ')) { exit('Access Denied'); }

$seokeywords = strip_tags($thread['subject']); //关键字设为帖子的标题 

//(已更新: nethome 提出问题,当启用主题分类并允许按类别浏览时,原来代码会有问题。所以加了标签过滤,本来在viewthread.php中改更好,为以后升级方便,还是放在这里吧,subject很短,不会影响效率)

$seodescription = current( $postlist );//description取文章内容的前100字 

$seodescription = mb_substr( $seodescription['message'],0,100,"gb2312" ); 

$seodescription = htmlspecialchars( strip_tags($seodescription) );

?>

*此处数字和个别函数适用于GBK版本

最后一行作用是过滤内容中的html,否则在meta中会引起语法错误。先是去除HTML标签,但因为这里是前100字,有可能html标签已经被截断了,所以又用了htmlspecialchars转义一下,有可能会有些垃圾信息。 当然也可以在截取之前用strip_tags去除html标签,可能效率会差了。

*所以此处表达式您需要根据自己的情况修改。 

大部分论坛网站目前用的是preg_replace( '/[^\xa1-\xff]/', '', $seodescription ),即过滤汉字以外的所在内容,但这样会损失英文关键字。特别说明,此处数据都是viewthread.php已取好的,所以不会产生额外的数据库操作,只是做了字符串处理,不会引响效率。

3.列表页(forumdisplay)设置不同的keywords和description

3.1修改 forumdisplay.php文件,在 include template('forumdisplay'); 语句上面添加 

require_once DISCUZ_ROOT.'./include/bmt.forum.inc.php';

3.2创建 include/bmt.forum.inc.php 文件,内容为

<?php 

if(!defined('IN_DISCUZ')) { exit('Access Denied'); } 

$seokeywords = $forum['name']; 

$seodescription = $forum['description'];
 

switch ( $forum['fid'] ){ 

case 1: //此数字为版的ID号,不同版设置不同的meta 

$seokeywords = 'key1,key2,...'; 

$seodescription = 'xxxx xxxx xxxx'; 

break; 

case 2: 

$seokeywords = 'key1,key2,...'; 

$seodescription = 'xxxx xxxx xxxx'; 

break;

?>

//更新:一般情况下可以不用switch和case,列表页的关键字为版名,说明为版的说明,若要对某个版设置特殊的关键字和说明,可以设置case。这样解决了版面很多时要设置很多case语

句,加快了程序执行速度(不了解php,JAVA的 case进行了优化,执行很快)使用修改文件来实现,每版的meta改起来不方便,感觉有些弱智,呵呵。但没有改数据库,用了两个单独的文件,修改了两个文件也很简单,这样升级或迁移更方便吧,case虽然多了一些,但比起读数据库的记录,速度应该快很多

4.主页meta 

在后台设置即可。(如果2、3不做,则meta也同主页)

content的优化 

discuz有个archiver,一是URL容易收录,二是页面比较干静,还有description会从正文中取内容,但archiver没有对内容中[b][url]之类的解析,那些标签起不到作用,原样显示还会增加垃圾信息。 

本部分主要做两方面的优化,一是去除内容页的无用信息,二是给标题加上 <h1> 。加上伪静态和上篇meta的优化,效果就超过了archiver,因此可以在后台禁用它,还减少了复制网页。

论坛优化核心操作

1.隐藏内容页(viewthread)中的无用信息: 

修改内容页模板文件 templates/default/viewthread.htm:用<!--{if $discuz_uid}--> <!--{/if}-->将要隐藏的信息包含起来。准确的说是当游客(bots)访问时,隐藏那些信息,当用户登录后是正常的,所以不影响使用。 这些信息主要指的是左侧用户信息栏、(资料 个人空间 主页 短消息 等等)、用户的签名(隐藏后不怕签名的内容影响正文,链接也不起作用了:P) 以住相关文章。

2.为标题加上 <h1> 标签,修改内容页模板文件 templates/default/viewthread.htm:

将 <span class="bold">$post[subject]</span><br><br> 替换为 <h1>$post[subject]</h1>

定制“本帖最后由 XXX 于 xxxxxx 编辑”内容

修改文件 templates/default/misc.lang.php:将下面两行改成您喜欢的内容:

'post_edit' => '\n\n[[i]] 本帖最后由 $editor 于 $edittime 编辑 [/i]]', 

'post_edit_regexp' => '/\n{2}\[\[i\] 本帖最后由 .*? 于 .*? 编辑 \[\/i\]\]$/s',

比如可以改成 [ 网站名 URL xxx 于 xxxx 编辑]。改程序无聊时的自娱,注意上下两个表达式要匹配。为了防止解析方括号是全角,不要复制后在文件中查找。

二、处理论坛内容页重复问题

看看内容页的URL大家就知道了:thread-(tid)-(page)-(forumdisplay page).html,可以看出最后一节表示的是此帖在列表页的第几页。所以,当您的帖子越来越多,这个帖就会由第一页到第二页...,它的URL就会不断的变化。其实打开一个列表页就可以看出来,第2页的帖子链接的最后数字都是2,第3页的都是3,只是很少注意它。我是在SE的收录中发现复制网页越来越多,才对最后的数字注意的。

解决方法 

修改 forumdisplay.php 文件:

将 $extra = rawurlencode("page=$page$forumdisplayadd"); 语句替换为 

$extra = rawurlencode("page=1$forumdisplayadd");

语句中的page就是forumdisplay page,这样改后不管帖子在列表页的第几页,这个数都是1。功能损失:当用户编辑帖子或版主管理帖子后,有个提示跳转页:选择转入列表页还是主题页,这时转入列表页的话,只能转到列表页第一页,而不管您原来停留在第几页。

redirect的301重定向

在discuz论坛中可以看到类似redirect.php?tid=xxx&goto=lastpost#lastpost这样的链接,它的功能是实现“最新发表、最后发表、上一主题、下一主题“功能,仅这一个功能就可以给同一个内容页造成四份复制网页,因此将这样的链接301永久重定向到帖子的静态地址。

解决方法 

修改 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的引用处也有个跳转,也可以做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 );

***注意此处直接转到了静态地址,没有做判断是否开启伪静态功能,所以不开启会有问题,功能损失:转向到静态地址后,动态地址中类似#lastpost的锚点将无法起作用了,可能要手动滚屏了 。

提示信息页的网页复制

这个问题和内容页也有着很大的关系,呵呵。如管理员设置允许游客浏览列表,而禁止浏览内容时,这些内容页都将返回一没有权限的提示信息页,但它们的URL 是不同的,这样就形成了严重的网页复制,此外还有其它形成的无权操作等。别一种提示信息如帖子不存在等,数量大了也会形成网页复制。这两种提示信息,都是通过showmessage函数分别调用nopermission.htm和showmessage.htm两个模板实现的。

解决方法 

1.创建另一个头模板文件 templates/default/header_disbots.htm 

内容同 header.htm 文件,但加入meta robot标签,如下

<meta name="robots" content="noindex,nofollow" />

2.分别修改 templates/default/nopermission.htm 和 templates/default/showmessage.htm 文件 

将它们第一行的 {template header} 替换为 {template header_disbots}

虽然对meta robots标签支持的不是很广泛,但这是比较省事的方法 

因为是提示信息页,用301来实现的话,还要传给转到的页好多信息,修改起来比较麻烦

三、robots.txt使用

User-agent: *

#禁止一个版面的收录 

#如果有个水版,不想禁止游客权限,也不想SE收录,已免影响网站质量,可以用如下方法 

Disallow: /forum-1-

#数字即为要禁止版块的ID。 

#注意数字最后的 - 不要省略,否则连ID为11,12等1开头的版都禁了 

[更新]补充方法:再给内容页加meta robot禁止

#再禁网页复制 

Disallow: /viewthread.php 

#这个是内容页的动态形式,前面对伪静态做了优化并修改了很多的复制网页,因此这里动态形式如打印页等一定要禁止

Disallow: /forumdisplay.php 

#这个要慎重:列表页的动态形式,还包括精华、活动、投票等形式。我发现5.0的静态化不彻底,它的上一页下一页翻页仍是动态,这样如果禁止了,十页之后的内容就不能通这索引了。所以如果您站内的交差链接不丰富的话,不要在此禁止,以免影响收录。hekaiyu说没有这个问题,去官方看了下5.5的确没问题(也许我的5.0本来没问题,也许官方在新版本中完善了正则表达式的替换规则),这样更好了,禁止它,又干净了好多。

#禁止其它无用内容 

Disallow: /profile 

#用户信息,不知为什么discuz也静态化了,一律禁止 

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等是不合规范的,一定要在前面加上"/"。>>详细说明

首页URL问题

后台基本设置->首页文件名如果不设置,会默认为index.php。所以站内到首页的链接为形式为http: //domain/index.php。而我们一般引用论坛首页或交换链接的形式一般是http://domain/。实际是一样的,但SE可认为是两个 URL,而且一个拥有很多的内部链接,一个拥有较多的外部链接,所以哪个被降级都不是好事情,最好统一起来。这里的修改目标是http: //domain/的形式。

1.进入后台,基本设置->首面文件名 设置为: / 

2.修改文件 member.php 将 header("Location: {$boardurl}".$indexname); 替换为

if( $indexname=='/'){ 

header("Location: {$boardurl}"); 

}else{ 

header("Location: {$boardurl}".$indexname); 

}

[更新]dz5.5为dheader此修改处的功能是清除cookies后返回到首页,如不修改域名后就有两个。

其它优化辅助说明

除了文件的修改,有些地方要配合后台设置,这里总结一下。主要有:1.URL静态化,只启用普通页面静态化就可以了;2.不要启用 Archiver功能;3.后台的keywords和description设置只是针对首页的(如果您没做列表页和内容页的meta修改则也应用到它们);4.后台首页文件名为/(当然您也可以设置自己特定的)

提高论坛活帖点击率回帖率 

论坛活动贴(活动帖,指一些如:有奖征文、促消打折、有奖转发等类似内容)是一个非常好的论坛宣传方式,它可以轻易的带出自己要宣传的内容,一个成功的活动帖,并不一定是从头到尾都会受到客户或网友支持和关注的,很多都是活动帖发布方在发帖初期、中期、后期,自己利用其它马甲帐号去引导客户,引导网友,按我们要发展的方向走的,一步步的完善我们要达到的效果和目标。 

如何判断自己的活动帖子是否做的成功,可以从下面几个方面去衡量,如何有时间和而心做好,各论坛发贴内容及下面几点的跟踪记录的话,会得到很大的提升。 

1、帖子的浏览量 

2、真实的回帖量 

3、话题讨论过程中非重复用户数 

4、是否成功利用马甲将宣传内容重点展开或引出其它有价值的讨论 

5、是否因帖子而衍生用户的自发帖讨论 

论坛宣传高点击论浏览量活动帖样例 

如果说小的产品价格低的产品更容易做宣传,是因为客户群体基数大的话,那么相对来说顾客基数小贵一些的产品就会更加有销售宣传的难度,所以选择了一款汽车活动帖子来和大家一起分享一下,以下样两个样例都是来自雪佛兰在某论坛信息,感觉很典型,值得我们一起学习分析。看做的好的话的好处是非常多的,就像下边的样例我在这和大家分享也是给他做了一种无形的宣传了效果,所以朋友们不要怕累要有耐心和细心做宣传,加油啊朋友们! 

样例主题:《那天在大街上看到雪佛兰SPARK举行的活动》 

——我在南门内广场看到围着不少人,就跑去看了看,说相声,唱秦腔,那车蛮小巧,在城里开开还行, 如果亲戚来,一起跑次华山什么的估计问题也不大,不知道多少钱能买,有点心动。 

回贴一:这段时间我们上海这里微轿炒得特别热,我每天在地铁口都能看到巨大的广告牌,不知道楼主说的是不是一样的。 

回贴二: 呵,我正好知道,这车路上还不多见,也是小排量的家用车,叫SPARK,这活动好象是在全国分阶段进行的,各个主要城市都会搞的,我想西安只是里面的一站吧。 

回贴三:恩,什么时候来我们这里我也去看看,挺有兴趣的,有关于这个活动的具体介绍吗? 

回贴四:这个活动总共分了七站,包括……(介绍),网址(……) 

回帖五:没有到我们这个小地方,唉,不爽。 

回帖六:到不到杭州啊~~到不到杭州啊~ 

回帖七:其实这东西在网上还有活动呢,我给你去找找地址。 

注:以上帖子会以多名用户身份回帖。 

论坛优化相关问题:

1、论坛的动态URL是否要用robots.txt屏蔽?

要屏蔽和不屏蔽都可以。我们发现,一段时间后搜索引擎已经会自动选择留下静态化的URL,而删除动态URL。论坛为了解决收录问题,从最初的屏蔽,后来选择了开放,但仍然没有解决大规模收录的问题。(论坛的全面收录是一个难题,目前没有实效办法)

2、论坛需要登陆才可以看到内容,可以吗?

如果不开放,搜索引擎无法抓取到。类似本教研室,搜索引擎是无法抓取的。

3、其他版本的论坛呢?

以上思路适合所有版本的论坛程序,请根据具体论坛程序相应修改即可。

4、有些论坛,访问首页时,就弹出窗口要求注册,这样好吗?

这个是用js弹出的,应该问题不大。但全局考虑,尽量不要如此。为了注册量,可以把部分帖子设置会员可看。

5、论坛帖子之间的互联如何做更好?

如论坛那样,开启右侧的相关帖子,是一个让帖子更多互联的一个办法。

6、使用论坛碰到困难怎么办?

论坛相对其他开源程序而言,是复杂很多。还好,这么多年来基本上你可能碰到的问题,别人都碰到过。碰到错误代码,或错误提示时,请在百度上搜索下,或者在论坛官方论坛搜索下。一般可以获得答案。 论坛设置方面,尽量选择简单的,不要太复杂。

7、论坛为什么采用二级目录,而不是二级域名?

是的,绝大部分的网站,论坛都是采用二级域名。是基于首页SEO的排名考虑,把论坛的内容全部放在主域名下面,提升主域名的权重和内容量。如果你也如此操作,请注意,论坛的导航和次导航,加上锚文本



用户评论

评论列表(网友评论仅供网友表达个人看法,并不表明本站同意其观点或证实其描述)
成都SEO公司电话