站点地图地址在浏览器里能正常打开,搜索后台提交却提示无法读取,状态停在待处理,隔天直接变成失败,重新提交还是一样。碰到这种情况,我一般先确认改动有没有真的生效。

原因不复杂,文件开头带了 BOM,或者 XML 声明之前有空行,解析就会失败;响应内容类型不是 xml,或者被环境套上验证页,读取程序也拿不到真正的文件。

「sitemap 无法读取」这类改动最怕改一半,回滚脚本先准备好,再动生产。改完顺手把文档补一句,省得下次自己重新推一遍。

curl -sI https://example.com/sitemap.xml | head -6
# 确认 content-type 为 application/xml,不带 BOM

监控和日志的时间要对上,时区不一致会多绕很大一圈。临时改动用注释写上日期和原因,过两周自己都记不清为什么这么写。

具体做法是,去掉文件头部的 BOM 标记和多余的空白行,另存为无 BOM;确认响应头里的内容类型是 xml,而不是纯文本或下载;用抓取工具看原始响应有没有被中间层改写。

最后用这个标准收尾,后台状态变成成功并显示已发现地址数,不再报读取失败。

作者 9823189