站点图标 RUN1314 奔腾不息

DedeCMS文章列表栏目标题添加第*页的SEO优化技巧

昨天,我在用“Google网站管理员工具”检查网站时发现,其中的“故障诊断”项目下的“HTML建议”一项提示有“重复的标题标记”。其实就是说,网站每一个栏目不是有好多页吗?而这些页面的标题则完全一样,也就是栏目的标题,例如“电脑技巧_三好网志”这样的形式。而标题重复的话,对SEO显然是不利的,Google已经清晰地告知了这一点。

那么如果把栏目不同页面的标题修改成“电脑技巧_第1页_三好网志”这样的形式,就能解决这个问题了。

修改的方法,我在网上找到了两种,一种是(原始的代码有误,我已经修改好了):
首先在模板文件list_article.htm或者你使用的列表模板文件中

{dede:field.title/}

改成

{dede:field.seotitle/}{dede:pagelist listitem="paget" listsize="0" runphp="yes"}if (strlen(@me)>10 || @me==1) @me="";else @me="_".@me.;{/dede:pagelist}

(当然,如果你想更进一步优化,你也可以同时将{dede:field.title/}改为:{dede:field.seotitle/},然后在后台栏目色设置中填写SEO标题作为栏目标题。)
然后将描述改为:


 10 || @me==1) @me="";else @me=.@me.;{/dede:pagelist}" />

然后在\include\arc.listview.class.php文件中

1.找到

$listdd.= "
  • $j
  • \r\n";

    然后在下面加一行:

    $pagedd = "_第".$j."页";
    

    2.如果你使用的是织梦V5.6版本,请找到:

    if(eregi('pageno',$listitem)) $plist .= $listdd;
    

    然后在下面加一行:

    if(eregi('paget',$listitem)) $plist .= $pagedd;
    

    如果你是织梦V5.7版本,请找到:

    if(preg_match('/pageno/i', $listitem)) $plist .= $listdd;
    

    然后在下面加一行:

    if(preg_match('/paget/i',$listitem)) $plist .= $pagedd;
    

    这种方法其实连带解决了又一个问题,也就是同样在“Google网站管理员工具”中提示的“重复的元说明”,意思就是每个栏目页面的描述也都是完全相同的。该方法也是在描述中添加上“第*页”来解决这个问题。不过经过验证,如果栏目没有添加描述,一样会添加一个“第*页”,这就有画蛇添足的感觉了,并且动态页面并没有实现添加“第*页”的效果,所以感觉不太满意。
    后来又找到一种解决方法,感觉要比上一种方法简单,并且也解决了动态页添加的问题,下面分享一下:

    修改php的方法为:
    DedeCMS修改列表页标题成“列表名-第xx页”需要修改include/arc.listview.class.php
    
    静态页的修改方法:
    1.删掉219行 $this->ParseTempletsFirst();
    2.在247行$this->ParseDMFields($this->PageNo,1);前添加
    $this->Fields['pagexx'] = $this->PageNo;
    $this->ParseTempletsFirst();
    
    动态页的修改方法:
    3.在287行if((empty($this->PageNo) || $this->PageNo==1) 前添加
    $this->Fields['pagexx'] = $this->PageNo;
    
    list_article.htm模板的修改方法:
    在列表模板的title标签中添加第{dede:field.pagexx /}页,即
    {dede:field.title/} / 第{dede:field.pagexx /}页

    希望能给需要的朋友以帮助!