直接答案:粘贴 sitemap XML(urlset 或 sitemapindex),工具在浏览器本地检查六件事:能否解析、根元素是什么、条目数是否超 5 万、loc 是否绝对地址且与站点同主机、是否重复、lastmod 格式是否像日期。它不联网、不抓站,也不判断收录。
第 10 期的扫描里,24 个站点只有 13 份可用 sitemap,2 份返回 200 却不是 sitemap(空响应、HTML),9 份 404。那一期测“有没有”,这一期补“有了之后对不对”。
解析、条目数、主机、重复、lastmod。
通过不等于被抓取,更不等于被收录。
不联网:只分析粘贴的 XML。
工具:粘贴 → 检查
问题列表最多显示前 20 条;计数覆盖全部条目。
默认示例会报出三个问题:/product 与 /product/ 被判为重复、一个 lastmod 写成 02/11/2026、一个 loc 跨到别的域名。把站点 URL 清空,跨主机的提示会消失——这也说明主机检查依赖你填的基准。
六项检查
| 检查 | 级别 | 说明 |
|---|---|---|
| XML 能否解析 | 错误 | 标签闭合、编码、实体转义 |
| 根元素 | 错误 | 必须是 urlset 或 sitemapindex |
| 条目上限 | 错误 | 单文件 50,000 条、50MB |
| loc 是否绝对地址 | 错误 | 相对路径无效 |
| loc 主机一致性 | 警告 | 与填写的站点 URL 不同 |
| 重复 / lastmod 格式 | 警告 | 去尾斜杠后重复;非 W3C Datetime |
五个常见问题
- 把 HTML 当 sitemap。 返回 200 的软 404 或前端兜底页,解析 XML 直接失败。
- 一个文件塞太多。 超过 5 万条应拆成 index + 子文件,否则整份可能被忽略。
- loc 相对地址。
/product无法被解析为绝对 URL。 - 重复 URL。 带不带尾斜杠、带不带参数,常被当成两个页面。
- lastmod 写成本地格式。
02/11/2026既可能是 2 月 11 日也可能是 11 月 2 日,机器只能忽略。
边界
- 不抓站:只解析粘贴文本,不知道线上文件的实际状态码。
- 不判收录:结构正确只是候选条件。
- 不递归 index:子 sitemap 需逐个粘贴检查。
- 不校验 lastmod 真伪:只看格式,不判断新旧。
测试与复算
逻辑在 js/sitemap-check.js(无依赖、无网络);scripts/test_sitemap_check.js 覆盖 30 条断言:URL 归一化、主机提取、日期格式、缺失/相对 loc、跨主机、重复、5 万与 50MB 上限、index 与空集合。运行:
node scripts/test_sitemap_check.js
配套:24 家 sitemap 扫描(13 可用、9 个 404、2 个假 sitemap)、robots.txt 匹配器、12 条验收条款模板。
数据来源与口径
- sitemaps.org 协议(50,000 URL、50MB、lastmod 使用 W3C Datetime):sitemaps.org。
- W3C Datetime 格式:w3.org。