技术博客的 Article 结构化数据里,author 直接写成了站点名称字符串。测试工具提示「作者必须是 Person 或 Organization」,文章富媒体与作者信息展示全部缺失。
真正麻烦的地方在于,几个原因的现象几乎一样。author 用纯字符串而不是带 @type 的对象;作者页没有对应的 Person 实体,无法通过 @id 引用;多篇文章共用同一段作者数据,字段被批量覆盖;作者字段由编辑器插件生成 每次保存都会覆盖模板里的值。
第一件事是看线上作者的写法
curl -s https://www.example.com/post/1 | grep -o '"author":[^}]*}' | head -1
再往下改成带类型的对象并补上作者页
"author":{"@type":"Person","name":"张三","url":"https://www.example.com/author/zhang"}
给作者页补 Person 标记
"@type":"Person","@id":"https://www.example.com/author/zhang#person"
批量回归检查作者字段
curl -s https://www.example.com/post/1 | grep -c '"@type":"Person"'
别只看报错消失,验证要多做一步。补齐 Person 实体后测试工具通过,三周内文章的作者信息与富媒体恢复展示,作者页也拿到了独立流量。
补一句。作者既要写类型也要有可访问的作者页,@id 指向一个真实存在的地址,否则实体是孤立的不被采信。如果同一现象隔几天又出现,说明根因没找到,别当偶发处理。
