Discuz论坛的SEO优化方案

上传人:ji****72 文档编号:45618423 上传时间:2018-06-18 格式:PDF 页数:9 大小:136.34KB
返回 下载 相关 举报
Discuz论坛的SEO优化方案_第1页
第1页 / 共9页
Discuz论坛的SEO优化方案_第2页
第2页 / 共9页
Discuz论坛的SEO优化方案_第3页
第3页 / 共9页
Discuz论坛的SEO优化方案_第4页
第4页 / 共9页
Discuz论坛的SEO优化方案_第5页
第5页 / 共9页
点击查看更多>>
资源描述

《Discuz论坛的SEO优化方案》由会员分享,可在线阅读,更多相关《Discuz论坛的SEO优化方案(9页珍藏版)》请在金锄头文库上搜索。

1、设 discuz 已启用伪静态功能,使用 5.5.5GBK 版本; 1、meta,content 优化 2、内容页的网页复制问题 3、robots.txt 使用及其它 更新 discuz5.5 的 robots.txt 问题 DZ 禁止一个版面帖子的收录的补充 一、meta 的优化 discuz 的后台可以对 meta 信息进行设置,甚至可以添加自己的头部信息,但它的设置都是针对于所有页面的, 全部页面都拥有相同的 keywords 和 description是(亿推英文 TuiGuang123_CO)所不赞成的。 方案一:删除 meta 修改页头模板文件 templatesdefaulthe

2、ader.htm:将 meta 的 keywords 和description 标签删除。 这两个标签作用很小了, 而且还有 discuz 自带的一些无用信息, 用得不好反而会有坏作用,因此宁缺勿滥。 方案二:定制 meta 本部分实现了将内容页 keywords 设为帖子标题,description 为内容前 1 字;也实现了主页与各版列表页 meta 的单独设置(不同版的不同,同一版各列表页相同) 。 1.修改页头模板文件 templatesdefaultheader.htm:将 meta 的 keywords 和description 标签改为如下形式 这里的$seokeywords、$

3、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

4、.inc.php; 2.2 创建 includebmt.thread.inc.php 文件,内容为 *此处数字和个别函数适用于 GBK 版本 最后一行作用是过滤内容中的 html,否则在 meta 中会引起语法错误。先是去除HTML 标签,但因为这里是前 1 字,有可能 html 标签已经被截断了,所以又用了htmlspecialchars 转义一下,有可能会有些垃圾信息。 当然也可以在截取之前用 strip_tags 去除 html 标签,可能效率会差了。 *所以此处表达式您需要根据自己的情况修改。 我目前用的是 preg_replace(xa1-xff,$seodescription),即

5、过滤汉字以外的所在内容,但这样会损失英文关键字。 别外说明, 此处数据都是 viewthread.php 已取好的, 所以不会产生额外的数据库操作,只是做了字符串处理,不会引响效率。 3.列表页(forumdisplay)设置不同的 keywords 和 description 3.1 修改 forumdisplay.php 文件,在 includetemplate(forumdisplay);语句上面添加 require_onceDISCUZ_ROOT.includebmt.forum.inc.php; 3.2 创建 includebmt.forum.inc.php 文件,内容为 更新:一般

6、情况下可以不用 switch 和 case,列表页的关键字为版名,说明为版的说明,若要对某个版设置特殊的关键字和说明,可以设置 case。这样解决了版面很多时要设置很多 case 语句,加快了程序执行速度(不了解 php,JAVA 的 case进行了优化,执行很快) 使用修改文件来实现,每版的 meta 改起来不方便,感觉有些弱智,呵呵。但没有改数据库,用了两个单独的文件,修改了两个文件也很简单,这样升级或迁移更方便吧 case 虽然多了一些,但比起读数据库的记录,速度应该快很多 4.主页 meta 在后台设置即可。 (如果 2、3 不做,则 meta 也同主页) content 的优化 di

7、scuz 有个 archiver, 一是 URL 容易收录, 二是页面比较干静, 还有 description会从正文中取内容,但 archiver 没有对内容中b url之类的解析,那些标签起不到作用,原样显示还会增加垃圾信息。 本部分主要做两方面的优化,一是去除内容页的无用信息,二是给标题加上 。加上伪静态和上篇 meta 的优化,效果就超过了 archiver,因此可以在后台禁用它,还减少了复制网页。 实施方案 1.隐藏内容页(viewthread)中的无用信息: 修改内容页模板文件 templatesdefaultviewthread.htm: 用将要隐藏的信息包含起来。 准确的说是当

8、游客(bots)访问时,隐藏那些信息,当用户登录后是正常的,所以不影响使用。 这些信息主要指的是左侧用户信息栏、 (资料个人空间主页短消息等等) 、用户的签名(隐藏后不怕签名的内容影响正文,链接也不起作用了:P) 以住相关文章 2.为标题加上 标签 修改内容页模板文件 templatesdefaultviewthread.htm: 将$postsubject替换为 $postsubject 定制“本帖最后由 XXX 于 xxxxxx 编辑”内容 修改文件 templatesdefaultmisc.lang.php:将下面两行改成您喜欢的内容: post_edit=nni本帖最后由$editor

9、 于$edittime 编辑i, post_edit_regexp=n2i本帖最后由.*?于.*?编辑i$s, 比如我改成网站名 URLxxx 于 xxxx 编辑。改程序无聊时的自娱,呵呵 注意上下两个表达式要匹配。为了防止解析方括号是全角,不要复制后在文件中查找。 二、内容页的网页复制问题 看看内容页的 URL 大家就知道了:thread-(tid)-(page)-(forumdisplaypage),可以看出最后一节表示的是此帖在列表页的第几页。 所以, 当您的帖子越来越多,这个帖就会由第一页到第二页., 它的 URL 就会不断的变化。 其实打开一个列表页就可以看出来,第 2 页的帖子链接

10、的最后数字都是 2,第 3 页的都是 3,只是很少注意它。我是在 SE 的收录中发现复制网页越来越多,才对最后的数字注意的。 解决方法 修改 forumdisplay.php 文件: 将$extra=rawurlencode(“page=$page$forumdisplayadd“);语句替换为 $extra=rawurlencode(“page=1$forumdisplayadd“); 语句中的 page 就是 forumdisplaypage,这样改后不管帖子在列表页的第几页,这个数都是 1。 功能损失:当用户编辑帖子或版主管理帖子后,有个提示跳转页:选择转入列表页还是主题页, 这时转入列

11、表页的话, 只能转到列表页第一页,而不管您原来停留在第几页。 redirect 的 31 重定向 在discuz论坛中可以看到类似redirect.php?tid=xxx语句替换为 $bmt_url=Location:thread-.$tid.-.$page.-1; header(HTTP1.131MovedPermanently); header($bmt_url); 将后两个 require_onceDISCUZ_ROOT.viewthread.php;语句替换为 $bmt_url=Location:thread-.$tid.-1-1; header(HTTP1.131MovedPerma

12、nently); header($bmt_url); dz5.5 的引用处也有个跳转,也可以做 31: 将dheader(“Location:viewthread.php?tid=$posttid替换为 $bmt_url=Location:thread-.$posttid.-.$page.-1#pid.$pid; header(HTTP1.131MovedPermanently); header($bmt_url); *注意此处直接转到了静态地址, 没有做判断是否开启伪静态功能, 所以不开启会有问题 功能损失:转向到静态地址后,动态地址中类似#lastpost 的锚点将无法起作用了,可能要手动

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

14、文件,但加入 metarobot 标签,如下 2.分别修改 templatesdefaultnopermission.htm 和templatesdefaultshowmessage.htm 文件 将它们第一行的templateheader替换为templateheader_disbots 虽然对 metarobots 标签支持的不是很广泛,但这是比较省事的方法 因为是提示信息页,用 31 来实现的话,还要传给转到的页好多信息,修改起来比较麻烦 三、robots.txt 使用 User-agent:* #禁止一个版面的收录 #如果有个水版,不想禁止游客权限,也不想 SE 收录,已免影响网站质量

15、,可以用如下方法 Disallow:forum-1- #数字即为要禁止版块的 ID。 #注意数字最后的-不要省略,否则连 ID 为 11,12 等 1 开头的版都禁了 更新补充方法:再给内容页加 metarobot 禁止 #再禁网页复制 Disallow:viewthread.php #这个是内容页的动态形式, 前面对伪静态做了优化并修改了很多的复制网页, 因此这里动态形式如打印页等一定要禁止 Disallow:forumdisplay.php #这个要慎重:列表页的动态形式,还包括精华、活动、投票等形式。我发现 5.的静态化不彻底,它的上一页下一页翻页仍是动态,这样如果禁止了,十页之后的内容

16、就不能通这索引了。所以如果您站内的交差链接不丰富的话,不要在此禁止,以免影响收录。 hekaiyu说没有这个问题, 去官方看了下5.5的确没问题(也许我的5.本来没问题,也许官方在新版本中完善了正则表达式的替换规则),这样更好了,禁止它,又干净了好多 #禁止其它无用内容 Disallow:profile #用户信息,不知为什么 discuz 也静态化了,一律禁止 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

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 行业资料 > 其它行业文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号