我有一个关于一个名为“San Felipe”的村庄的页面,由于我希望它在搜索引擎中显示其邮政地址的更丰富的片段,我决定添加一些地址详细信息(包括其邮政编码)。我在schema.org文档中读到可以在Place
上使用PostalAddress
。我测试了为name
添加PostalAddress
,Structured Data Linter中的搜索结果预览显示了页面链接下方name
的值。
但是,当我还在addressCountry
,addressLocality
,addressRegion
和postalCode
中添加了值时,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
(“圣费利佩,圣托马斯,圣胡安,圣地亚哥”)。但是,当我未指定addressCountry
,addressLocality
,addressRegion
和postalCode
时,会显示该信息。所以我不确定它的用途。
答案 0 :(得分:1)
Structured Data Linter只是举例说明了代码的样子。为此,该工具仅显示选定的属性。结构化数据锁定器是否在此代码段中显示某些内容永远不会影响您决定提供哪种结构化数据。
因此,如果您认为PostalAddress
可以从name
中受益,请提供它。
如果
name
属性旨在作为添加邮政地址的较短方式,或者它应仅包含主要项目的名称(在本例中为“San Felipe”),我感到很困惑
Schema.org没有定义name
的{{1}}应该是什么。我认为有两种常见的情况:
在典型的情况下,它是在寻址邮件时也会使用的名称。这不必与父项上指定的名称相同(如果有的话)。但即使它是相同的名称,为PostalAddress
再次提供它仍然是有意义的,因为消费者可能不一定也考虑父项。
如果无法使用特定属性(如PostalAddress
等)(例如,因为CMS不会在单独的字段中输出这些属性),您可以提供{{{{{{ 1}}。
(在这种情况下,您还可以考虑将addressCountry
与字符串值一起使用,而不是使用name
项值。)
如果不是某个组织或某个人的地址,并且您可以为您提供的每个地址部分提供所有必要的属性,我会省略address
属性。