核心思路
DedeCMS 本身没有像 WordPress 那样内置一个简单的“生成网站地图”按钮,它的核心思路是:

(图片来源网络,侵删)
- 创建一个频道模型:这个模型专门用来存放网站地图的条目。
- 添加栏目:创建一个专门的栏目(网站地图”),并选择上面创建的模型。
- 编写模板:为这个栏目制作一个模板文件,用于展示地图内容。
- :通过“自由列表”功能,自动将所有需要展示在地图上的栏目、文章等信息,批量生成到这个栏目下。
- 访问和提交:访问生成的地图页面,并将其提交给搜索引擎。
第一步:创建网站地图模型
这个模型是地图内容的“容器”。
- 登录 DedeCMS 后台。
- 进入【核心】 -> 【频道模型】 -> 【添加模型】。
- 填写模型信息:
- 模型名称:填写
网站地图或Sitemap。 - 模型表:系统会自动生成,如
dede_sgmap,无需修改。 - 字段:默认的
title(标题) 和body(内容) 就足够了,你也可以根据需要添加,url字段来直接存储链接,但通常我们通过模板来动态生成。
- 模型名称:填写
- 保存模型。
第二步:创建网站地图栏目
这个栏目是地图内容在前台的展示入口。
- 进入【核心】 -> 【栏目管理】 -> 【添加栏目】。
- 填写栏目信息:
- 栏目名称:填写
网站地图或Sitemap。 - 栏目目录:填写
sitemap或sitemap-html(建议使用英文,避免路径问题)。 - 栏目类型:选择外部链接(如果只想生成一个静态页面)或内部栏目(如果想在栏目列表中看到它),通常选择“内部栏目”即可。
- 模型:选择你刚刚创建的“网站地图”模型。
- 列表模板:选择一个默认的列表模板,或者留空,因为我们后面会完全自定义它。
- 默认页模板:这是关键! 我们将在这里编写地图的 HTML 模板。
- 栏目名称:填写
- 保存栏目。
第三步:编写网站地图模板
这是最核心的一步,决定了地图的最终样式和内容。
制作 HTML 格式的网站地图 (sitemap.html)
这个模板主要用于用户浏览,方便他们快速找到所有页面。

(图片来源网络,侵删)
- 在后台找到【模板】 -> 【默认模板管理】。
- 在左侧选择你刚刚创建的“网站地图”栏目。
- 找到“默认页模板”对应的编辑框,清空里面的默认内容。
- 将以下代码粘贴进去,并根据你的网站结构进行修改。
HTML 网站地图模板代码示例:
{dede:include filename="head.htm"/}
<!-- 网站地图内容开始 -->
<div class="sitemap-container">
<h1>网站地图 - {dede:global.cfg_webname/}</h1>
<p>本站地图收录了所有栏目和文章,方便您快速导航。</p>
<!-- 一级栏目列表 -->
<h2>所有栏目</h2>
<ul class="column-list">
{dede:channel type='top'}
<li><a href="[field:typelink/]">[field:typename/]</a></li>
{/dede:channel}
</ul>
<!-- 文章地图 (可以按栏目分组) -->
<h2>文章列表</h2>
{dede:channelArtlist typeid='0' col='1' titlelen='24' row='100'}
<h3>[field:typename/]</h3>
<ul class="article-list">
{dede:arclist titlelen='60' row='100'}
<li><a href="[field:arcurl/]">[field:title/]</a></li>
{/dede:arclist}
</ul>
{/dede:channelArtlist}
<!-- 其他自定义内容,比如单页、产品等 -->
<!-- 单页栏目 -->
<h2>关于我们 / 联系我们</h2>
<ul class="page-list">
{dede:sql sql="SELECT * FROM dede_arctype where mid=1 and ishidden<>1 ORDER BY sortrank"}
<li><a href="[field:typedir function='str_replace("{cmspath}"," ",@me)'/]">[field:typename/]</a></li>
{/dede:sql}
</ul>
</div>
{dede:include filename="foot.htm"/}
代码解释:
{dede:channel type='top'}:获取所有顶级栏目。{dede:channelArtlist ...}:循环获取所有一级栏目,并在每个栏目下调用其文章列表。typeid='0'表示所有栏目。{dede:arclist ...}:在channelArtlist内部,获取指定栏目的文章列表。row='100'表示获取前100篇,你可以设置一个足够大的数字。{dede:sql ...}:一个强大的自定义SQL标签,可以用来获取非文章模型的数据,比如单页内容。mid=1通常代表单页模型,如果你的单页模型ID不是1,请自行修改。
制作 XML 格式的网站地图 (sitemap.xml)
这个模板专门用于提交给搜索引擎(如百度、谷歌)。
重要提示: 你不能直接在后台编辑器里写 .xml 文件,因为编辑器会格式化代码并添加 HTML 标签,最简单的方法是:

(图片来源网络,侵删)
- 在你的电脑上新建一个文本文档。
- 将下面的代码粘贴进去。
- 将文件保存为
sitemap.xml。 - 通过 FTP 或主机文件管理器,将这个
sitemap.xml文件上传到你的网站根目录。 - 修改你的网站首页模板(通常是
index.htm),在底部添加一个指向sitemap.xml的链接。
XML 网站地图模板代码示例:
<?xml version="1.0" encoding="UTF-8"?>
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
<!-- 首页 -->
<url>
<loc>https://www.yourdomain.com/</loc>
<lastmod>{dede:formatdate function='strftime("%Y-%m-%d",@me)'/}</lastmod>
<changefreq>daily</changefreq>
<priority>1.0</priority>
</url>
<!-- 所有栏目页 -->
{dede:channel type='top'}
<url>
<loc>[field:typelink/]</loc>
<lastmod>{dede:formatdate function='strftime("%Y-%m-%d",@me)'/}</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
{/dede:channel}
<!-- 所有文章页 -->
{dede:arclist row='10000' orderby='pubdate'}
<url>
<loc>[field:arcurl/]</loc>
<lastmod>[field:pubdate function='strftime("%Y-%m-%d",@me)'/]</lastmod>
<changefreq>monthly</changefreq>
<priority>0.6</priority>
</url>
{/dede:arclist}
</urlset>
代码解释:
xmlns="http://www.sitemaps.org/schemas/sitemap/0.9":声明这是一个标准的 Sitemap 0.9 协议文件。<loc>:页面的绝对 URL。<lastmod>:页面的最后修改日期。<changefreq>:页面的更新频率(如always,hourly,daily,weekly,monthly,yearly,never)。<priority>:页面相对于网站上其他页面的优先级(0.0 到 1.0)。
第四步:生成地图内容
对于 HTML 地图,你需要用“自由列表”功能来填充内容。
- 进入【核心】 -> 【自由列表】。
- 名称:填写
生成网站地图。 - 列表模板:选择你之前为“网站地图”栏目创建的“默认页模板”。
- 按栏目生成:选择“是”。
- 选择栏目:选择所有需要包含在地图中的栏目,或者选择“所有栏目”。
- 时间限制:可以留空,表示不限制。
- 排序:可以按
id或sortrank排序。 - 点击“开始生成”。
- 生成成功后,去【内容】 -> 【批量维护】 -> 【一键生成HTML】 中,找到你的“网站地图”栏目,执行“更新HTML”。
访问 你的域名/sitemap/(或你设置的栏目目录),就能看到你的 HTML 网站地图了。
总结与注意事项
| 地图类型 | 模板位置 | 生成方式 | 用途 |
|---|---|---|---|
| HTML 地图 | 后台【模板管理】->【栏目默认页模板】 | 自由列表 + 一键生成HTML | 供用户浏览,提升用户体验和SEO内链 |
| XML 地图 | 网站根目录 sitemap.xml (手动上传/更新) |
手动创建文件,或写脚本更新 | 提交给搜索引擎(百度站长平台、Google Search Console) |
重要提示:
- 更新频率:网站地图不是一劳永逸的,当你新增或删除大量内容后,需要重新生成 HTML 地图并更新 XML 地图文件。
- URL 格式:确保你的网站使用的是绝对路径(
https://www.domain.com/...),而不是相对路径,这在 XML 地图中尤其重要。 - 性能:如果你的网站文章非常多(比如数万篇),一次性全部生成到地图中可能会影响生成速度和页面加载速度,可以考虑只收录最近一年或更新的文章。
- 分页:对于超大型网站,XML 地图可以分页生成(如
sitemap1.xml,sitemap2.xml),并创建一个sitemap_index.xml文件来索引它们,但这对普通网站来说过于复杂。
希望这份详细的指南能帮助你成功制作出 DedeCMS 的网站地图!
