实用工具

XML 网站地图(sitemap.xml)生成器

粘贴网址列表,生成符合 sitemaps.org 规范的 sitemap.xml,超过 5 万条自动拆分并生成索引,可附带 hreflang。

浏览器本地运行站长与 GEO1711
免费

输入

0 B

结果

结果会显示在这里。

静态站点、导出的文档站,或者用爬虫工具抓下来的一份网址清单,常常缺一个 sitemap。把网址按每行一个粘贴进来,这里会严格按 sitemaps.org 协议生成 sitemap.xml:网址为绝对地址、做了百分号编码和实体转义,每行可选 lastmod、changefreq、priority,多语言站点还能加 hreflang 备用链接。超过 50,000 条网址或未压缩超过 50 MB 时,会自动拆分成编号的多个 sitemap,并生成指向它们的索引文件。Node.js 服务端要在每次部署时重新生成 sitemap 的话,可以用实现了同样规则的 sitemap.js(ekalinin/sitemap.js,MIT)。

它是怎么工作的

  • 每行一个网址,后面可以用 | 分隔追加字段:W3C 日期作为 lastmod,weekly 之类的单词作为 changefreq,0.0 到 1.0 的数字作为 priority,「语言=网址」作为备用链接。
  • 网址中的 & 和引号被转义为 & 和 ',中文路径做百分号编码,中文域名转换为 punycode,这些都是协议的要求。
  • 重复网址自动去掉,不是绝对 http(s) 地址的行会被跳过并计数;如果网址分属多个主机也会提示,因为一个 sitemap 只能列出与自身同一主机的网址。
  • 拆分后,每个代码块都是完整的文件,文件名写在 XML 声明后面的注释里;索引会列出每个文件,并附上该文件中最新的 lastmod。

你的数据去了哪里

哪也没去。本工具完全在你的浏览器里运行:你粘贴的文本由页面处理,不会传输到任何服务器,也不会写进任何日志。

本工具免费且无需登录,运行结果只存在于你当前的页面里,不会被保存到任何地方。

它要花多少

本工具完全免费,不需要登录,也不消耗积分。

常见问题

changefreq 和 priority 有用吗?
对 Google 没用,它的文档明确说会忽略这两项。lastmod 会被使用,但前提是一直准确,所以要么按真实修改时间填写,要么干脆不填。Bing 等其他爬虫可能仍会参考 changefreq 和 priority,所以工具把它们保留为可选项。
hreflang 备用链接怎么写才对?
每个语言版本都要有自己的一行,而且每一行都要列出完整的备用链接集合,包括它自己——单向标注会被 Google 忽略。再加一个 x-default,指向语言都不匹配时展示的版本。示例输入里就有一组中英文页面的写法。
怎么让搜索引擎找到 sitemap?
在 Google Search Console、Bing Webmaster Tools 以及百度搜索资源平台提交,并在 robots.txt 里加一行带完整网址的 Sitemap:,让其他爬虫也能发现。拆分后只需提交索引文件,搜索引擎会顺着它找到其余文件。
拆分出来的文件放在哪里?
和索引文件放在一起,也就是「sitemap 位置」选项里填的地址;不填则默认使用第一个网址的域名根目录。sitemap 只能列出与自身所在主机相同的网址,所以请把文件放在该主机上,或者先在 Search Console 中验证两个主机再提交索引。

背后的开源项目

本工具是独立实现,并未打包第三方库。ekalinin/sitemap.js(MIT)在代码层面做的是同一件事——如果你需要在自己的程序里实现它,从那里开始,而不是调用一个网页。

ekalinin/sitemap.js

也常被称作

  • sitemap生成器
  • 网站地图生成
  • sitemap.xml生成
  • xml网站地图在线生成
  • sitemap索引文件
  • hreflang sitemap