相关关键词
关于我们
最新文章
- ThinkPHP 5.1、6.0、6.1 与 8.0 版本对比分析
- 涉嫌侵权的人只复制了版权软件,没有传播给其他人,是否符合复制侵权的判定?
- 网站域名备案到企业名下后,即表明是商业使用了吗?
- 软件中使用了GPL & MIT 协议的文件 和 使用了 GPL | MIT 的有什么区别?
- 网站版权纠纷中的来源非法是否有严格的司法定义?
- [确定有效] ECSHOP后台登录不了的问题解决 https打不开
- 免费搜索代码:如何利用百度做一个企业网站内搜索?
- MySQL 中 HAVING 与 REPLACE 的用法解析
- 深入理解 MySQL 的连接操作:-h、-P、-u、-p 详解
- 在 MySQL Workbench 中自定义导出文件格式的解决方案
discuz程序SEO指南
这是光年论坛管理员国平针对光年论坛写的一篇Discuz论坛SEO优化指南,非常实用的一篇文章。
光年论坛相关资料
- 双线IP并做了智能DNS解析:202.91.246.211(电信)、202.91.234.147(网通)
- 操作系统:Linux
- WEB服务器:Apache/2.2.18 (Unix) mod_ssl/2.2.18 OpenSSL/0.9.8e-fips-rhel5 PHP/5.2.17
- 论坛程序:Discuz X1.5
Discuz论坛SEO优化指南
国平对网页性能做了优化,根据搜索引擎爬虫程序从发起一个请求到返回数据,中间需要经过的途径,然后优化这些相关因素即可。大致以下几个方面:
- DNS
- 服务器网络环境
- 服务器硬件和系统
- 网站程序或CMS
- 前端代码
关于DNS、网络环境、硬件和系统,大家在文章底部的原文链接中详细了解,这里暂不介绍,主要看下网站程序优化和前端代码优化(Discuz! X1.5),下面看下具体SEO指南。
1、Discuz前端速度优化
加快前端的速度,光年论坛启用了论坛自带的gzip压缩。Discuz! x1.5后台现在还没有启用gzip压缩功能的地方,需要手动设置:
打开 /config/config_global.php 文件,把
$_config['output']['gzip'] = ’0′;
修改为
$_config['output']['gzip'] = ’1′;
即可启用gzip压缩。
Discuz!x1.5后台还可以做一些速度上的优化如启用memcache等等,这个相对麻烦点,大家可以自己尝试。
2、Discuz 静态化URL
Discuz! x1.5后台自带了一个静态化URL的功能,而且默认也写好了静态化的规则。但是这里有一个问题,就是帖子页面的静态化规则没有写好。
如默认的帖子页面规则是:
thread-{tid}-{page}-{prevpage}.html
即规则为:
thread-{帖子ID}-{帖子翻页ID}-{当前帖子所在的列表页ID}.html
问题就出在“当前帖子所在的列表页ID”这里,因为在论坛板块中,当一个帖子是最新发表或最新回复的时候,“当前帖子所在的列表页”是第一页,url中的数字是 “1”。当这个帖子很久没人回复沉下去的时候,“当前帖子所在的列表页”就不知道是几了,可能出现在第二页,也可能在第十页。这样,每个帖子的url经常在变化。会产生很多的重复页面,而且url经常变化,当前帖子积累的权重会丢失。
为了解决这个问题,可以重写url静态化规则。当然修改页面代码也能解决这个问题,但是不方便维护,因为修改后的文件以后可能会被升级文件覆盖,而且会丢失部分功能。
论坛用的是linux+apache,而且论坛是作为一个虚拟主机放在服务器上。 Url静态化的过程就这么操作:
新建一个文本文件,文件名为“.htaccess”,然后用 UltraEdit 编辑这个文件,写入的规则为:
# 将 RewriteEngine 模式打开
RewriteEngine On
# 修改以下语句中的RewriteBase 后的地址为你的论坛目录地址,如果程序放在根目录中,为 /,如果是相对论坛根目录是其他目录则写为 /{目录名},如:在bbs 目录下,则写为 /bbs
RewriteBase /
# Rewrite 系统规则请勿修改
RewriteCond %{QUERY_STRING} ^(.*)$
RewriteRule ^topic-(.+)\.html$ portal.php?mod=topic&topic=$1&%1
RewriteCond %{QUERY_STRING} ^(.*)$
RewriteRule ^article-([0-9]+)-([0-9]+)\.html$ portal.php?mod=view&aid=$1&page=$2&%1
RewriteCond %{QUERY_STRING} ^(.*)$
RewriteRule ^forum-(\w+)-([0-9]+)\.html$ forum.php?mod=forumdisplay&fid=$1&page=$2&%1
RewriteCond %{QUERY_STRING} ^(.*)$
RewriteRule ^thread-([0-9]+)-([0-9]+)\.html$ forum.php?mod=viewthread&tid=$1&extra=page\%3D$3&page=$2&%1
RewriteCond %{QUERY_STRING} ^(.*)$
RewriteRule ^group-([0-9]+)-([0-9]+)\.html$ forum.php?mod=group&fid=$1&page=$2&%1
RewriteCond %{QUERY_STRING} ^(.*)$
RewriteRule ^space-(username|uid)-(.+)\.html$ home.php?mod=space&$1=$2&%1
RewriteCond %{QUERY_STRING} ^(.*)$
RewriteRule ^([a-z]+)-(.+)\.html$ $1.php?rewrite=$2&%1
用 UltraEdit 写好规则后,按F12,在文件另存为的窗口上,有个“格式”选项,选“utf-8 -无BOM “保存。然后把“.htaccess”上传到论坛根目录。
然后在进入后台 –> 全局–>优化设置–>搜索引擎优化 。 其他保持不变,就把“主题内容页”规则改为:
thread-{tid}-{page}.html
discuz程序主题内容页规则修改图示
保存设置再更新一下缓存就可以了。
3、Discuz解决重复URL的问题和屏蔽垃圾页面
Discuz! X1.5 还是不可避免的出现重复url的问题,这些重复的url即浪费了爬虫大量的时间,又使网站的原创性受到损害。所以一定要屏蔽很多重复页面。
另外还要消除一些垃圾页面,所谓垃圾页面就是一些没什么SEO价值的页面,也帮助爬虫节约时间。
解决这个问题,最好是用robots.txt文件来解决。因为里面的规则是最强势的,所有爬虫第一次访问一个域名,第一个动作都是下载这个robots.txt文件并读取里面的规则。 其他一些nofollow和rel=canonical等标签适当的时候再用。
虽然Discuz默认写了一些robots规则,但是还是不够理想。
根据从首页的代码中发现的问题,需要在robots.txt里增加的规则有:
Disallow: /search-search-adv-yes.html
Disallow: /space-username-*
Disallow: /forum.php?gid=
Disallow: /home.php?mod=space&username=
Disallow: /forum.php?showoldetails=
Disallow: /home-space-do-friend-view-online-type-member.html
Disallow: /space-uid-*
根据在板块帖子列表页面发现的问题,需要在robots.txt里增加的规则有:
Disallow: /search.php$
Disallow: /forum-forumdisplay-fid-*
根据在帖子详细信息页面看到的问题,需要在robots.txt里增加的规则有:
Disallow: /forum-viewthread-tid-*-extra-page%3D.html$
Disallow: /forum.php?mod=viewthread&tid=
Disallow: /forum-viewthread-tid-*-page-*-authorid-*.html
Disallow: /forum-viewthread-tid-*-extra-page%3D-ordertype-*.html
Disallow: /forum-viewthread-action-printable-tid-*.html
Disallow: /home-space-uid-*
至于为什么要写这些规则,大家可以自行到源代码里查看为什么。
robots.txt写到这里并不是结束,还有两件事情要做。
- 因为robots.txt和nofollow是不同的意思,所以robots.txt并不能代替nofollow。以上这些需要屏蔽的地方还需要用nofollow标注一下。 不过因为要改的源码太多,暂时先不动。需要用nofollow,还有一个原因是某些搜索引擎并不遵守自己所定下的robots规则。
- 因为只看过论坛中的三类主要页面,还有很多页面没查看过,难免会有漏掉的地方,所以需要以后经常到日志中查看爬虫的轨迹,看看爬虫还有哪些抓取问题。
4、Discuz程序修改网页的头部信息
Discuz x 1.5 的<head>部分有一些信息是我们不想要的,所以需要修改。
打开 \template\default\common\header_common.htm 。
找到 <title> 部分, 去掉 Powered by Discuz! 以及最后一个中划线“-”。
然后删除 <meta name=”keywords” 这一行。 因为keywords已对SEO没有任何用处,所以去掉也没什么。
其他的一些选项如 : <meta name=”generator” 和 <meta name=”author” 等等按理可以去掉,但是很多开源系统存在很多年了,搜索引擎能适当的判断出来一个网站用的是什么CMS,所以暂时保留。因为Discuz 在SEO方面还是存在其他一些不合理性的,让搜索引擎知道这个网站是用Discuz做的会有好处。
5、修正Discuz程序本身的一些静态化错误
Discuz x 1.5 升级到 11.25 补丁后,因为系统默认的首页都是 forum.php,即使访问index.php也会301重定向到 forum.php 。可以在模板设置里把这个forum.php的文件名改成其他文件名或暂时不动。
还有一个问题,就是“主题内容页面”(详细帖子页)的静态化规则,很多规则都和版块列表页面的URL都不统一。
如:帖子的翻页地址从第二页起都为:
forum-viewthread-tid-220-extra-page%3D-page-2.html
这样的形式,但是实际上URL应该为:
/thread-220-2.html
这样的形式。
还有就是在面包屑中,论坛版块的URL为:
/forum-forumdisplay-fid-45-page.html
这样的形式,而实际应该为:
/forum-45-1.html
如下图:
所以打开 /source/module/forum/forum_viewthread.php,找到第108行:
if(!empty($_G['gp_extra']))
在上面加一行:
$_G['gp_extra'] = !empty($_G['gp_extra']) ? rawurlencode($_G['gp_extra']) : ”;
6、修改Discuz程序配置 让搜索引擎收录图片
图片SEO过来的流量也会不少的,但是Discuz x 1.5默认的设置是游客无法看到图片的。也就意味着搜索引擎也收录不了帖子中的图片。
打开 后台 – 用户 – 用户组 – 系统用户组 – 游客 - 编辑 – 附件相关,在“允许下载/查看附件”上选“是”。
但是如果光这样设置了,那游客也可以下载其他附件了。 所以在 后台 – 全局 – 积分设置 – 积分策略 里,把下载附件设置需要1个金币就是。这样下载其他附件还是需要注册成为会员的。
Discuz程序SEO指南原文结束。
原文地址:http://www.gnbase.com/thread-116-1.html
今天一位朋友让我帮忙分析下站内,她的网站也是用Discuz程序做的,与上面光年论坛的一些资料不一样,她的服务器和程序相关信息为:
- Windows Server 2003
- WEB服务器 Microsoft-IIS/6.0
- Discuz程序版本是X2
其他信息目前还不清楚,该网站站内需要改善的还有很多。但上面这篇的Discuz x 1.5程序SEO指南很多可以参考,另外这位朋友的网站不仅仅是论坛模块,还包含门户、家园、群组等板块,上面指南中是根据光年论坛来写的,所以一些程序上的优化还需要根据网站的实际情况来进行,另外一些修改建议我是直接拿过来的,在实际运用中还需要针对性检查,以便造成不必要的失误。