最新消息: 新版网站上线了!!!

织梦dedecms列表页标题优化指南

DEDE的默认认列表标题是:顶级栏目 / 一级栏目_网站标题
从这个默认的标题可以看出一级栏目并没有在前面,按照常见的说法是,越是在前面的东西,权重会越高一点,所以要改成:一级栏目+顶级栏目+网站标题的样式,这也符合用户看东西从左到右的性质。下面来看具体的修改细节。
交换列表页顶级栏目和二级栏目顺寻:
打开\include \typelink.class.php,164行
原文    $this->valuePositionName = $tinfos['typename'].$this->SplitSymbol.$this->valuePositionName;
修改为 $this->valuePositionName = $this->valuePositionName.$this->SplitSymbol.$tinfos['typename'];
改完之后就会出现
 一级栏目/顶级栏目_网站标题 的形式
看到上面这重性质可能还会不太满意,因为中间的“/”(横杠)不是我们常见到的下划线(_),或者横杠(-)形式,其实这都无关紧要这个字符只不过是要搜索引擎来分隔字符用的。但是为了更好的达到网站优化的效果,我们还是会去修改,看到哪不满意就去找出问题,修改修改再修改,直到自己看不出什么问题的时候。再说修改方法吧
去掉栏目页标题的斜杠问题
原来:二级栏目页面的title是“一级栏目名称/二级栏目名称_网站名称”,经过第一步之后会变成“二级栏目名称/一级栏目名称_网站名称”
打开include/arc.listview.class.php,大约53行。
$this->Fields['title'] = ereg_replace(“[<>]“,” / “,$this->TypeLink->GetPositionLink(false));
替换为:
$this->Fields['title'] = ereg_replace(“[<>]“,”_”,$this->TypeLink->GetPositionLink(false));
改成之后成为二级栏目名称_一级栏目名称_网站名称
 经过这两步之后就成了你想要的效果了。这样的列表页也许有人会说还不够完美,因为同栏目下列表页的模板是相同的,会有相同标题的页面出现,特别是在谷歌管理员工具里面,经常可以看到重复标题的页面就是列表页相同的原因引起的,网上看到的常见解决办法是给标题再加上一个序号,加以区别如
以前的列表标题是:二级栏目名称_一级栏目名称_网站名称、二级栏目名称_一级栏目名称_网站名称、二级栏目名称_一级栏目名称_网站名称…..这样形式的(经过以上修改之后看到的结果)。
也可以把它改成标题(1)、标题(2)、标题(3)这样的形式,只是加上一个序号而以。对于这种情况,个人的观点是不必太在意这里的重复页面,列表页的和列表页之间的相似点太多,在搜索引擎经过去噪,内聚之后,只会留下一个页面参与排序。所以对于这种做法本人不太意,不必纠结于此,专心做好上两部之后,列表页的标题会得到权重的提升。
 
 
 
DedeCms5.5的修改方法:
  打开include/arc.listview.class.php,大约53行。
 
$this->Fields['title'] = ereg_replace("[<>]"," / ",$this->TypeLink->GetPositionLink(false));
替换为:
$this->Fields['title'] = ereg_replace("[<>]","_",$this->TypeLink->GetPositionLink(false));
 
 
这里是代码V53的。
 
以下为引用的内容:
{dede:field.title runphp='yes'} 
        $ta = '1'; //分解后显示的数组序号 
        $tb = '/'; //分隔符 
        $tc = @me; 
        $td = split($tb,$tc); 
        @me = $td[$ta-1]; 
{/dede:field.title}
 
 
{dede:field name='title' runphp='yes'}  **** {/dede:field}
 
=====================================
效果如下
第一页:<title>神算金点子</title> 
第二页:<title>神算金点子_第2页</title> 
第三页:<title>神算金点子_第3页</title> 
第四页:<title>神算金点子_第4页</title> 
…… 
相信这种结构对SEO是比较好的 
 
 
好了,现在说说实现方法。 
一共分两种情况,一种是动态,一种是静态。 
动态列表页实现方法 
第一步找到include/arc.listview.class.php文件中的 
复制代码
  for($j;$j<=$total_list;$j++)
  {
   if($j==$this->PageNo)
   {
    $listdd.= "<li class=\"thisclass\"><a>$j</a></li>\r\n";
   }
   else
   {
    $listdd.="<li><a href='".$purl."PageNo=$j'>".$j."</a></li>\r\n";
   }
  }
 
修改成 
复制代码
  for($j;$j<=$total_list;$j++)
  {
   if($j==$this->PageNo)
   {
    $listdd.= "<li class=\"thisclass\"><a>$j</a></li>\r\n";
    $pagedd="";
    if($this->PageNo !=1){$pagedd="_第".$j."页";}
   else
   {
    $listdd.="<li><a href='".$purl."PageNo=$j'>".$j."</a></li>\r\n";
   }
  }
 
第二步 
 找到
复制代码
  $plist = '';
  if(eregi('index',$listitem)) $plist .= $indexpage;
  if(eregi('pre',$listitem)) $plist .= $prepage;
  if(eregi('pageno',$listitem)) $plist .= $listdd;
  if(eregi('next',$listitem)) $plist .= $nextpage;
  if(eregi('end',$listitem)) $plist .= $endpage;
  if(eregi('option',$listitem)) $plist .= $optionlist;
  if(eregi('info',$listitem)) $plist .= $maininfo;
 
注意:这段代码在文件中一共有两处,如果只修改动态列表就只用修改第一步紧接着的这段。
修改成 
复制代码
  $plist = '';
  if(eregi('index',$listitem)) $plist .= $indexpage;
  if(eregi('pre',$listitem)) $plist .= $prepage;
  if(eregi('pageno',$listitem)) $plist .= $listdd;
  if(eregi('paget',$listitem)) $plist .= $pagedd;
  if(eregi('next',$listitem)) $plist .= $nextpage;
  if(eregi('end',$listitem)) $plist .= $endpage;
  if(eregi('option',$listitem)) $plist .= $optionlist;
  if(eregi('info',$listitem)) $plist .= $maininfo;
 
 
静态列表页实现方法
 
第一步找到include/arc.listview.class.php文件中的
复制代码
  for($j;$j<=$total_list;$j++)
  {
   if($j==$this->PageNo)
   {
    $listdd.= "<li class=\"thisclass\">$j</li>\r\n";
   }
   else
   {
    $listdd.="<li><a href='".str_replace("{page}",$j,$tnamerule)."'>".$j."</a></li>\r\n";
   }
  }
 
修改成
复制代码
  for($j;$j<=$total_list;$j++)
  {
   if($j==$this->PageNo)
   {
    $listdd.= "<li class=\"thisclass\"><a>$j</a></li>\r\n";
    $pagedd="";
    if($this->PageNo !=1){$pagedd="_第".$j."页";}
   else
   {
    $listdd.="<li><a href='".str_replace("{page}",$j,$tnamerule)."'>".$j."</a></li>\r\n";
   }
  }
 
第二步
 找到
复制代码
  $plist = '';
  if(eregi('index',$listitem)) $plist .= $indexpage;
  if(eregi('pre',$listitem)) $plist .= $prepage;
  if(eregi('pageno',$listitem)) $plist .= $listdd;
  if(eregi('next',$listitem)) $plist .= $nextpage;
  if(eregi('end',$listitem)) $plist .= $endpage;
  if(eregi('option',$listitem)) $plist .= $optionlist;
  if(eregi('info',$listitem)) $plist .= $maininfo;
 
注意:这段代码在文件中一共有两处,如果只修改静态列表就只用修改第一步紧接着的这段。
修改成
复制代码
  $plist = '';
  if(eregi('index',$listitem)) $plist .= $indexpage;
  if(eregi('pre',$listitem)) $plist .= $prepage;
  if(eregi('pageno',$listitem)) $plist .= $listdd;
  if(eregi('paget',$listitem)) $plist .= $pagedd;
  if(eregi('next',$listitem)) $plist .= $nextpage;
  if(eregi('end',$listitem)) $plist .= $endpage;
  if(eregi('option',$listitem)) $plist .= $optionlist;
  if(eregi('info',$listitem)) $plist .= $maininfo;
 
调用方法
在网页title标签中需要的地方插入{dede:pagelist listsize='0' listitem='paget' /}标签就可以。
 
这种方法对其他功能无影响。
这方法同样适用于其他分页列表。

转载请注明:谷谷点程序 » 织梦dedecms列表页标题优化指南