广州凡科互联网科技有限公司

营业时间
MON-SAT 9:00-18:00

全国服务热线
18720358503

公司门店地址
广州市海珠区工业大道北67号凤凰创意园

Discuz社区论坛的SEO提升计划方案

日期:2021-01-01 浏览:

Discuz社区论坛的SEO提升计划方案


小视频,自媒体平台,达种族草一站服务

设discuz已开启伪静态数据作用,应用5.0/5.5 GBK 版本号;

1、meta,content 提升
2、內容页的网页页面拷贝难题
3、robots.txt应用以及它

升级
discuz5.5的robots.txt难题
DZ 严禁一个版块贴子的百度收录的填补

一、meta的提升

discuz的后台管理能够对meta信息内容开展设定,乃至能够加上自身的头顶部信息内容,但它的设定全是对于于全部网页页面的,所有网页页面都有着同样的keywords和description是SEO所不赞同的。

计划方案一:删掉meta

改动页头模版文档 templates/default/header.htm:将meta的keywords和description标识删掉。

这2个标识功效不大了,并且也有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('Aess Denied'); }

$seokeywords = strip_tags($thread['subject']); //重要字设成贴子的题目
//(已升级: home 明确提出难题,当开启主题风格归类并容许按类型访问时,原先编码会出现难题。因此加了标识过虑,原本在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('Aess 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改起來不便捷,觉得一些弱智,呵呵呵。但沒有改数据信息库,用了2个独立的文档,改动了2个文档也非常简单,那样升級或转移更便捷吧

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 > 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 编写]。改程序无趣时的自娱,呵呵呵
留意左右2个表述式要配对。以便避免分析方括弧是全角,不必拷贝后在文档中搜索。

二、內容页的网页页面拷贝难题

看一下內容页的URL大伙儿就了解了:thread-(tid)-(page)-(forumdisplay page).html,能看出最终一节表明的是此帖在目录页的第两页。因此,当您的贴子越来越越大,这一帖便会由第一页到第二页...,它的URL便会持续的转变。实际上开启一个目录页便可以看得出来,第二页的贴子连接的最终数据全是2,第三页的全是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 文档:

将前2个 require_once DISCUZ_ROOT.'./viewthread.php'; 句子更换为
$bmt_url='Location:/thread-'.$tid.'-'.$page.'-1.html';
header('HTTP/1.1 301 Moved Permanently');
header( $bmt_url );
将后2个 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.htm2个模版完成的。

处理方式
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。因此网站内部到主页的连接为方式为: //domain/index.php。而大家一般引入社区论坛主页或互换连接的方式通常为。具体是一样的,但SE可觉得是2个 URL,并且一个有着许多的內部连接,一个有着较多的外界连接,因此哪一个被退级也不是好事儿情,最好统一起來。这儿的改动总体目标是: //domain/的方式。

1.进到后台管理,基本设定- 首面文档名 设定为: /
2.改动文档 member.php 将 header( Location: {$boardurl} .$indexname); 更换为

if( $indexname=='/'){
header( Location: {$boardurl}
}else{
header( Location: {$boardurl} .$indexname);
}

[升级]dz5.5为dheader

此改动处的作用是消除cookies后回到到主页,如不改动网站域名后就会有2个/。临时未发觉应用/当主页文档名的其他难题

结 束

除开文档的改动,一些地区要相互配合后台管理设定,前边都提及了,这儿小结一下。关键有:1.URL静态数据化,只开启一般网页页面静态数据化便可以了;2.不必开启 Archiver作用;3.后台管理的keywords和description设定仅仅对于主页的(假如您没做目录页和內容页的meta改动则也运用到他们);4.后台管理主页文档名叫/(自然您还可以设定自身特殊的)




新闻资讯

联系方式丨CONTACT

  • 全国热线:18720358503
  • 传真热线:18720358503
  • Q Q咨询:2639601583
  • 企业邮箱:2639601583@qq.com

首页
电话
短信
联系