给百度单独提交 sitemap,文档里提到移动适配要用 mobile 标签,直接照搬 Google 的写法,平台一直提示格式不合法。

排查方向其实有限,先把可能性排一排。百度使用自己的命名空间,和标准 sitemap 不一致。还有一种是mobile:mobile 标签需要指向移动版地址,不是简单的 type 属性。

不容易想到的是,命名空间声明写错,解析器把整段当成未知标签忽略。

上来先在 urlset 上声明百度命名空间

xmlns:mobile="http://www.baidu.com/schemas/sitemap-mobile/1/"

接着在每条 URL 内加 mobile 节点

<mobile:mobile type="pc,mobile"/>

末了用工具校验 XML 是否正确闭合

xmllint --noout baidu_sitemap.xml

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

恢复的判定其实很直接。百度资源平台提交后状态变为正常,移动适配报告里能读到对应关系,适配失败的提示减少。

这里还有个坑。移动适配更推荐在页面里做双向标注,sitemap 标签只是补充,两者不一致时会被判为适配失败,反而更麻烦。改动前把原配置备份一份,出问题能马上回滚,这比任何技巧都实用。

作者 9823189