在资源平台提交 sitemap,返回「格式错误」或「无法解析」。文件在浏览器里能打开,看着也像 XML,但解析器不认,问题往往藏在开头几行和特殊字符里。
先验证是不是合法 XML
xmllint --noout sitemap.xml
没有输出说明格式合法,报错会直接指出行号。没有装 xmllint 就用 Python:python -c “import xml.dom.minidom as m; m.parse(‘sitemap.xml’)”。
三个最常见的坑
- 文件开头多了 BOM,XML 声明不在第一行
- URL 里带 & 没有转义成 &,解析器直接报错
- 把 HTML 页面伪装成 xml,返回类型是 text/html
确认服务器返回的类型
curl -I https://你的域名/sitemap.xml
Content-Type 应该是 application/xml 或 text/xml。如果返回 text/html,说明请求被重写到了首页,需要检查伪静态规则里对 .xml 的处理。
用插件生成,别手写
手写 sitemap 迟早会漏链接或写错格式。用成熟的生成插件,设置好包含的 post type,再在平台提交。条目超过五万条或文件大于 50MB 时要拆分并建索引文件,否则同样会被判格式错误。
提交前还可以用浏览器直接打开地址确认能看到内容,如果打开是首页或者下载文件,说明服务器对这个路径的处理有问题,先修这个再提交。