不管是做什么样的论坛我们都要完善论坛功能和内容的同时,兼顾论坛的各方面SEO设置,毕竟一般的论坛大部分流量还是来源于搜索引擎的,
所以今天给discuz建站的新手们一点SEO设置方面的指导。
注意:今天说的是论坛SEO的基本设置,对论坛收录、关键词排名是没有直接作用的。SEO基本设置就好比一辆赛车配置,而SEO优化则相当于赛车手的发挥,当然,配置是基本的条件。希望大家能够理解SEO设置的作用。
好了,进入正题,那么我们需要在discuz后台哪些地方进行设置呢?主要有以下几点
1、伪静态设置
2、论坛标题、关键词、描述设置
3、板块、帖子的标题格式
4、关联链接设置(关键词内链)
5、网站地图
接下来一一讲解,
1、对于伪静态需要另外写篇教程,因为不同服务器设置方式不同。2、论坛标、关键词、描述设置
对于网站地图我们没必要手动去生成,我们只需在应用中心找”网站地图插件版“安装即可,会自动实时生成网站地图,有利于搜索引擎蜘蛛的爬取。
到这里,一个论坛的基本SEO设置已经基本完成,但这只是论坛SEO工作中的基础工作,更多的需要我们在论坛内容上下功夫。
我们知道discuz论坛,当一个帖子,或者文章被删除后,再次打开原本URL地址的话discuz程序会提示你该帖子/文章或者板块不存在。但是,你考虑过这个被删除的页面对于SEO的影响吗?
以千酷论坛的一个被删的板块()为例:
通过站长工具查询这个页面的http返回状态码:
不知道大家发现没有,虽然这个板块被删除了,但是对于搜索引擎返回的状态码竟然还是200!也就是搜索引擎会把这个页面当作正常页面一样索引,但是这个页面却是没有内容的,这种类似现象应该叫做软404,也就是看似是一个404样式,却完全没有产生404的效果,起码没有返回状态码404。
其实这是discuz程序seo方面的一个盲区,我们需要做的是,将一个已经被删除的帖子或者文章给予搜索引擎返回码404,然后制作一个404页面,这样才是一个对于搜索引擎友好的设计。
解决方法
找到文件:sourcemoduleforumforum_viewthread.php
(如果是文章的话则是:sourcemoduleportalportal_view.php,以此类推)中的:
showmessage(‘thread_nonexistence’);
替换为:
header(‘HTTP/1.1 404 Not Found’);header(‘status: 404 Not Found’);include(“404/index.html”);exit();
其中“404/index.html”为自己设置的404页面的路径。
最终优化效果:
一个已被删除的文章页面优化前:
优化后(,已自动跳转至404页面):
之前给大家分享了修改Discuz帖子/文章被删除后跳转至404页面,并返回404状态,让大家知道了如何设置帖子或者文章被删除了后返回404状态,从而对404更有利。(修改404的重要性就不再赘述了,懂的自然懂。)
那么如果插件被删了,出现“插件不存在或已关闭”
那么如何使这样一个页面也返回404代码呢?
在解决这样一个问题之前我也百度了一下,这个问题关注的人并不多,有人有这样的疑问,但是没有解决,所以没有从度娘那里找到答案。在苦苦折腾一番之后终于找到了代码在哪里修改,特此给大家分享一下。
解决步骤
1、打开网站根目录,找到“plugin.php”文件,最好使用专业点的软件打开,比如editplus、dreamweaver等。
2、找到第37行代码,具体位置:
if(empty($identifier) || !preg_match(“/^[a-z0-9_-]+$/i”, $module) || !in_array($identifier, $_G[‘setting’][‘plugins’][‘available’])) { showmessage(‘plugin_nonexistence’);
将其中的
showmessage(‘plugin_nonexistence’);
替换成:
header(‘HTTP/1.1 404 Not Found’);header(‘status: 404 Not Found’);include(“404/index.html”);exit();
因为“showmessage(‘plugin_nonexistence’);”这一段在文件里出现比较多,37行的替换掉对于seo效果是最好的,其他的可以不用管,
其中“404/index.html”为自己设置的404页面的路径。
效果演示:修改之前:
修改之后:
为什么链接是这样的动态地址,而不是伪静态的地址呢?我们很容易发现url地址中有“fromuid=1”通俗的理解为“来自uid1”。
到这里我们应该能够理解,这其实discuz“访问推广”的功能,别人通过这个链接访问了这个帖子,那么uid为1的这个用户就会得到一定的积分。
既然我们知道了原理,那么你应该能够知道思路,那么就是关闭“访问推广”功能,我们通过后台会发现推广访问功能是关不了的,那么我们可以另辟蹊径,那就是把访问推广获得的积分设置为“0”,这样,这个访问推广功能就会变得无意义,系统会自动把“复制链接“变为伪静态地址。
OK,我们已经知道了所有来龙去脉,那么就开始把。
步骤:
插件介绍:
Discuz!X增加了标签功能,但是官方始终没提供标签的伪静态功能,所有标签页面都是动态的,这不利于百度收录,于是本插件诞生了,开启插件后所有标签相关的页面会自动伪静态,无需修改任何模板文件,兼容所有模板。
有利提高网站的收录、增加网站的权重、提升网站的搜索流量。此插件给你网站带来高效的收录和流量。网站天天快照,新帖快速收录,网站帖子快照更新,网站搜索功能,网站SEO优化。提高收录,搜索引擎的权重和快照更新,搜索流量提升。关键是新老网站,网站必须每日有新内容,更新内容,方才有效果。[如果你网站全部是采集,而什么都没有改动,这样本来就对网站不利。再好的插件也没有用。不管什么插件都不是万能的啊。什么百度谷歌收录神器,蜘蛛爬行,网站地图等等SEO插件都是没有用的。网站还是要靠自己优化的。原创内容、好的内容。搜索引擎不收录、流量不高才怪]
使用帮助:
开启插件后把插件后台提供的伪静态规则按说明添加到你论坛的伪静态文件里
标签页演示:
标签首页:tag.html
标签默认内容页:tag-274.html
标签相关帖子页:tag-thread-274-1.html
标签相关日志页:tag-blog-274-1.html
特别提示:演示地址请以本介绍给出的URl为准,演示可查看草根吧网站。
(一)、伪静态规则添加
WIN的添加(httpd.ini)伪静态规则:
linux系统(.htaccess或httpd.conf)伪静态规则:
确保最后一行伪静态规则为:
(二)、修改帖子内标签链接(修改原程序文件建议备份,养成好习惯)
X3.2 是 template/default(模板目录)/forum/viewthread_node_body.htm下载到本地打开
查找:
替换为:
(三)、修改标签页(tag.htm)标签链接
文件在template/default/tag/tag.htm
查找:
替换为:
(四)、修改标签列表页导航链接tagitem.htm
文件在template/default/tag/tagitem.htm (共2处!)
查找1:
替换为:
查找2:
替换为:
(五)、最后修改robort.txt让蜘蛛爬行标签页.
删除或注释掉根目录下misc.php的这段代码
robots.txt文件删除以下两条禁止蜘蛛抓取的规则:
Disallow: /misc.php
Disallow: /*?mod=misc*
1、sitemap网站地图插件
2、百度主动推送
3、蜘蛛记录4、nofollow
5、百度sitemap(结合sitemap数据提交与百度的站内搜索。)
6、有机会的同学,最好用一下百度加速云
如果设置 GIF 类型的文件作为水印,水印图片为 static/image/common/watermark.gif,如果设置 PNG 类型的文件作为水印,水印图片为 static/image/common/watermark.png,您可替换水印文件以实现不同的水印效果。如果设置文本类型的水印并且使用 GD 图片处理库,那么还需要 FreeType 库支持才能使用。将修改好的水印图片替换就可以了。然后开启插件。
参考地址:http://addon.discuz.com/?@addon_baidu_search.plugin.64073
或者下载插件:百度sitemap
至此,所有版权文件的位置均已经罗列出来了,对于懂点代码的站长而言,修改肯定得心应手了,菜鸟级别的如果有什么不懂的就请留言吧。记住文件的修改技巧就是,用dreamweaver打开后,用“查找和替换项”搜索 Powered ,然后修改相关内容。
2、全文搜索:
然后就可以看测试效果了。
1、第一步:根目录中,admin.php可以自定义名字或者目录名+自定义名字比如:abc.php 或者 mulu/abc.php
2、第二步:进入 template/default/forum/下找到viewthread_node.htmCTRL+H批量替换 admin.php?为 abc.php? 或者 替换为 mulu/abc.php?
3、第三步:进入 data/template/下找到 8_diy_forum_viewthread.tpl.php CTRL+H批量替换 admin.php?为 abc.php? 或者 替换为 mulu/abc.php?
4、第四步:进入 api/addons/ 下找到channel.htmCTRL+H批量替换 admin.php?为 abc.php? 或者 替换为 mulu/abc.php?
注意:1、Ctrl+H替换时,一定替换admin.php?而不是admin.php 2、修改时候请用专业软件修改。
增加伪静态规则,以Nginx为例:
注意:必须放在
windows:
之前任一行,否则无法生效。修改后需要重载Nginx。
2、让“导读”页面上的 最新XX 、抢沙发 等(除“我的帖子”)标签的链接伪静态化。打开 forum/guide 模板文件,将
后面的5个li行替换为:
将
替换为:
3、将底部翻页按钮前的“导读首页”改为“最新热门”,并将其链接伪静态化。打开 forum/guide 模板文件,将
修改为:
4、将面包屑导航条中的“导读”改为站名,并使后面的链接伪静态化。打开 forum/guide 模板文件,将
修改为
打开 source/module/forum/forum_guide 文件,将
替换为
5、删除title中的“导读-”。打开 source/module/forum/forum_guide 文件,将
替换为
并在前面增加一行
6、让“导读”页面上的翻页按钮静态化。打开 source/module/forum/forum_guide 文件,将
剪切到其后
里面的第一行,然后在
前增加一行
(此项操作的目的是使“我的帖子”页面的翻页功能不受影响)。接着将
修改为:(将翻页按钮由标准改为自定义)。
打开 source/function/function_core 文件,在这段代码前面定义(定义multi_guide):
定义:
进入 source/class/helper/ 目录,将 helper_page.php 复制一份命名为 helper_page_guide.php 。并依次修改 helper_page_guide.php 文件中的以下部分:
修改为:(共两处,其中文件头注释中的那处无关紧要);
将
改为:
将
修改为:(此项操作使手动输入页码翻页时链接静态化)
将 (翻页页码链接静态化)
修改为
7、首页“最新回复”链接静态化。打开 forum/discuz 模板,将 forum.php?mod=guide&view=new 替换为 latest-new-1.html 。8、将“我的帖子”标签链接加上nofollow,并且在未登录状态下不出现下拉菜单。
打开 forum/guide 模板文件,将
修改为
将
修改为:
9、整理“导读”页面“rss订阅”的代码。打开 source/module/forum/forum_guide 文件.将
修改为
将
修改为:
将
替换为
10、去掉最后回复时间及其作者的链接,给主帖作者链接加上nofollow。打开 forum/guide_list_row 模板将
后面的替换为:
将
修改为
11、删除标题前面图标的链接。打开 forum/guide_list_row 模板,删除
起至
12、删除回复数的链接。同样是 forum/guide_list_row 模板,将
替换为
OK,完工
功能说明:admin.php是discuz默认的后台地址,正常情况下可以直接访问,为了防止某些恶意访问的情况,可以修改以下内容进行安全性能提升。
适用版本:Discuz!x1-x3.2
具体实施方案:
admin.php中找到:
$discuz->init();
换行后,添加如下代码,就可以了
if(!$_G[‘uid’] || !getstatus($_G[‘member’][‘allowadmincp’], 1)) {
header(‘Location: /’);
}
如果用户非管理员全部返回网站根目录。
在forum.php?mod=guide&view=newthread地址的导读中,对于最新发表等会有一个横条的导航。去掉方法如下:
打开templatedefaultforumguide.htm模板文件,找到17-35行的代码进行删除,更新缓存后这个横条就被去除了
打开uc_server/model目录里的admin.php
找到:
替换为:
1、去除:“分享到:QQ空间、腾讯微薄、腾讯朋友”
文件目录为(文本编辑器打开):template/default/forum/viewthread_node.htm(举例为默认模版)
搜索到:(删除即可)
2、去除:“分享、收藏、支持、反对、评分”
文件目录为(文本编辑器打开):template/default/forum/viewthread_node.htm(举例为默认模版)
搜索到:(删除即可)
每次去爱战网查询自己论坛的友情链接时,看到那句“首页无本站链接”心里就觉得别扭,特别是discuz论坛,一下子居然有3个这种单向链接,真是忍无可忍啊!可又不知到怎么删掉那些链接,十分的苦恼,不过这个问题总算被垃圾站解决了,下面就看看教程吧!
首先:去掉底部防水墙链接的方法→
FTP登陆网址根目录,查找sourcepluginsecurity里面security.class.php文件,使用Dreamwever打开security.class.php搜索以下代码(大概在代码91行,不同的DZ版本不同):
如果想直接去掉链接则替换为以下代码:
(实际上是删除这段代码即可<a href=https://www.321dz.com/”” target=”_blank” title=”‘.lang(‘plugin/security’, ‘title’).’”>):
当然也可保留链接而加上nofollow标签:
第二:去掉底部版权Powered by Discuz! X2.5、© 2009-2012 Comsenz Inc.处链接→
打开根目录下templatedefaultcommon 找到footer.htm文件,用deamweaver打开,点击编辑,再点击查找和替换powerd by Discuz! 知道相应的位置修改底部版权的相应内容,找到以下代码:
并删除代码中的:
(1)<a href=https://www.321dz.com/”” target=”_blank”>
(2)<a href=https://www.321dz.com/”$_SERVER[HTTP_HOST]” target=”_blank”>
(3)<a href=https://www.321dz.com/”” target=”_blank”>
这三段代码就可去掉底部链接!
第三:去掉Archiver页面的版权链接→
查找以下代码:
删除sourcearchivercommonfooter.php文件中超链接代码<a target=”_blank” href=https://www.321dz.com/””>即可:
第四:删除搜索页面的版权链接→
在根目录template/default/search/footer.htm找到以下代码:
删除超链接代码即可……
当然如果不想删除以上的这些DZ论坛超链接,也可保留链接而加上nofollow标签,方法同文章中加粗红字标注的方法一致!
昨天在建设那个IT产品网站的时候遇到了一个问题:那就是建立一个经销商栏目。而在这个经销商栏目中需要添加大量的商家信息,如商家所在地区,商家名称,商家主营产品,商家联系方式等,这时候问题来了,这么多的商家信息访客该如何快速的筛选呢?
由于discuz门户文章没有标签功能,虽然自带了一个聚合标签,但是标签数量只有8个,明显是不够用啊。但是又非常想要实现这个功能。于是,我在网上查找了下,看到了大量的discuz用户都被这个问题困扰着,而解决的方法却少之又少。大概看了下,一共就2种方法,分享给大家:
第一种是修改聚合标签的数量
聚合标签所在的文件里的个数限制是写死的,就是8,所以自定义增多几乎是不可能的,除非核心程序改变。
要改的几个核心文件有:
(1)source/admincp/admincp_article.php
第51行:
(2)source/function/function_portalcp.php
第567行开始,依次找到8的地方:
分别修改8为你想要的个数,比如我的就是12。以上的行数是相对您没有改过源代码的情况,如果改过,就按文件名搜索好了。
(3)改变数据库字段长度
默认的tinyint的unsign型最大是255,而255只能支持8个标签。
所以这里改成smallint,最大支持32位,如果还不够就继续增大int型即可。
改到这里,基本就可以啦。
后台,门户,文章管理,聚合标签,上数据!
前台,发文,看聚合标签,有值。
或者手工在数据库那修改数据也行,数据存储在 pre_common_setting 表中的 skey 字段值为 “article_tags”的记录,然后修改 svalue 即可。可以用以下sql语句把 svalue 选出来修改:
第二种方法是添加一个tag模版
第一步、修改文章添加Tag模版:/template/default/portal/portalcp_article.htm
找到内容代码:
在此代码下面添加
第二步、添加pre_portal_article_title表字段
字段名:tags ,类型varchar(255), 默认为空。
在后台的站长->数据库->升级 下面的Discuz! 数据库升级,文本框,复制下面SQL:
注意:1、操作前备份数据库,2、不论表前缀是不是默认的,都可以直接用此代码(我的表前缀不是默认的已经成功),如果没有升级成功,那就请用pre_portal_article_title。
第三步、修改文章添加,修改,处理,函数/source/include/portalcp/portalcp_article.php
查找代码
在此代码下面添加
继续查找代码
修改为
(简单的就是在最后一行前加一句以上代码 )
第四步、修改文章显示函数/source/module/portal/portal_view.php
找到代码
在此代码上面一行插入代码
第五步、修改文章显示模版/template/default/portal/view.htm
可以自己选择要放的位置,例如放到内容下面:查找
然后在下面加入代码
第六步、进入后台->工具->更新缓存。只选择清理数据就可以了。
地址:
问题分析
“conuintoken” in “field list”,我们查mysql主知道是说这个列不存在了,解决办法只需要增加列即可。
解决办法
1、修改config/config_global.php文件查找下面代码把0改为1,开启后台直接运行SQL
$_config[‘admincp’][‘runquery’] = ‘0’;
2、在后台后台——站长——数据库——升级,粘贴以下代码提交:
alter table pre_common_member_connect add conuintoken char(32) not null;
alter table pre_common_connect_guest add conuintoken char(32) not null;
或直接在用phpmyadmin进行数据库升级操作
打开你的phpmyadmin,选择论坛的数据库, 点击 sql功能 ,
输入以下句子运行:(其中的 pre_ 为你论坛数据库的表前缀,如果不是默认的,请注意修改)
ALTER TABLE `pre_common_member_connect` ADD COLUMN conuintoken char(32) NOT NULL DEFAULT ”;
ALTER TABLE `pre_common_connect_guest` ADD COLUMN conuintoken char(32) NOT NULL DEFAULT ”;