常见问题页的 FAQPage 标记里,acceptedAnswer 下面放的是 span 而不是 div,测试工具提示答案文本为空,页面肉眼看着正常。
排查方向其实有限,先把可能性排一排。答案节点必须包含可识别的文本节点,包裹标签用错会解析失败;前端组件用 span 包裹富文本,JSON-LD 生成时直接照搬了标签名;答案里嵌了图标字体,文本内容被伪元素替代;同一问答块被复用了两次,第二处文本为空。
第一件事是检查答案节点的实际结构
curl -s https://www.example.com/faq | grep -o '"acceptedAnswer".\{0,120\}'
然后把节点改为 div 并输出纯文本
$answer = wp_strip_all_tags($html);
等前面都确认过,再逐条比对标记数量与页面可见问答数
grep -c 'acceptedAnswer' faq.html
同一份数据我导出了两份,一份留底,一份拿来试。
改完先别撤,确认这几项。节点改回 div 并输出纯文本后,FAQ 重新通过校验,搜索里的折叠问答在两周内恢复展示。
提醒一点。结构化数据里的文本最好是纯文本,页面上的图标与样式脚本不应该被带进标记里。这类问题最好一次改到位,反复小改反而容易把原因搅混。
