现场是这样的。Bing 站长工具里提交 sitemap,报 URL 不在站点范围内,可地址和已经验证过的域名明明一致,反复重试也没用。

排查方向其实有限,先把可能性排一排。站点验证的是根域,sitemap 里写的是带 www 的主机名;sitemap 中混入了其他子域或测试域的地址;协议不一致,验证用 http 但通篇提交 https。

先核对验证域名和 sitemap 里的主机名

grep -o 'https://[^/]*' sitemap.xml | sort -u

接着把地址统一成验证用的主机名

sed -i 's#https://example.com#https://www.example.com#g' sitemap.xml

末了重新提交并用抓取工具测试

curl -sI https://www.example.com/sitemap.xml

命令输出我都留了记录,免得改完记不清原来的值。

改之前先确认了最近有没有人动过配置,避免白查一遍。

这次没动代码,只在配置和运行环境上找原因。

别只看报错消失,验证要多做一步。Bing 接受提交,状态从错误变为已处理,URL 数量与本地一致。

Bing 对子域和根域区分很严,一个账号下最好把根域和 www 都验证一遍,省得每次提交都要改地址。线上能稳定复现的问题都不算难,难的是只在大流量下才出现的那种。

作者 9823189