收集的DEDE的SEO办法

在DEDE使用过程中,发现DEDE确实是个好东西,不知道是使用时间长了还是怎么的,感觉其它CMS怎么比都比不上DEDE。

昨天一个客户的一个单子做一个Ecms的预发布接口,搞了数个小时才搞明白Ecms的基本架构,我对其后台的错综复杂和数据表的庞杂,表示非常不解。

虽然有点偏题,但是我还是要问一下,为什么DEDEV5以上版本都会引入了一个主表,来处理相同字段的数据,Ecms却不这样做呢?给我感觉最严重的问题就是,二次开发极难。

当然,DEDE并不是完美无缺的,以下仅从SEO方面说一下自己的建议。

  1. 列表页和内容页目录式优化
  2. 页面Title优化
  3. Keywords和Description优化
  4. 列表页实现多模板、自定义排序

由于写此文是刚刚在写一个模板时发现的,于是先把第一条整理下来。

  1. 列表页的目录式优化,最简单的,是要把默认在路径中携带的index.html去掉。
  2. 在解决这个问题时,我也到DEDE论坛搜索了一把,找到几个不错的解决办法。总的来说,以下这个方法是最好的解决办法。

    栏目导航列表修改办法:

    {dede:channel type=’top’ row=’7′ currentstyle=”<LI class=’nokia’><A href=’~typelink~’><SPAN>~typename~</SPAN></A> </LI>”}<LI><A href='[field:typelink function=’preg_replace(“/\/index\.html$/i”,”/”,@me)’/]’><SPAN>[field:typename/]</SPAN></A> </LI>{/dede:channel}

    这里使用正则替换,把默认路径中的Index.html替换掉,而不是只进行简单的替换,也不是把数据表中的文件名改成空白。

    这里特别说明一下,mb5u给的解决办法也不是可以(http://bbs.dedecms.com/116595-1.html),但是你得注意,这样操作的最大问题就是,会造成你生成列表文件时无法将列表第一页复制成首页。也就是说,你非得在生成列表页时再执行一个SQL将默认文件名再改回来。

  3. 页面Title的优化。
  4. 页面Title的优化,主要是把栏目从子级栏目到高级栏目调用,类似 三级栏目_二级栏目_一级栏目_网站名称 的顺序,我个人觉得这样会有效提升子栏目的权重,实际效果未考证。

    DEDEV5.3的修改办法是:

    1。将官方原来的排列方式反过来,找到include/typelink.class.php第164行
    $this->valuePositionName = $tinfos[‘typename’].$this->SplitSymbol.$this->valuePositionName;

    修改为:
    $this->valuePositionName = $this->valuePositionName.$this->SplitSymbol.$tinfos[‘typename’];

    接下来将模板的标题标签改这样
    <title>{dede:field.title/} – {dede:global.cfg_webname/}</title>

  5. 文章内容特殊字段的处理。
  6. 比如Body字段中的关键字替换,段落重排等。

    <p>{dede:field.body runphp=’yes’}
    @me = preg_replace(“@<div[^>]{0,}>@isU”,”,@me);
    @me = preg_replace(“@</div>@isU”,”,@me);
    @me = preg_replace(“@ {1,}@isU”,’ ‘,@me);
    @me = preg_replace(“@\r\n{1,}@isU”,”\r\n”,@me);
    @me = preg_replace(“@  @isU”,”,@me);
    {/dede:field.body}</p>

    也可以在扩展函数中使用函数来实现。

  7. 待续。
  8. 看到有朋友在催着本文更新,才发现这篇文章已经写了一年多了,先说声不好意思哟。
  9. 在本文发布以后,我已经开发一些SEO工具,可以参看本博DEDE目录。