Sitemap.xml 验证器 — 真正的协议合规性检查器
粘贴或上传 sitemap.xml(或站点地图索引)并根据真实的 sitemaps.org 协议对其进行验证:根元素和命名空间、绝对 <loc> URL、记录的 50,000 URL / 50MB 限制、<lastmod>、<priority>、<changefreq> — 加上新鲜度直方图和重复 URL 检测。
结果
sitemap.xml 文件可以是格式完美的 XML,但仍然是一个损坏的站点地图:缺少 xmlns 命名空间、相对 <loc> URL、“1.5”的 <priority> 或“Daily”而不是“daily”的 <changefreq> 都将通过通用 XML 验证器,同时悄悄地失败 Google、Bing 和文件的所有其他使用者所期望的实际站点地图协议。该工具使用浏览器的本机 DOMParser 解析您粘贴或上传的站点地图,并根据在 sitemaps.org 上发布的实际规则进行检查:对于常规站点地图,根元素必须是 <urlset> ,对于站点地图索引(自动检测),根元素必须是 <sitemapindex> ,理想情况下使用确切的命名空间 http://www.sitemaps.org/schemas/sitemap/0.9 进行声明,并且每个 <url> (或索引文件中的 <sitemap> )必须包含解析为真正的绝对 http/https URL 的 <loc>。
除了结构之外,该协议还记录了该工具逐个字段检查的硬限制和精确字段格式。单个站点地图文件不得列出超过 50,000 个 URL,且未压缩不得超过 50MB - 限制也适用于站点地图索引文件,计算 <sitemap> 条目而不是 <url> 条目 - 并且此工具会根据这两者来衡量您实际粘贴/上传的内容。每个 <lastmod>(如果存在)都会根据规范接受的真实 W3C 日期时间格式进行检查:纯日期 (YYYY-MM-DD) 或包含小时、分钟、可选秒和强制时区指示符的完整时间戳。每个 <priority>(如果存在)必须是 0.0 到 1.0 之间的小数,并且每个 <changefreq> 必须恰好是规范定义的七个值之一——always、hourly、daily、weekly、monthly、yearly、never——这不是一个看似合理的同义词。每个违规行为都会指定特定的条目编号及其实际值,每条规则显示的违规者上限为 50 个,并带有“+N 更多”注释,因此即使在接近 URL 限制的站点地图上,报告也能保持可读性。
两项检查超出了书面协议的要求,但却发现了真正的常见问题:<lastmod>新鲜度直方图按月对每个有效的最后修改日期进行分组,这样您就可以一目了然地看到网站的内容是否实际上保持最新,或者大多数URL是否带有几年前的过时时间戳,并且重复<loc>检测器标记在同一文件中多次列出的任何URL - 这是合并多个源而不进行重复删除的站点地图生成器的常见副作用。一切都在本地运行:解析、规则检查和直方图都是在浏览器中根据您粘贴的文本或通过文件 API 上传的文件计算的,不会提取或上传任何内容到服务器,并且站点地图中不会请求或抓取任何单独的 URL - 该工具检查站点地图文档本身,而不是检查它列出的页面是否实际存在或返回 200 OK。