- 3
- 0
- 约7.33千字
- 约 9页
- 2017-12-04 发布于贵州
- 举报
【精选】Discuz论坛的SEO优化方案
设discuz 已启用伪静态功能,使用5.5.5GBK 版本;
1、meta,content 优化
2、内容页的网页复制问题
3、robots.txt 使用及其它
更新
discuz5.5 的robots.txt 问题
DZ 禁止一个版面帖子的收录的补充
一、meta 的优化
discuz 的后台可以对meta 信息进行设置,甚至可以添加自己的头部信息,但它
的设置都是针对于所有页面的,全部页面都拥有相同的keywords 和description
是(亿推英文TuiGuang123_COM)所不赞成的。
方案一:删除meta
修改页头模板文件templatesdefaultheader.htm:将meta 的keywords 和
description 标签删除。
这两个标签作用很小了,而且还有discuz 自带的一些无用信息,用得不好反而会
有坏作用,因此宁缺勿滥。
方案二:定制meta
本部分实现了将内容页keywords 设为帖子标题,description 为内容前1 字;也
实现了主页与各版列表页meta 的单独设置(不同版的不同,同一版各列表页相
同)。
1.修改页头模板文件templates\default\header.htm:将meta 的keywords 和
description 标签改为如下形式
metaname=keywordscontent={$metakeywords}$seokeywords
metaname=descriptioncontent=$seodescription
这里的$seokeywords、$seodescription 就是后台设置的那个值,下面说怎么定
制这个值;{$metakeywords}是奇虎的关键字,留下以后处理
2.内容页(viewthread)设置keywords 为帖子标题,description 为内容前1 字
2.1 修改viewthread.php 文件:
在includetemplate(viewthread);(更新:dz5.5为
iincludetemplate($iscircle?supesite_viewthread:viewthread);)语句的
上面加入一行:
require_onceDISCUZ_ROOT..includebmt.thread.inc.php;
2.2 创建includebmt.thread.inc.php 文件,内容为
?php
if(!defined(IN_DISCUZ)){exit(AccessDenied);}
$seokeywords=strip_tags($thread[subject]);关键字设为帖子的标题
(已更新:nethome提出问题,当启用主题分类并允许按类别浏览时,原来代码会
有问题。所以加了标签过滤,本来在viewthread.php 中改更好,为以后升级方便,
还是放在这里吧,subject 很短,不会影响效率)
$seodescription=current($postlist);description 取文章内容的前1 字
$seodescription=mb_substr($seodescription[message],,1,gb2312);
$seodescription=htmlspecialchars(strip_tags($seodescription));
?
*此处数字和个别函数适用于GBK 版本
最后一行作用是过滤内容中的html,否则在meta 中会引起语法错误。先是去除
HTML 标签,但因为这里是前1 字,有可能html 标签已经被截断了,所以又用了
htmlspecialchars 转义一下,有可能会有些垃圾信息。
当然也可以在截取之前用strip_tags 去除html 标签,可能效率会差了。
*所以此处表达式您需要根据自己的情况修改。
我目前用的是preg_replace([^\xa1-\xff],,$seodescription),即过滤汉
字以外的所在内容,但这样会损失英文关键字。
别外说明,此处数据都是viewthread.php 已取好的,所以不会产生额外的数据库
操作,只是做了字符串处理,不会引响效率。
3.列表页(forumdisplay)设置不同的keywords 和description
3.1 修改forumdisplay.php
文件,在includetemplate(forumdisplay);语句上面添加
require_onceDISCUZ_ROOT..includebmt.forum.inc.php;
3.2 创
原创力文档

文档评论(0)