能否用多个JSON-LD Schema.org标签表示同一页面对象?
如何关联独立JSON-LD脚本中的WebPage与FAQPage标签
可以通过**@id**属性实现两个独立JSON-LD脚本的关联,让解析器识别它们描述的是同一个页面实体,具体实现方式如下:
核心原理
利用Schema.org的实体标识机制:为两个脚本中的页面实体指定完全相同的**@id**值,解析器会自动合并这两个脚本的属性,同时FAQPage作为WebPage的子类,会继承WebPage的所有属性。
代码示例
页脚生成的WebPage标签
<script type="application/ld+json"> { "@context": "https://schema.org", "@type": "WebPage", "@id": "https://your-domain.com/faq#page-entity", "name": "网站常见问题", "url": "https://your-domain.com/faq" } </script>
FAQ组件生成的FAQPage标签
<script type="application/ld+json"> { "@context": "https://schema.org", "@type": "FAQPage", "@id": "https://your-domain.com/faq#page-entity", "mainEntity": [ { "@type": "Question", "name": "如何重置密码?", "acceptedAnswer": { "@type": "Answer", "text": "登录页面点击「忘记密码」,按提示输入注册邮箱即可获取重置链接。" } }, { "@type": "Question", "name": "订单多久能发货?", "acceptedAnswer": { "@type": "Answer", "text": "工作日下单后48小时内发货,周末及节假日顺延至工作日处理。" } } ] } </script>
关键注意事项
- @id必须全局唯一:建议使用页面完整URL加上唯一片段标识符(如示例中的
#page-entity),避免与网站内其他实体冲突。 - 保持@context一致:两个脚本都要指定
"@context": "https://schema.org",确保解析器能正确识别Schema类型。 - 属性自动合并:解析器会将两个脚本中的属性合并,FAQPage的类型会覆盖WebPage的类型(因为FAQPage是更具体的子类),同时保留所有WebPage的属性。
内容的提问来源于stack exchange,提问作者ChristopherBass
相关产品推荐
相关产品推荐

