最新的织梦(DedeCms)SEO优化


最全的织梦(DedeCms)SEO优化全攻略
这是一篇从DEDECMS标签入手谈SEO优化的文章,操作才需要了解DEDECMS标签的作用和规则进行修改,建议修改前先进行备份操作。

网站管理系统:DedeCms 是公认的在SEO优化方面做得做好的CMS,可能很多人会说,优化是靠个人的,与CMS无关,这其实也不尽正确,因为必须程序提供商提供足够的工具才有可能,举例说:如果某CMS的栏目设置连关键字、摘要都没有,何来优化之说?本文以DedeCMS为例,深入说明SEO优化方面的攻略,本文所说的优化绝对不是那种含作弊的SEO策略,而是针对网站自身的内容,提高搜索引擎对内容的识别能力。

一.织梦的全局优化

在DedeCms的系统参数配置中,包含了“网站版权、编译JS等底部调用信息;站点默认关键字;站点描述”这些项目,其实必须注意的是站点默认关键字、站点描述的设置必须合理。

(1) 站点名称和关键字是搜索引擎识别你这个网站内容的关键,其中在主页的网站名称可以手工填写,在标题的地方适当增加一些关键字。

(2) 网站摘要(站点描述)必须要合理,最理想的写法应该是“某某网站是关于某某方面的内容的网站”这里千万别堆砌关键字,否则可能会被搜索引擎视为作弊或放弃使用你指定的这些描述作为站点描述。

(3) 对于新站而言,为了提高网站名的权重,还可以在底部放一些“某某网站的内容来自何处或版权所有之类”这里也不能堆砌关键字或仅突出某一两个关键字,仅是为了提高网站名的权重。

二、栏目标题与关键字、摘要的合理SEO

对于有耐心的用户,在新建栏目时最好把栏目的关键字填写完整,如果没有耐心的,不妨用下面的方法。

在建好所有栏目后,到系统-》SQL命令行工具的地方运行下面的SQL:

Update `dede_arctype` set
keywords=Conact(typename, ‘,’, typename, ‘,’, ‘和内容相关的关键字,如:教程、新闻、资源等’),
description=Conact(’本栏目主要是关于’, typename, ‘,’, typename, ‘,’, ‘和内容相关的关键字,如:教程、新闻、资源等’, ‘方面的内容’);
三、核心文章内容的SEO

DedeCms 提供了自动关键字提取、自动摘要等各类工具来进行文档的优化,不过有部份用户往往习惯对本站所的文章都用同样的关键字、同样的摘要,这种方法是极不可取的,如果在没法获得关键字和摘要的情况下,宁可放弃这些描述,让搜索引擎自动生成。

使用DedeCms时,需要进行如下更改:

(1) 对于多页的文章 DedeCms 的标题默认没有1、2、3之类的标识,这里可以打开 arc.archives.class.php

在大约是 350 行左右的地方找到“//循环生成HTML文件”,然后把for循环起始的地方改为

for($i=1;$i<=$this->TotalPage;$i++)
{
if($this->TotalPage > 1) {
$this->Fields[‘tmptitle’] = (empty($this->Fields[‘tmptitle’]) ? $this->Fields[‘title’] : $this->Fields

[‘tmptitle’]);
$this->Fields[‘title’] = $this->Fields[‘tmptitle’].”($i)”;
}

 

这样就能使多页文章的标题带有(1)、(2)、(3)… 的标识了。

(2) 如果标题进行了修改,那么每页所对应该的摘要必须也要进行修改,否则会被搜索引擎认为描述是相同

引发被怀疑堆叠关键字的警告。

打开 arc.archives.class.php 找到 function ParseDMFields($pageNo,$ismake=1)

if($this->SplitPageField!=” && isset($this->Fields[$this->SplitPageField]))
{
$this->Fields[$this->SplitPageField] = $this->SplitFields[$pageNo – 1];
}
改为

if($this->SplitPageField!=” && isset($this->Fields[$this->SplitPageField]))
{
$this->Fields[$this->SplitPageField] = $this->SplitFields[$pageNo – 1];
$this->Fields[‘description’] = trim(ereg_replace(”[\r\n\t]“, ‘ ‘, cn_substr(html2text($this->Fields[$this

->SplitPageField]), 200)));
}

 

这样文档每页的摘要便有所区别。

四、创造符合GOOGLE面包屑导航的目录式SEO

DedeCms V5.3中,为了兼容某些人配置的WEB服务器,对栏目链接强制指向了默认页,即是显示为 typedir/index.html ,对于某些用户可能希望指定”typedir/”, 对于SEO而言,这确实有利于体现出网站的目录结构,因此这样想法是合理的,如果你的网站结构比较简单(如不使用一些公司简介之类的非默认页链接),可以 按下面方式修改。

打开文件 channelunit.func.php 找到 function GetTypeUrl

($typeid,$typedir,$isdefault,$defaultname,$ispart,$namerule2,$moresite=0,$siteurl=”,$sitepath=”)

把前面一段

if($isdefault==-1)
{
//动态
$reurl = $GLOBALS[‘cfg_phpurl’].”/list.php?tid=”.$typeid;
}
else if($ispart==2)
{
//跳转网址
$reurl = $typedir;
return $reurl;
}
else
{
if($isdefault==0 && $ispart==0)
{
$reurl = str_replace(”{page}”,”1″,$namerule2);
$reurl = str_replace(”{tid}”,$typeid,$reurl);
$reurl = str_replace(”{typedir}”,$typedir,$reurl);
} else {
$reurl = $typedir.’/’.$defaultname;
}
}
改为:

if($isdefault==-1)
{
//动态
$reurl = $GLOBALS[‘cfg_phpurl’].”/list.php?tid=”.$typeid;
}
else if($ispart==2)
{
//跳转网址
$reurl = $typedir;
return $reurl;
}
else
{
if($isdefault==0 && $ispart==0)
{
$reurl = str_replace(”{page}”,”1″,$namerule2);
$reurl = str_replace(”{tid}”,$typeid,$reurl);
$reurl = str_replace(”{typedir}”,$typedir,$reurl);
} else {
if(!isset($cfg_need_dfname) || $cfg_need_dfname==’N’) $reurl = $typedir.’/’;
else $reurl = $typedir.’/’.$defaultname;
}
}

 

关键在于:“if(!isset($cfg_need_dfname) || $cfg_need_dfname==’N’) $reurl = $typedir.’/’;”这一句不过大家一定需注意一个问题,目录必须用 typedir/ 的形式,否则在IIS如果用 typedir不带”/”的形式,IIS会通过303永久重定向到 typedir/ ,让搜索引擎又多费了一重功夫,这显然不搜索引擎喜欢的,也不是我们想看到的。

5、重复文档标题

不管任何情况,尽量减少你网站出现的重复文档,DedeCms本身也提供了重复标题检测处理的功能,在网站被搜索引擎大量收录前,必须排除网站上重复的文档,如果重复量过大,甚至会被认为你的网站是作弊的。

综上总总,DedeCms 自身为SEO提供了各类的工具,不愧是SEO优化做得最好的CMS,在默认模板上也有体现,但由于兼容性原因,官方也没开放所有符合SEO的方案,如果你做的网站进行上面所说的修改后,并不会影响到运行,这样将会更完美。
这几天用Dedecms做了一个站,为了使得程序更适合SEO,我对程序进行了一些简单的优化。这里分享下我的一点点非常简单的技巧,仅供大家参考下,老鸟不要拍砖,心里默默的鄙视就好了。我这里说的是Dedecms默认模板的修改,不涉及到一些怎样伪原创、怎样选择关键词之类SEO优化技术,以免浪费您宝贵的时间。

一、网站路径的优化

①Dedecms默认安装后。文档HTML默认保存路径是放在跟目录的“a/”下面,我们在后台的“系统设置”→“系统基本参数”中可以将文档HTML默认保存路径改为了根目录下。直接一个“/”就可以了。

②默认的内容页面的路径应该是这样的:http://www.399u.com/a/webbase/dreamweaver/2010/0407/57.html,这样的URL层级太深了对SEO不利,我们需要修改下,我一般是修改成:http://网站域名/栏目名称/数字ID.html,比如:http://www.***.com/changshi/1.html。在添加或修改栏目的的面板中将文章命名规则修改为:{typedir}/{aid}.html就可以,去掉了{Y}/{M}{D}/(这个是显示:年/月日)。如果你的栏目层级本来就很深的话,建议把文章页面都放在一个目录下,规则定为:news/{aid}.html。这个规则都是可以自定义的,你觉得怎么对seo有利就怎么来吧。

③设置.htaccess文件,把不带WWW的郁闷用301定向的www.399u.com,具体方法可以百度一下。

二、网页头部MATA信息的优化

这个主要针对网页TITLE标签的修改。

首页:<title>{dede:global.cfg_webname/}</title>,在“系统设置”→“系统基本参数”中将首页的标题信息都写在网站名称里面。但是这样有个问题就是会影响到其他页面。

栏目页:<title>{dede:field.seotitle /}_{dede:global.cfg_indexname/}</title>。第一个标签是调用栏目的SEO标题;把主页链接名改为了网站名称。效果:“栏目标题_网站名称”。封面模板也是用这个title标签。

文章页:

<title>{dede:field.title/}_{dede:field.typeid runphp=’yes’ function=”GetTopid(@me)”}
$dsql = new DedeSql(false);
$a=”SELECT typename FROM dede_arctype where id=@me”;
$arcRow = $dsql->GetOne($a);
@me=$arcRow[typename];{/dede:field.typeid}
_{dede:global.cfg_indexname/}</title>
效果:文章标题_文章所属栏目名_网站名称,所属栏目名是用中间的SQL调用。

三、内链优化

①网站自动给关键字加上链接:这个功能很爽,可以预先设定一些你网站的关键词和对应的链接,以后每次加文章的时候都自动给锚文本加上链接,其实这个就是一个替换的功能。

设置步骤:后台的“核心”→“批量维护 ”→“文档关键词维护 ”,比如我的学瑜伽网,我可以新增关键字:瑜伽教程;链接网址:http://www.399u.com/jiaocheng/。要注意的是,在设置关键词的时候,尽量不要用那些宽泛的词,比如瑜伽这个词。我在瑜伽教程中加了链接,要是瑜伽再加一个链接的话,那么就乱了。所以我们尽量的不要使用太宽泛的词,避免重复。

这里设置好了以后,还要需要再设置一个地方。后台的“系统设置”→“系统基本参数 ”→“其它选项”→“文档内容同一关键词替换次数(0为全部替换)”默认是2。这个可以根据自己的情况适当的调整。

②推荐内容 热点内容 这样的标题可以在前面加上栏目的名称,加上链接。这样可以增加密度,同时增加内链。

③在文章的最后加上“更多文章》》栏目名称”,给栏目名加上链接。

④在文章最后加上相关文章,随机调用本栏目下的相关文章,这样的导出链接相关性强,不论对本页面还是对链接的页面都有好处。

实例代码:

{dede:likearticle row=’0’titlelen=’4’col=’4’mytypeid=3 channelid=1 eregtype=all|tag|keyword}
<li><a href=”field:arcurl/]”_fcksavedurl=””field:arcurl/]” target=”_blank”>•[field:title/]</a></li>
{/dede:likearticle}
参数说明:

col=”多少列显示(默认为单列)

row=’0′ 返回文档列表总数

titlelen = ‘0′ 标题长度 等同于titlelength

infolen=’60′ 表示内容简介长度 等同于infolength

mytypeid=0 手工指定要限定的栏目id,用,分开表示多个

innertext =”单条记录样式(指标签中间的内容)

⑤文章最后调用文章TAGS。

代码:

{dede:tag row=’30′ sort=’new’ getall=’0′} <a href=’[field:link/]‘>[field:tag /]</a>{/dede:tag}

 

活用DedeCms进行SEO优化全攻略
DedeCms 是公认的在SEO优化方面做得做好的CMS,可能很多人会说,优化是靠个人的,与CMS无关,这其实也不尽正确,因为必须程序提供商提供足够的工具才有可能,举例说:如果某CMS的栏目设置连关键字、摘要都没有,何来优化之说?本文以DedeCMS为例,深入说明SEO优化方面的攻略,本文所说的优化绝对不是那种含作弊的SEO策略,而是针对网站自身的内容,提高搜索引擎对内容的识别能力。

1、全局优化

在DedeCms的系统参数配置中,包含了“网站版权、编译JS等底部调用信息;站点默认关键字;站点描述”这些项目,其实必须注意的是站点默认关键字、站点描述的设置必须合理。
(1) 站点名称和关键字是搜索引擎识别你这个网站内容的关键,其中在主页的网站名称可以手工填写,在标题的地方适当增加一些关键字。
(2) 网站摘要(站点描述)必须要合理,最理想的写法应该是“某某网站是关于某某方面的内容的网站”这里千万别堆砌关键字,否则可能会被搜索引擎视为作弊或放弃使用你指定的这些描述作为站点描述。
(3) 对于新站而言,为了提高网站名的权重,还可以在底部放一些“某某网站的内容来自何处或版权所有之类”这里也不能堆砌关键字或仅突出某一两个关键字,仅是为了提高网站名的权重。

2、栏目标题与关键字、摘要

对于有耐心的用户,在新建栏目时最好把栏目的关键字填写完整,如果没有耐心的,不妨用下面的方法。
在建好所有栏目后,到系统->SQL命令行工具的地方运行下面的SQL:
复制代码
1. Update `#@__arctype` set
2. keywords=Conact(typename, ‘,’, typename, ‘,’, ‘和内容相关的关键字,如:教程、新闻、资源等’),
3. description=Conact(‘本栏目主要是关于’, typename, ‘,’, typename, ‘,’, ‘和内容相关的关键字,如:教程、新闻、资源等’, ‘方面的内容’);

3、文章内容

DedeCms 提供了自动关键字提取、自动摘要等各类工具来进行文档的优化,不过有部份用户往往习惯对本站所的文章都用同样的关键字、同样的摘要,这种方法是极不可取的,如果在没法获得关键字和摘要的情况下,宁可放弃这些描述,让搜索引擎自动生成。

使用DedeCms时,需要进行如下更改:
(1) 对于多页的文章 DedeCms 的标题默认没有1、2、3之类的标识,这里可以打开 arc.archives.class.php
在大约是 350 行左右的地方找到“//循环生成HTML文件”,然后把for循环起始的地方改为
复制代码
1. for($i=1;$i<=$this->TotalPage;$i++)
2. {
3. if($this->TotalPage > 1) {
4. $this->Fields[‘tmptitle’] = (empty($this->Fields[‘tmptitle’]) ? $this->Fields[‘title’] : $this->Fields[‘tmptitle’]);
5. $this->Fields[‘title’] = $this->Fields[‘tmptitle’].”($i)”;
6. }

这样就能使多页文章的标题带有(1)、(2)、(3)…. 的标识了。

(2) 如果标题进行了修改,那么每页所对应该的摘要必须也要进行修改,否则会被搜索引擎认为描述是相同引发被怀疑堆叠关键字的警告。

打开 arc.archives.class.php 找到 function ParseDMFields($pageNo,$ismake=1)

复制代码
1. if($this->SplitPageField!=” && isset($this->Fields[$this->SplitPageField]))
2. {
3. $this->Fields[$this->SplitPageField] = $this->SplitFields[$pageNo – 1];
4. }

改为
复制代码
1. if($this->SplitPageField!=” && isset($this->Fields[$this->SplitPageField]))
2. {
3. $this->Fields[$this->SplitPageField] = $this->SplitFields[$pageNo – 1];
4. $this->Fields[‘description’] = trim(ereg_replace(“[\r\n\t]”, ‘ ‘, cn_substr(html2text($this->Fields[$this->SplitPageField]), 200)));
5. }

这样文档每页的摘要便有所区别。

4、关于目录式链接

DedeCms V5.3中,为了兼容某些人配置的WEB服务器,对栏目链接强制指向了默认页,即是显示为 typedir/index.html ,对于某些用户可能希望指定”typedir/”, 对于SEO而言,这确实有利于体现出网站的目录结构,因此这样想法是合理的,如果你的网站结构比较简单(如不使用一些公司简介之类的非默认页链接),可以按下面方式修改。

打开文件 channelunit.func.php 找到 function GetTypeUrl($typeid,$typedir,$isdefault,$defaultname,$ispart,$namerule2,$moresite=0,$siteurl=”,$sitepath=”)

把前面一段
复制代码
1. if($isdefault==-1)
2. {
3. //动态
4. $reurl = $GLOBALS[‘cfg_phpurl’].”/list.php?tid=”.$typeid;
5. }
6. else if($ispart==2)
7. {
8. //跳转网址
9. $reurl = $typedir;
10. return $reurl;
11. }
12. else
13. {
14. if($isdefault==0 && $ispart==0)
15. {
16. $reurl = str_replace(“{page}”,”1″,$namerule2);
17. $reurl = str_replace(“{tid}”,$typeid,$reurl);
18. $reurl = str_replace(“{typedir}”,$typedir,$reurl);
19. } else {
20. $reurl = $typedir.’/’.$defaultname;
21. }
22. }

改为:
复制代码
1. if($isdefault==-1)
2. {
3. //动态
4. $reurl = $GLOBALS[‘cfg_phpurl’].”/list.php?tid=”.$typeid;
5. }
6. else if($ispart==2)
7. {
8. //跳转网址
9. $reurl = $typedir;
10. return $reurl;
11. }
12. else
13. {
14. if($isdefault==0 && $ispart==0)
15. {
16. $reurl = str_replace(“{page}”,”1″,$namerule2);
17. $reurl = str_replace(“{tid}”,$typeid,$reurl);
18. $reurl = str_replace(“{typedir}”,$typedir,$reurl);
19. } else {
20. if(!isset($cfg_need_dfname) || $cfg_need_dfname==’N’) $reurl = $typedir.’/’;
21. else $reurl = $typedir.’/’.$defaultname;
22. }
23. }

关键在于:“if(!isset($cfg_need_dfname) || $cfg_need_dfname==’N’) $reurl = $typedir.’/’;”这一句

不过大家一定需注意一个问题,目录必须用 typedir/ 的形式,否则在IIS如果用 typedir不带”/”的形式,IIS会通过303永久重定向到 typedir/ ,让搜索引擎又多费了一重功夫,这显然不搜索引擎喜欢的,也不是我们想看到的。
5、重复文档标题

不管任何情况,尽量减少你网站出现的重复文档,DedeCms本身也提供了重复标题检测处理的功能,在网站被搜索引擎大量收录前,必须排除网站上重复的文档,如果重复量过大,甚至会被认为你的网站是作弊的。
综上总总,DedeCms 自身为SEO提供了各类的工具,不愧是SEO优化做得最好的CMS,在默认模板上也有体现,但由于兼容性原因,官方也没开放所有符合SEO的方案,如果你做的网站进行上面所说的修改后,并不会影响到运行,这样将会更完美。
本文来自 三哥代理网http://www.3ghttp.com/
28个让关键词排名明显改观的SEO技巧:

关键词位置、密度、处理

URL中出现关键词(英文)
网页标题中出现关键词(1-3个)
关键词标签中出现关键词(1-3个)
描述标签中出现关键词(主关键词重复2次)
内容中自然出现关键词
内容第一段和最后一段出现关键词
H1,H2标签中出现关键词
导出链接锚文本中包含关键词
图片的文件名包含关键词
ALT属性中出现关键词
关键词密度6-8%
对关键词加粗或斜体

内容质量、更新频率、相关性

原创的内容最佳,切忌被多次转载的内容
内容独立性,与其他页面至少30%互异
1000-2000字,合理分段
有规律更新,最好是每天
内容围绕页面关键词展开,与整站主题相关
具有评论功能,评论中出现关键词

导入链接和锚文本

高PR值站点的导入链接
内容相关页面的导入链接
导入链接锚文本中包含页面关键词
锚文本存在于网页内容中
锚文本周围出现相关关键词
导入链接存在3个月以上
导入链接所在页面的导出链接少于100个
导入链接来自不同IP地址
导入链接自然增加
锚文本多样化(如,SEO和SEO十万个为什么)

掌握以上SEO技巧,可以让你的关键词排名有明显改善。

 
上次讲过《Z-blog全站之SEO优化处理》,这次讲讲另一款建站程序-dedecms(织梦)全站的SEO优化处理。dedecms(织梦)是一款功能相当强大的行业门户建站程序,程序整体上很利于网站的SEO优化,但仍有些细节需要处理。
一、网站静态设置
你可以在后台管理中开启伪静态设置,但是开启伪静态对主机要求有点高。当然也可以实现整站的静态化,具体操作请参考《DEDE(织梦)整站URL静态化实现方式》一文。
二、网站URL路径优化
1.首页URL的路径优化。大家安装程序后,也许会发现打开首页后其路径是这样的:http://www.5166188.cn/index.html,这种路径远没有http://www.5166188.cn/路径好。那么怎么去掉后面的index.html呢?具体方法是将根目录下的index.php文件中的
<?php
if(!file_exists(dirname(__FILE__).’/data/common.inc.php’))
{
header(‘Location:install/index.php’);
exit();
}
//自动生成HTML版
if(isset($_GET[‘upcache’]))
{
require_once (dirname(__FILE__) . “/include/common.inc.php”);
require_once DEDEINC.”/arc.partview.class.php”;
$GLOBALS[‘_arclistEnv’] = ‘index’;
$row = $dsql->GetOne(“Select * From `#@__homepageset`”);
$row[‘templet’] = MfTemplet($row[‘templet’]);
$pv = new PartView();
$pv->SetTemplet($cfg_basedir . $cfg_templets_dir . “/” . $row[‘templet’]);
$pv->SaveToHtml(dirname(__FILE__).’/index.html’);
include(dirname(__FILE__).’/index.html’);
exit();
}
else
{
header(‘HTTP/1.1 301 Moved Permanently’);
header(‘Location:index.html’);
}
?>
替换为
<?php
if(!file_exists(dirname(__FILE__).’/data/common.inc.php’))
{
header(‘Location:install/index.php’);
exit();
}
require_once (dirname(__FILE__) . “/include/common.inc.php”);
require_once DEDEINC.”/arc.partview.class.php”;
$GLOBALS[‘_arclistEnv’] = ‘index’;
$row = $dsql->GetOne(“Select * From `#@__homepageset`”);
$row[‘templet’] = MfTemplet($row[‘templet’]);
$pv = new PartView();
$pv->SetTemplet($cfg_basedir . $cfg_templets_dir . “/” . $row[‘templet’]);
$pv->Display();
?>
2.内容页URL路径。将默认的路径{typedir}/{Y}/{M}{D}/{aid}.html改为{typedir}/{aid}.html,这样即规范又简短。
3.将系统核心设置中的“(是/否)支持多站点,开启此项后附件、栏目连接、arclist内容启用绝对网址”选择为“是”,这样就启动了绝对地址,防止网站被镜像,也防止了网站权重的分散。
三、文章tag标签的设置。织梦程序更新文章时自动生成的标签并不是很好,很多都是无意义的词,所以建议大家还是手动输入比较好。
四、解决栏目页分页标题重复问题。标题重复是SEO优化的大忌,而dedecms程序的栏目页正出现了这样的问题。所以栏目页title标签修改为
{dede:field.title/}_{dede:global.cfg_webname/}({dede:pagelist listsize=’0′ listitem=’pageno’ function=’html2text(@me)’/})
显示为栏目标题_网站名(页码)。
这样dedecms(织梦)全站就基本完成了SEO优化处理。