什么时候用这个工具
每次发布都把整个 sitemap 提交一遍,是最快触发 429 的方式。做一次对比,就能把整份 sitemap 收敛成真正变化过的那些 URL。
内容发布之后
对比发布前后的 sitemap,就能精确得到这次发布触及的页面。
站点体量较大时
sitemap 有几千条时,真正变化的往往只有寥寥几条。提交那几条就够了。
lastmod 可信时
如果生成器写入的 lastmod 准确,不用抓取任何页面就能识别出变更页。
复盘一次发布
这份 diff 同时也是一条记录:这次部署新增和修改了哪些 URL。
如何对比两个 sitemap
两个文件都由浏览器自带的 XML 解析器处理,不会上传任何一个。
- 1
保留一份基线 sitemap
在发布前下载 sitemap XML,或者保留上次提交时用的那份。
- 2
上传两个文件
把较旧的作为基线,较新的作为当前 sitemap。
- 3
选择要包含的内容
新增指新出现的条目,变更指 lastmod 发生变化的条目,两者可任选或全选。
- 4
复制、下载或直接提交
把队列导出为文本,或直接发送到对应主机的提交表单。
常见坑
上传的是 sitemap 索引
索引只列出其他 sitemap。请上传它指向的各个 sitemap 文件——本工具坚持只在浏览器内运行,不会去抓取它们。
生成器每次都刷新 lastmod
有些工具每次构建都重写全部 lastmod,导致所有 URL 看起来都变了。全量提交前先确认一下。
缺少 lastmod
没有 lastmod 就只能识别新增 URL——对已有页面的编辑在 diff 里是看不见的。
一个 sitemap 里混了多个主机
跨主机的 sitemap 生成的队列,提交前仍然需要拆分。
常见问题
- 为什么要上传文件而不是填 sitemap 地址?
- 浏览器读取别的站点的 sitemap 会被 CORS 拦住,而在服务端抓取则意味着要把你的 URL 发给我们。上传文件能让对比留在本地。
- 怎么判定一条 URL 变更了?
- 两个文件里都存在、但 lastmod 不同的 URL 算变更;只出现在新文件里的算新增。
- 会报告被删除的 URL 吗?
- 会计数但不会导出。IndexNow 用于通知更新,被删除的 URL 更适合交给搜索引擎自行重新抓取。
- 可以对比 gz 压缩的 sitemap 吗?
- 不行。请先解压 .xml.gz,工具只解析纯 XML。
- 队列会遵守 10,000 条上限吗?
- 对比结果可能超出这个数。接近上限时,把结果再过一遍批次整理器。