在“地方”类型上提供“PostalAddress”的“名称”的正确方法

时间:2018-04-02 08:55:52

标签: schema.org json-ld structured-data

我有一个关于一个名为“San Felipe”的村庄的页面,由于我希望它在搜索引擎中显示其邮政地址的更丰富的片段,我决定添加一些地址详细信息(包括其邮政编码)。我在schema.org文档中读到可以在Place上使用PostalAddress。我测试了为name添加PostalAddressStructured Data Linter中的搜索结果预览显示了页面链接下方name的值。

但是,当我还在addressCountryaddressLocalityaddressRegionpostalCode中添加了值时,name会从搜索结果预览中消失,并且自动替换为上面提到的地址属性。所以我很困惑,如果name属性是作为添加邮政地址的较短方式,或者它应该只包含主要项目的名称(在这种情况下,“圣费利佩”):

<script type='application/ld+json'>
{
    "@context": "http://schema.org/",
    "@type": "AdministrativeArea",
    "address": {
        "@type": "PostalAddress",
        "addressCountry": "country name",
        "addressLocality": "city name",
        "addressRegion": "region name",
        "postalCode": "2800",
        "name": "San Felipe, city name, region name, country name 2800"
    },
    "name": "San Felipe"
}
</script>

如下面的屏幕截图所示,搜索结果中忽略schema:name schema:address(“圣费利佩,圣托马斯,圣胡安,圣地亚哥”)。但是,当我未指定addressCountryaddressLocalityaddressRegionpostalCode时,会显示该信息。所以我不确定它的用途。

Structured Data Linter screenshot

1 个答案:

答案 0 :(得分:1)

Structured Data Linter只是举例说明了代码的样子。为此,该工具仅显示选定的属性。结构化数据锁定器是否在此代码段中显示某些内容永远不会影响您决定提供哪种结构化数据。

因此,如果您认为PostalAddress可以从name中受益,请提供它。

  

如果name属性旨在作为添加邮政地址的较短方式,或者它应仅包含主要项目的名称(在本例中为“San Felipe”),我感到很困惑

Schema.org没有定义name的{​​{1}}应该是什么。我认为有两种常见的情况:

  • 在典型的情况下,它是在寻址邮件时也会使用的名称。这不必与父项上指定的名称相同(如果有的话)。但即使它是相同的名称,为PostalAddress再次提供它仍然是有意义的,因为消费者可能不一定也考虑父项。

  • 如果无法使用特定属性(如PostalAddress等)(例如,因为CMS不会在单独的字段中输出这些属性),您可以提供{{{{{{ 1}}。

    (在这种情况下,您还可以考虑将addressCountry与字符串值一起使用,而不是使用name项值。)

如果不是某个组织或某个人的地址,并且您可以为您提供的每个地址部分提供所有必要的属性,我会省略address属性。