特定城市商品及服务价格表应使用哪种schema.org类型?
Schema.org标记城市产品/服务价格的最佳实践
针对你网站的需求,我来给你梳理一套清晰合规的Schema.org标记方案:
1. 类型选择:优先用City而非通用的Thing
完全没必要用过于泛化的Thing类型——你的页面核心是特定城市(比如巴黎),所以直接用schema.org/City作为顶层类型是最准确的,搜索引擎能立刻识别页面和城市的关联,后续再通过City的属性来挂载各类产品/服务的价格信息,逻辑更清晰。
2. 不要直接在City中嵌套Product,用属性关联更规范
Schema.org的设计里,City类型并没有直接嵌套Product的字段,正确的做法是通过City的offers属性,把产品/服务的报价信息关联起来:
- 每个报价用
Offer类型表示,Offer里的itemOffered字段指向对应的Product(实物类,比如冰淇淋)或Service(服务类,比如出租车); - 如果是同一类产品的多种报价(比如埃菲尔铁塔的成人票、儿童票),可以用
AggregateOffer来打包这些子Offer,让结构更紧凑。
3. 表格多行数据的组合技巧
针对你表格里的不同条目,分两种情况处理:
情况1:同一产品的多档位价格(比如埃菲尔铁塔门票)
用AggregateOffer把多个子Offer聚合在一起,既能体现这是同一类产品的不同报价,也能让数据结构更规整。
情况2:不同的产品/服务(比如冰淇淋、出租车)
给每个条目单独创建Offer对象,分别关联对应的Product或Service,然后把所有Offer/AggregateOffer放到City的offers数组里。
完整示例(JSON-LD格式,搜索引擎推荐)
{ "@context": "https://schema.org", "@type": "City", "name": "Paris", "description": "巴黎各类旅游产品与服务的价格指南", "offers": [ // 聚合同一产品的多档位报价 { "@type": "AggregateOffer", "name": "埃菲尔铁塔门票", "priceCurrency": "EUR", "offerCount": 2, "offers": [ { "@type": "Offer", "itemOffered": { "@type": "Product", "name": "埃菲尔铁塔成人票" }, "price": "10", "priceCurrency": "EUR" }, { "@type": "Offer", "itemOffered": { "@type": "Product", "name": "埃菲尔铁塔儿童票" }, "price": "5", "priceCurrency": "EUR" } ] }, // 单个实物产品报价 { "@type": "Offer", "itemOffered": { "@type": "Product", "name": "冰淇淋" }, "price": "2", "priceCurrency": "EUR" }, // 单个服务类报价 { "@type": "Offer", "itemOffered": { "@type": "Service", "name": "机场至市区出租车服务" }, "price": "14", "priceCurrency": "EUR" } ] }
额外小贴士
- 尽量用具体的类型:实物用
Product,服务用Service,比统一用Product更精准; - 务必指定
priceCurrency,避免搜索引擎误解价格单位; - 如果有额外信息(比如门票的有效期、出租车的服务范围),可以给对应的
Product/Service添加更多属性,让数据更丰富。
内容的提问来源于stack exchange,提问作者djurgarden
相关产品推荐
相关产品推荐

