问题出现得很突然,日志倒是留得挺全。JSON-LD 里 Article 的 @id 写成 /post/1#article,Organization 的 @id 写成 /#org,富媒体测试提示实体无法关联,Article 标记一直不生效。

刚开始盯着「模板用了相对 permalink 输出」,折腾了半个多小时,排掉了。

排查方向其实有限,先把可能性排一排。@id 应是可解析的绝对地址,相对路径无法跨实体引用。另一种情况是同一页面里两个实体的 @id 前缀不一致。

不容易想到的是,没有在 @context 之后统一声明站点域名。

动手时先看输出的 @id 值

curl -s https://www.example.com/post-1/ | Select-String "@id"

接着改成绝对地址

$id = home_url('/post/1#article');

然后确认作者与发布者引用能对上

curl -s https://www.example.com/post-1/ | Select-String publisher

等前面都确认过,再用富媒体测试复核

curl -s "https://search.google.com/test/rich-results?url=https://www.example.com/post-1/" -o /dev/null -w "%{http_code}"

这台环境是别人交接的,不少默认值被动过,只能一项项核。

别只看报错消失,验证要多做一步。页面里所有 @id 都是 https 开头的绝对地址,富媒体测试不再报实体引用失败。

@id 是实体的身份证,写成相对路径等于每个页面各说各话。拖得越久,排查成本越高,因为现场状态会被后续操作覆盖。

作者 9823189