织梦本身没有自带一个一键生成标准XML Sitemap的功能,但我们可以通过多种方法来实现,下面我将为你介绍三种最常用、最有效的方法,从简单到复杂,你可以根据自己的技术选择最适合的一种。

(图片来源网络,侵删)
使用现成的插件(最简单,推荐新手)
这是最简单、最快捷的方法,适合不熟悉代码修改的用户,你只需要下载插件,上传到后台安装即可。
推荐插件: DedeCMS Sitemap 生成插件 (有多种版本,选择一个评价好的即可)
操作步骤:
-
下载插件:
(图片来源网络,侵删)- 访问织梦官方论坛、Dede吧或一些知名的织梦资源网站(如“织梦58”、“源码爱好者”等)。
- 搜索关键词:“织梦 sitemap 插件” 或 “DedeCMS Sitemap 生成器”。
- 下载一个评价好、下载量高的插件包,通常是一个
.zip文件。
-
上传并安装:
- 登录你的织梦后台(
/dede/)。 - 在左侧菜单栏找到 “系统” -> “插件管理” -> “上传新插件”。
- 点击“浏览”,选择你刚刚下载的插件压缩包,然后点击“上传安装”。
- 后台会自动解压并安装插件。
- 登录你的织梦后台(
-
生成Sitemap:
- 安装成功后,通常会在后台的 “系统” 或 管理” 菜单下出现一个与Sitemap相关的选项,Sitemap生成”。
- 进入该页面,插件通常会提供生成“首页Sitemap”和“栏目Sitemap”的选项。
- 点击“生成”按钮,系统会自动扫描你的网站,并生成
sitemap.xml和sitemap.html文件。 - 文件位置: 这些文件通常会被生成在你的网站根目录()下。
-
提交到搜索引擎:
- 生成后,访问
http://你的域名.com/sitemap.xml确认文件可以正常打开。 - 登录 百度搜索资源平台 和 Google Search Console。
- 在“Sitemap”或“站点地图”部分,提交你的Sitemap地址,
http://你的域名.com/sitemap.xml。
- 生成后,访问
优点:

(图片来源网络,侵删)
- 操作简单,无需修改代码。
- 通常有详细的安装说明。
- 功能稳定,更新及时。
缺点:
- 可能与特定版本的织梦不兼容。
- 插件可能带有广告或不必要的功能。
手动修改代码生成(最灵活,推荐有一定基础的用户)
这种方法的核心是修改织梦的模板文件,让系统在更新内容时自动生成Sitemap,这是目前最主流和灵活的方式。
我们将创建两个文件:sitemap.xml (用于搜索引擎) 和 sitemap.html (用于用户浏览)。
第1步:创建模板文件
- 在你的织梦模板目录(通常是
/templets/default/或你自定义的模板目录)下,创建一个新文件夹,special。 - 在
special文件夹里创建两个文件:sitemap.xmlsitemap.html
sitemap.xml 文件内容:
{dede:global.cfg_basehost/}
<?xml version="1.0" encoding="UTF-8"?>
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
<url>
<loc>{dede:global.cfg_basehost/}/</loc>
<lastmod>{dede:arclist row=1 orderby=pubdate}
[field:pubdate function=strftime('%Y-%m-%d',@me)/]
{/dede:arclist}</lastmod>
<changefreq>daily</changefreq>
<priority>1.0</priority>
</url>
{dede:channelartlist typeid='top' row='100'}
<url>
<loc>{dede:global.cfg_basehost/}{dede:field name='typeurl'/}</loc>
<lastmod>{dede:arclist row=1 orderby=pubdate}
[field:pubdate function=strftime('%Y-%m-%d',@me)/]
{/dede:arclist}</lastmod>
<changefreq>daily</changefreq>
<priority>0.8</priority>
</url>
{dede:channel type='son' noself='yes'}
<url>
<loc>{dede:global.cfg_basehost/}{dede:field name='typeurl'/}</loc>
<lastmod>{dede:arclist row=1 orderby=pubdate}
[field:pubdate function=strftime('%Y-%m-%d',@me)/]
{/dede:arclist}</lastmod>
<changefreq>daily</changefreq>
<priority>0.7</priority>
</url>
{/dede:channel}
{/dede:channelartlist}
{dede:arclist row='5000' orderby='pubdate' typeid='0'}
<url>
<loc>{dede:global.cfg_basehost/}{dede:field name='arcurl'/}</loc>
<lastmod>[field:pubdate function=strftime('%Y-%m-%d',@me)/]</lastmod>
<changefreq>monthly</changefreq>
<priority>0.6</priority>
</url>
{/dede:arclist}
</urlset>
sitemap.html 文件内容:
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">网站地图 - {dede:global.cfg_webname/}</title>
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<style>
body { font-family: Arial, sans-serif; line-height: 1.6; margin: 0; padding: 20px; background-color: #f4f4f4; }
.container { max-width: 800px; margin: 0 auto; background: #fff; padding: 20px; border-radius: 5px; box-shadow: 0 0 10px rgba(0,0,0,0.1); }
h1 { color: #333; text-align: center; }
ul { list-style-type: none; padding: 0; }
li { background: #f9f9f9; margin-bottom: 5px; padding: 10px; border-left: 3px solid #007bff; }
a { color: #007bff; text-decoration: none; }
a:hover { text-decoration: underline; }
.footer { text-align: center; margin-top: 30px; color: #777; font-size: 0.9em; }
</style>
</head>
<body>
<div class="container">
<h1>网站地图 - {dede:global.cfg_webname/}</h1>
<p><a href="{dede:global.cfg_basehost/}">返回首页</a></p>
<h2>主要栏目</h2>
<ul>
{dede:channelartlist typeid='top' row='100'}
<li><a href="{dede:field name='typeurl'/}">{dede:field name='typename'/}</a></li>
{dede:channel type='son' noself='yes'}
<li> <a href="{dede:field name='typeurl'/}">{dede:field name='typename'/}</a></li>
{/dede:channel}
{/dede:channelartlist}
</ul>
<h2>最新文章</h2>
<ul>
{dede:arclist row='100' orderby='pubdate' titlelen='50'}
<li><a href="[field:arcurl/]">[field:title/]</a></li>
{/dede:arclist}
</ul>
<div class="footer">
<p>本地图由织梦CMS自动生成</p>
</div>
</div>
</body>
</html>
第2步:修改织梦核心文件以自动更新
为了让Sitemap在每次更新内容时都自动更新,我们需要修改织梦的发布文件。
- 打开织梦的核心文件:
/dede/inc/inc_archives_functions.php。 - 在文件末尾,
?>之前,添加以下PHP代码:
/**
* 生成网站地图
*/
function CreateSitemap()
{
require_once(DEDEINC."/arc.partview.class.php");
$dsql = new DedeSql(false);
// 获取网站根目录
$murl = $GLOBALS['cfg_basehost'];
// 创建XML Sitemap
$tmpfile = $GLOBALS['cfg_basedir'].$GLOBALS['cfg_templets_dir'].'/special/sitemap.xml';
$dtp = new PartView();
$dtp->SetTemplet($tmpfile);
$dtp->SaveToHtml($GLOBALS['cfg_basedir'].'/sitemap.xml');
// 创建HTML Sitemap
$tmpfile = $GLOBALS['cfg_basedir'].$GLOBALS['cfg_templets_dir'].'/special/sitemap.html';
$dtp->SetTemplet($tmpfile);
$dtp->SaveToHtml($GLOBALS['cfg_basedir'].'/sitemap.html');
// 关闭数据库连接
$dsql->Close();
}
-
我们需要在发布文章、更新栏目等操作后调用这个函数。
- 修改文章发布/编辑文件: 打开
/dede/archives_add.php和/dede/archives_edit.php。 - 在文件末尾,在
ShowMsg()函数之前,添加一行代码:CreateSitemap();
- 修改栏目更新文件: 打开
/dede/catalog_add.php和/dede/catalog_edit.php。 - 同样,在文件末尾,在
ShowMsg()函数之前,添加一行代码:CreateSitemap();
- 修改文章发布/编辑文件: 打开
-
清空缓存后测试:
- 到后台 “系统” -> “系统设置” -> “一键更新网站”,选择“更新所有”并执行。
- 执行成功后,检查你的网站根目录,看看是否生成了
sitemap.xml和sitemap.html文件。 - 访问这两个文件,确认内容正确。
优点:
- 完全自定义,灵活控制内容。
- 自动更新,一劳永逸。
- 不依赖第三方插件,更安全。
缺点:
- 需要修改核心文件,有一定风险(操作前请备份!)。
- 需要基本的PHP和织梦模板知识。
使用第三方Sitemap生成工具(最通用)
如果你不想修改织梦,也不想安装插件,可以使用独立的Sitemap生成工具。
推荐工具:
- 在线工具: XML-Sitemaps.com (可以输入网址,自动生成并下载)
- 桌面软件: Screaming Frog SEO Spider (功能强大,免费版有页面数限制)
操作步骤:
- 选择工具: 访问 XML-Sitemaps.com。
- 输入网址: 在输入框中填入你的网站域名,点击“Start”。
- 等待扫描: 工具会开始爬取你的网站,分析所有页面,这个过程可能需要几分钟到几十分钟,取决于你网站的大小。
- 下载Sitemap: 扫描完成后,网站会提供一个下载链接,你可以直接下载
sitemap.xml文件。 - 上传并提交:
- 使用FTP工具将下载的
sitemap.xml文件上传到你的网站根目录。 - 登录百度和Google的站长平台,提交这个Sitemap。
- 使用FTP工具将下载的
优点:
- 无需接触网站后台,非常安全。
- 生成速度快,功能强大。
- 适合任何网站,不限于CMS。
缺点:
- 无法自动更新。 每当你网站有新内容时,都需要手动重新生成并上传一次Sitemap。
总结与建议
| 方法 | 优点 | 缺点 | 推荐人群 |
|---|---|---|---|
| 插件法 | 简单快速,零代码 | 可能不兼容,有风险 | 新手用户 |
| 修改代码法 | 灵活、自动更新、一劳永逸 | 需要修改核心文件,有风险 | 有一定技术基础的用户(最推荐) |
| 第三方工具法 | 安全,通用,无需后台 | 无法自动更新,需要手动操作 | 懒得折腾或网站内容更新不频繁的用户 |
对于绝大多数织梦用户来说,方法二(手动修改代码) 是最佳选择,虽然前期需要花一点时间设置,但一旦完成,你的网站地图就会在每次更新内容时自动保持最新,对SEO非常有利。
最后的重要提醒:
- 备份!备份!备份! 在修改任何核心文件之前,务必备份你的网站文件和数据库。
- 权限: 确保网站目录有写入权限,否则无法生成文件。
- 提交: 生成Sitemap后,一定要记得提交到百度和Google的站长平台,否则搜索引擎不会知道它的存在。
