创建FAQPage类型Schema时提示‘acceptedAnswer属性不被schema.org识别’的原因分析
FAQPage Schema 错误分析:acceptedAnswer 不被识别的原因及修复方案
错误原因拆解
这个报错的核心是Schema层级结构不符合规范:
- 根据schema.org定义,
acceptedAnswer是Question类型的专属属性,只有Question对象才能包含这个属性。 - 你当前的代码里,
Question的<div>已经提前闭合,而acceptedAnswer的<div>处于Question的itemscope范围之外,导致搜索引擎误将acceptedAnswer识别为FAQPage的属性——但FAQPage类型根本不支持acceptedAnswer这个字段,所以触发了错误提示。
修复方案:调整HTML结构层级
你需要把acceptedAnswer对应的Answer结构,完全嵌套在Question的itemscope内部,确保属性归属正确。另外注意补充顶层的FAQPage声明(你之前的代码可能缺失了这部分,这也是常见的结构漏洞)。
修改后的代码示例:
<!-- 顶层声明FAQPage的itemscope,作为整个FAQ结构的根 --> <div itemtype="https://schema.org/FAQPage" itemscope="true"> <!-- 单个Question条目,归属到FAQPage的mainEntity属性 --> <div itemtype="https://schema.org/Question" itemscope="true" itemprop="mainEntity" class="card-header" id="headingOne"> <h2 itemprop="name" class="mb-0"> <button class="btn faq-button btn-link collapsed" data-toggle="collapse" data-target="#collapseOne" aria-expanded="true" aria-controls="collapseOne"> Apa itu Asuransi Kesehatan? <img src="<?php echo base_url(); ?>assets/new-style/kesehatan/assets/img/icons/Down.svg" style="float:right;max-width:24px;" /> </button> </h2> <!-- 将acceptedAnswer嵌套在Question的itemscope内部,明确归属关系 --> <div id="collapseOne" class="collapse" itemscope="true" itemprop="acceptedAnswer" itemtype="https://schema.org/Answer" aria-labelledby="headingOne" data-parent="#accordionExample"> <div itemprop="text" class="card-body"> Sebuah jenis produk asuransi yang secara khusus menjamin biaya kesehatan atau perawatan para anggota asuransi tersebut jika mereka jatuh sakit atau mengalami kecelakaan. Secara garis besar ada dua jenis perawatan yang ditawarkan perusahaan-perusahaan asuransi, yaitu Rawat Inap dan Rawat Jalan. </div> </div> </div> </div>
关键注意点
- 务必保留顶层的
FAQPage声明,让搜索引擎明确整个内容的类型是FAQ集合。 - 每个
Question的itemscope必须完整包裹对应的acceptedAnswer,避免属性归属混乱。 - 修复后可以用Rich Results Test工具验证结构是否符合规范。
内容的提问来源于stack exchange,提问作者jujol
相关产品推荐
相关产品推荐

