手工拼装的 JSON-LD 里多了一个尾逗号,浏览器控制台没有报错,结构化数据却整段消失了。

排查方向其实有限,先把可能性排一排。对象或数组最后一项后面多了逗号。也可能是拼接字符串时没有处理空值,输出了 undefined。

另外,引号用了中文全角字符,解析失败。

上来先用解析器直接验证 JSON 合法性

curl -s https://www.example.com/a/ | python -m json.tool

再往下把动态拼接改成数组后统一编码

echo json_encode($schema, JSON_UNESCAPED_SLASHES);

末了检查是否混入全角引号

grep -n '“' /www/wwwroot/site/wp-content/themes/

那几天正好在做别的变更,先把时间线对齐才敢动手。

排查用的命令都是临时敲的,没有写成脚本,事后才整理。

改完先别撤,确认这几项。JSON 解析通过,测试工具能读到全部字段,富媒体报告里不再出现缺失。

容易忽略的是,JSON 是严格格式,一个字符错整段作废,且页面看起来完全正常,必须用解析器验证而不是靠肉眼扫一遍。线上能稳定复现的问题都不算难,难的是只在大流量下才出现的那种。

作者 9823189