Sitemap 生成器

Sitemap 生成器,是指把网址列表一键转换成符合 sitemaps.org 协议的 sitemap.xml 网站地图的在线工具。它免费、无需注册,可统一或逐行设置 lastmod、changefreq、priority,自动去重、转义 & 等特殊字符、编码中文网址,超过 5 万条自动拆分并生成 sitemap 索引文件。网址全在浏览器本地处理,不上传。

网址列表

一行一条;可从 Excel 复制多列(制表符分隔),日期、更新频率、0~1 的权重按形态自动识别、与列顺序无关;# 开头的行是注释。刷新即恢复示例,网址不会保存在本机。

字段与选项

lastmod(最后修改时间)

默认不写:lastmod 只有一贯准确才会被 Google 采用,本工具不替你填「今天」。

changefreq(更新频率)

Google 会忽略此项。

priority(权重)

Google 会忽略此项。

高级:归一、排序、拆分与文件名
网址归一
输出排版

生成结果

有效网址 6 条去重 0 条0 行因错误未写入文件 1 个sitemap.xml:6 条 / 549 B

单个文件上限 50,000 条、未压缩 50.00 MB,任一先到即自动拆分;百度对单文件体积要求更严(约 10.00 MB)。

<?xml version="1.0" encoding="UTF-8"?>
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
  <url>
    <loc>https://example.com/</loc>
  </url>
  <url>
    <loc>https://example.com/blog/</loc>
  </url>
  <url>
    <loc>https://example.com/products/</loc>
  </url>
  <url>
    <loc>https://example.com/%E4%BA%A7%E5%93%81/%E6%89%8B%E6%9C%BA?%E5%9E%8B%E5%8F%B7=%E6%96%B0%E6%AC%BE</loc>
  </url>
  <url>
    <loc>https://example.com/search?q=sitemap&amp;page=2</loc>
  </url>
  <url>
    <loc>https://example.com/about</loc>
  </url>
</urlset>

sitemap 帮助搜索引擎发现网址,但不保证收录。

问题清单

未发现常见问题

归一改动(2 行)

下一步

  1. 把生成的文件上传到网站根目录(或上面「sitemap 存放目录」指向的目录),确保能在浏览器里直接打开。
  2. 在 robots.txt 加一行:Sitemap: https://example.com/sitemap.xml,完整文件可以用 robots.txt 生成器 编辑。
  3. 到 Google Search Console、百度搜索资源平台、Bing Webmaster Tools 的「站点地图 / sitemap」页面提交 sitemap 地址(多文件时提交索引文件的地址)。

如何使用Sitemap 生成器

1

sitemap 在线生成:每行粘贴一个网址,可以从 Excel 连同日期、更新频率、权重几列一起复制进来;以斜杠开头的相对路径会用站点地址补全,已有的 sitemap.xml 可以点「导入」转回列表接着改。

2

在三张卡片里选 lastmod、changefreq、priority 的填法(默认都不写),再看问题清单:必须改的行不会写进文件,点一条就能跳到输入框对应的行;缺 https:// 的行可以一键补上。

3

复制或下载 sitemap.xml(拆成多个文件时下载 sitemaps.zip),上传到网站根目录,在 robots.txt 加一行 Sitemap: 地址,再到 Google、百度、Bing 的站长平台提交。

关于Sitemap 生成器的常见问题

Sitemap 生成器会上传我的网址吗?
不会上传。你粘贴的网址列表、填写的站点地址和日期,全部在浏览器本地解析、编码和拼成 XML,不发给任何服务器,本工具也不会替你去抓取你的网站或线上的 sitemap。列表只放在当前页面的内存里,刷新即恢复示例,不写进本地存储;只有输出格式、缩进和三个字段的填法这几项展示偏好会记在本机。站点本身仅有匿名访问量统计,与你填的内容无关。
sitemap.xml 怎么做?最少要写哪些标签?
最少三层标签:最外面一个 urlset 根元素,并带上 sitemaps.org 的命名空间;每条网址一个 url 元素;url 里面一个 loc,写带 https 和域名的完整网址。lastmod、changefreq、priority 都是可选的。文件要用 UTF-8 编码,网址里的 & 要写成 &amp; 这样的实体。本工具把网址列表粘进来就会按这个结构自动生成,并把转义、编码、去重这些容易出错的细节一并处理掉。
一个 sitemap 最多能放多少条网址?超出怎么办?
按 sitemaps.org 协议,单个 sitemap 文件最多 50,000 条网址,未压缩体积不超过 50MB,两条线任一先到就要拆分。拆开后再写一个 sitemap 索引文件,把各个子文件的地址列进去,提交时只交索引文件的地址即可;索引文件里不能再套索引。百度对单个文件的体积要求更严,以百度搜索资源平台说明为准。本工具会按条数与实测字节数自动拆分并生成索引,每个文件的条数也可以自己调小。
sitemap 的 lastmod 和 priority 要不要填?
priority 和 changefreq 可以不填:Google 官方文档写明会忽略这两项,全部写成相同的值更是等于没写。lastmod 值得填,但前提是准确——Google 只在它一贯、可验证地准确时才采用,Bing 也会用它判断何时重新抓取。所以本工具默认三项都不写,也不提供一键填今天的按钮:每天把所有页面写成今天,等于告诉搜索引擎这个字段不可信。真实的修改日期可以作为一列从 CMS 或 Excel 导出后粘进来。
sitemap 做好后怎么提交给百度和谷歌?
先把文件上传到网站根目录,确认在浏览器里能直接打开。然后在 robots.txt 里加一行 Sitemap: 加完整地址,搜索引擎读 robots.txt 时会顺带发现它。再分别登录 Google Search Console、百度搜索资源平台(普通收录里的 sitemap 提交)、Bing Webmaster Tools,在站点地图页面填入地址提交;拆成多个文件时提交索引文件的地址。几个平台都要求先验证站点归属。Google 已停用旧的 sitemap ping 接口,本工具也不会替你发请求。
sitemap 里的网址为什么要转义和编码?
这是两层不同的处理,顺序不能反。第一层是百分号编码:中文路径、空格这类字符不能直接出现在网址里,要按 UTF-8 编成 %E4%BA%A7 这样的形式,已经编过码的 %XX 不能再编一次,否则就变成另一个网址。第二层是 XML 实体转义:sitemap 是 XML 文件,网址里的 & 必须写成 &amp;,单双引号和尖括号也要转,否则整个文件解析失败。本工具两层都自动做,并在归一改动清单里逐行列出改了什么。
提交了 sitemap 为什么页面还是没被收录?
sitemap 只是告诉搜索引擎有这些网址,帮助它更快发现,并不保证收录;收不收录取决于页面内容质量、重复程度和抓取情况。常见的自查点:网址是否返回 200 而不是跳转或 404;是否被 robots.txt 禁止抓取——写进 sitemap 又被 robots.txt 禁止是矛盾信号;页面是否带了 noindex;canonical 是否指向了别的网址;同一页面的 http 与 https、带不带 www、带不带尾斜杠是否混着提交。本工具的问题清单会把后三类混用标出来。
sitemap 能放其他域名或子目录以外的网址吗?
一般不能。一个 sitemap 只能列它所在站点的网址,而且存放位置决定范围:放在 /blog/sitemap.xml 的文件只能列 /blog/ 下面的网址,放在根目录才能列整站。http 与 https、www 与不带 www 也被当成不同站点。需要跨站点列网址时,要在 Search Console 里验证所有相关站点,或者通过 robots.txt 声明。本工具在「高级」里可以填 sitemap 存放目录,不在这个目录之下的网址和多个域名混用都会在问题清单里提示。
sitemap.xml 文件应该放在网站哪个目录?
最常见也最省心的是放在网站根目录,即 https://你的域名/sitemap.xml,这样它可以列整站的网址。放在子目录也可以,但只能列那个目录下面的网址。拆成多个文件时,索引文件和全部子文件要一起上传,并保证索引文件里写的子文件地址都能打开,本工具生成索引时会用你填的存放目录拼出这些地址。放好之后在 robots.txt 写一行 Sitemap: 加完整地址,各家搜索引擎都会读。
Next.js 项目的 sitemap.ts 怎么写?
Next.js 的 App Router 可以在 app 目录下放一个 sitemap.ts,默认导出一个返回 MetadataRoute.Sitemap 数组的函数,每一项写 url、lastModified、changeFrequency、priority,构建时自动生成 /sitemap.xml。本工具的 Next.js 页签会把同一份网址表转成这种写法,日期按你写的字符串原样输出,避免时区换算出错。网址超过 5 万条时不能写进一个数组,要用 generateSitemaps 分片,页签里会给出骨架写法,每一片从你的数据源按编号取网址。
txt sitemap 和 XML 格式有什么区别?
TXT 格式就是纯文本文件,一行一个完整网址,不能带 lastmod 等任何附加信息,Google、Bing 和百度都支持,适合网址多、只想快速列清单的场景。XML 格式可以附带最后修改时间,也支持索引文件和图片、视频等扩展。两者的单文件上限相同,同样是 5 万条、50MB。TXT 文件也必须用 UTF-8 编码,网址里的中文同样要编码。本工具的 TXT 页签与 XML 页签来自同一份网址表,超过上限时同样自动拆分。
网站有图片、视频或多语言版本,sitemap 要怎么写?
这几类要用扩展 sitemap:图片用 image 命名空间的 image:image 标签,视频用 video:video,多语言版本用 xhtml:link 加 hreflang 属性,都写在对应的 url 元素里面。本工具目前只生成标准的网址 sitemap,不生成这些扩展标签,需要的话可以在生成后手工补充,或者交给 CMS 插件生成。导入已有 sitemap 时,扩展标签会被丢弃,工具会如实提示丢弃了几个图片标签、几个 hreflang 链接,不会静默丢掉。

功能特点:网址列表到 sitemap 文件一步到位

  • 网站地图生成器:一行一个网址,生成 UTF-8、LF 换行的标准 sitemap.xml,子元素顺序固定为 loc、lastmod、changefreq、priority,同样的输入永远得到同样的字节。
  • sitemap.xml 生成时自动转义与编码:中文路径按 UTF-8 百分号编码、中文域名转 punycode,& 等五种字符转成实体,已编码的 %XX 原样保留;每一处改动都列在归一改动清单里。
  • 逐行问题清单:内置 29 项检查,按必须改、注意、提示三级标出缺协议、相对路径、坏日期、未来时间、多域名、跟踪参数、重复网址等问题,点一条跳到对应行。
  • 自动拆分与 sitemap 索引文件:超过 50,000 条或 50MB 自动拆成多个文件并生成索引,一次打包下载 zip。
  • 四种输出来自同一份网址表:sitemap.xml、TXT、Next.js sitemap.ts 与 robots.txt 的 Sitemap 行,下载的就是预览的那一份。
  • 导入已有 sitemap:粘贴或拖入 sitemap.xml,转回多列列表继续编辑;索引文件、扩展标签都会如实提示。
  • priority 按层级推算:首页 1.0,每深一层减 0.2,最低 0.1;不过 Google 会忽略 priority,默认不写。

英文里这类工具叫 sitemap generator 或 xml sitemap generator;本页不在线爬取你的网站(那需要大量外发请求且受跨域限制),网址可以从 CMS 导出、从 Excel 复制,或用「提取链接」工具从网页源码里抽出来再粘贴。

写 sitemap 前要知道的四件事

  1. Google 忽略 changefreq 与 priority:lastmod 也只在一贯准确时才采用。所以本工具默认三项都不写,更不替你填今天。
  2. 先百分号编码,再 XML 转义:中文先编成 %E4%BA%A7 这样的形式,再把 & 写成 &amp;;已经编码过的 %XX 不能再编一次。
  3. 存放位置决定能列哪些网址:/blog/sitemap.xml 只能列 /blog/ 下的网址,放在根目录才能列整站。
  4. sitemap 不等于收录:它只帮助搜索引擎发现网址;写进 sitemap 又被 robots.txt 禁止抓取是矛盾信号,要二选一。

sitemap 格式标签速查

XML 网站地图只有六个标签,必填的只有 urlset、url、loc 三个。下表「Google 是否使用」一栏来自 Google 搜索中心文档(核对于 2026-10)。

sitemap.xml 标签速查(共 6 个)
标签必填写法Google 是否使用说明
<urlset>必填<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">使用根元素,命名空间必须一字不差
<url>必填每条网址一个 <url>使用子元素顺序不限,本工具固定 loc → lastmod → changefreq → priority
<loc>必填<loc>https://example.com/a</loc>使用完整网址,带协议,少于 2048 字符,& 等五种字符要转义
<lastmod>可选<lastmod>2026-10-01</lastmod>一贯准确时才用W3C Datetime:YYYY-MM-DD 或带时区的完整时间;Bing 也使用
<changefreq>可选<changefreq>weekly</changefreq>忽略always / hourly / daily / weekly / monthly / yearly / never
<priority>可选<priority>0.8</priority>忽略0.0 ~ 1.0,默认 0.5,只表示站内相对重要性

sitemap 提交百度、谷歌与 Bing:格式与上限

三家都支持在 robots.txt 里用 Sitemap 行声明;查不到官方说法的写「未公开」。上限数字核对于 2026-10,以各平台当期说明为准。

各搜索引擎的 sitemap 支持格式、单文件上限与提交入口
搜索引擎支持格式单文件上限提交入口备注
GoogleXML、RSS/Atom、TXT5 万条 / 50MB(未压缩)Google Search Console →「站点地图」忽略 changefreq 与 priority;也可在 robots.txt 写 Sitemap 行
BingXML、RSS/Atom、TXT5 万条 / 50MB(未压缩)Bing Webmaster Tools →「Sitemaps」使用 lastmod;读取 robots.txt 的 Sitemap 行
百度XML、TXT5 万条 / 10MB(以平台说明为准)百度搜索资源平台 →「普通收录」→「sitemap」字段支持情况未公开;需先验证站点归属

转义与编码示例:网址写进 sitemap 后的样子

右列由本工具的归一与转义函数现场算出,不是手写的结果。

原始网址与写进 sitemap.xml 后的 loc
原始网址处理写进 sitemap 后
https://example.com/search?q=a&page=2& 转成 &amp;<loc>https://example.com/search?q=a&amp;page=2</loc>
https://example.com/产品/手机中文路径按 UTF-8 百分号编码<loc>https://example.com/%E4%BA%A7%E5%93%81/%E6%89%8B%E6%9C%BA</loc>
https://example.com/%E4%BA%A7%E5%93%81已编码的 %XX 原样保留<loc>https://example.com/%E4%BA%A7%E5%93%81</loc>
https://example.com/100%孤立的 % 编码为 %25<loc>https://example.com/100%25</loc>
https://例子.cn/中文域名转 punycode<loc>https://xn--fsqu00a.cn/</loc>
HTTPS://Example.COM/Path/A#top协议与域名转小写、去锚点,路径大小写不动<loc>https://example.com/Path/A</loc>
https://example.com/it's单引号转成 &apos;<loc>https://example.com/it&apos;s</loc>

问题清单覆盖的 29 项检查

检查规则表(共 29 项,页面与工具用的是同一份数据)
级别触发条件
必须改javascript:、data: 等危险协议
必须改协议不是 http 或 https(ftp:、mailto: 等)
必须改网址没写 https://
必须改以 // 开头、没写协议的地址
必须改以 / 开头的相对路径,但没填站点地址
必须改网址里带了账号密码
必须改中文域名无法转成 punycode
必须改网址里有残缺的 emoji 等无效字符
必须改网址里有控制字符
必须改网址无法被解析
必须改网址达到或超过 2048 字符
必须改网址后面有识别不了的列(常见于网址里有空格)
注意关闭了编码,网址里仍有中文等非 ASCII 字符
注意日期写法无法识别或日期不存在
注意lastmod 晚于今天超过 1 天
注意同一个文件里出现多个域名
注意网址不在 sitemap 存放目录之下
注意同一域名同时出现 http 与 https
提示/a 与 /a/ 同时出现
提示带 www 与不带 www 的域名同时出现
注意网址带 utm_ 等跟踪参数
提示同一网址出现多次(已去重)
注意重复网址的日期、频率或权重不一致
注意关闭了去重,sitemap 里有重复网址
提示所有网址的 priority 都相同
提示输出了 changefreq 或 priority
提示单个文件超过 10MB
注意选了「用列表里的值」但列表里没有这一列
注意选了统一日期但没填日期