这类问题我又碰上了一次。公司信息页的 Organization 标记里,address 只写了 streetAddress 和 addressLocality,测试工具报 addressCountry 缺失。补了中文中国两个字,又提示国家代码不合法。

第一反应是「多条地址放在数组里,只有第一条带国家」,验证下来不成立。

把日志和配置对完,能解释这个现象的基本就这几处。地址节点要求 addressCountry 用两位 ISO 代码;address 写成了字符串而不是 PostalAddress 对象;组织标记被输出两次,一份完整一份残缺。

第一件事是看 address 节点

curl -s https://www.example.com/about | grep -A6 '"address"'

再往下改成标准 PostalAddress

"address":{"@type":"PostalAddress","streetAddress":"建国路 88 号","addressLocality":"北京","addressCountry":"CN"}

然后确认只输出一份 Organization

grep -c '"@type":"Organization"' page.html

复验单页

https://search.google.com/test/rich-results

白天有业务在跑,能验证的部分都压到了晚上做。

当时还开着另一个排查窗口,两边日志对照着看才定位到。

恢复的判定其实很直接。测试工具不再报缺字段,知识面板里的公司地址显示为北京,国家代码识别正确。

地址字段是对象不是文本,国家要用 CN 这样的代码,写中文全称会被判无效。监控比日志更早给出信号,事后回看经常能提前半小时发现异常。

作者 9823189