网站地图对于网站优化至关重要,搜索引擎通过网站地图来收录网站页面。本文将详细介绍如何优化Dedecms CMS自带的网站地图功能,以提升SEO效果。
在Dedecms CMS中,生成网站地图的操作相对简单:进入后台—生成—HTML更新—更新网站地图,系统会在data目录下生成sitemap.html文件。
然而,这种方式存在明显缺点:
1、生成的地图过于简单,sitemap.html中仅包含网站栏目列表,缺乏文章列表内容。
2、sitemap.html默认生成于data文件夹内,而出于安全考虑,data文件夹通常被设置为禁止访问。
因此,我们的优化目标是让sitemap.html不仅包含文章列表,还能生成到网站根目录。
以Dedecms 5.7为例,网站地图模板sitemap.htm位于/templets/plus/目录。即使在sitemap.htm中添加了文章列表相关标签,也无法调用文章列表。这是因为makehtml_map.php无法解析Dedecms的相关调用标签。我们需要对其进行修改,使其支持任意标签调用。
以下是具体的修改步骤:

(1)将
require_once(DEDEINC."/dedetag.class.php");
改为
require_once(DEDEINC."/arc.partview.class.php");

(2)将
$dtp = new DedeTagParse();
$dtp->LoadTemplet($tmpfile);
$dtp->SaveTo($cfg_basedir.$murl);
改为
$dtp = new PartView();
$GLOBALS['_arclistEnv'] = 'index';
$dtp->SetTemplet($tmpfile);
$dtp->SaveToHtml($cfg_basedir.$murl);

(3)注释掉
$dtp->Clear();
改为
//$dtp->Clear();

(4)将第26行
$murl = $cfg_cmspath."/data/sitemap.html";
$tmpfile = $cfg_basedir.$cfg_templets_dir."/plus/sitemap.htm";
改为
$murl = $cfg_cmspath."/sitemap.html";
$tmpfile = $cfg_basedir.$cfg_templets_dir."/".$cfg_df_style."/sitemap.htm";
完成以上修改后,系统即可解析Dedecms的所有标签,包括文章列表标签。
最后需要注意的是,我们将
$cfg_basedir.$cfg_templets_dir."/plus/sitemap.htm";
改为
$cfg_basedir.$cfg_templets_dir."/".$cfg_df_style."/sitemap.htm";
这样做的目的是将网站地图模板从固定的/plus/目录移至网站模板所在目录,便于自定义编辑。
测试发现,这种方法生成的网站地图文章列表没有分页效果,因此建议设置较大的文章显示数量。以下是一个简单的模板示例:



网站地图/{dede:global.cfg_webname/}



返回首页

———栏目列表——— {dede:global name='maplist'/} ———文章列表———
    {dede:arclist typeid='' orderby='pubdate' row='999999' }
  • [field:title/]
  • {/dede:arclist}
将此模板命名为sitemap.htm并放置于自己的模板文件夹中,然后点击后台—生成—更新网站地图。完成后,访问http://你的域名/sitemap.html即可查看生成的网站地图。
通过上述方法,我们可以显著提升Dedecms CMS网站地图的功能性与SEO表现。