如何隐藏地理标签以显示在卡片中但仍可用于 googlebot

Posted

技术标签:

【中文标题】如何隐藏地理标签以显示在卡片中但仍可用于 googlebot【英文标题】:How to hide Geo tag to appear in vcard but still making available it fot google bot 【发布时间】:2014-02-28 04:28:29 【问题描述】:
<div class="vcard" itemscope itemtype="http://schema.org/LocalBusiness">
     <strong class="fn org" itemprop="name">Commercial Office Bangalore</strong><br/>
              <span class="adr" itemprop="address" itemscope itemtype="httep:schema.org/PostalAddress">
                <span class="street-address"itemprop="streetAddress">330, Raheja Arcade, 1/1 Koramangala Industrial Layout</span><br/>  
                   <span class="locality"itemprop="addressLocality">Bangalore</span>
                     <span itemprop="postalCode"class="postal-code">560095</span><br/>
                      <span class="region"itemprop="addressRegion">Karnataka</span><br/>
                     <span class="country-name">India</span><br/>
                  <span class="tel id"="phone"itemprop="telephone">+91-80-41101360</span><br/>
                <span class="geo"itemprop="geo"itemscope itemtype="http://schema.org/GeoCordinates">
              <abbr class="latitude" property="latitude">12.936504</abbr>
            <abbr class="longitude" property="longitude">77.6321344</abbr>
         <meta itemprop="latitude" content="12.936504" />
       <meta itemprop="longitude" content="77.6321344" />
   </span>
 </span>

我想让 lat 和 logitude 对用户不可见,而对 Google bot 可见。我该怎么办?

【问题讨论】:

将您的纬度和经度字段的颜色设置为页面背景颜色,也许? 【参考方案1】:

如果您指的是微数据(使用 Schema.org):

只需删除 abbr 元素。您已经在meta 元素(其中can be used in the body)中提供了这些数据,这是提供应该/不能在页面上显示的数据的正确方法:

<meta itemprop="latitude" content="12.936504" />
<meta itemprop="longitude" content="77.6321344" />

(请注意,您使用的是 property 属性,但它们在 Microdata 中是不允许的,只能在 RDFa 中使用。)

(还要注意你使用http://schema.org/GeoCordinates但它应该是http://schema.org/GeoCoordinates。而且httep:schema.org/PostalAddress也是错误的。)

如果您指的是微格式(使用 hCard):

您可以重复使用与 Microdata 一起使用的 meta 元素:

<meta class="latitude" itemprop="latitude" content="12.936504" />
<meta class="longitude" itemprop="longitude" content="77.6321344" />

但我不确定是否所有微格式解析器都支持这一点。

【讨论】:

@albert: 这个 html 不是无效的。 确实是无效的。他的意思是 hcard .geo 类。仍然无效【参考方案2】:

带有 lat 和 lon 的 abbr 元素可以设置为 display:none,这完全符合您的要求,对人类隐藏内容,同时仍将其提供给机器人:

abbrdisplay:none  
/** or **/
.latitude,
.longitudedisplay:none  

虽然我无法诚实地看到在您的示例中包装它们的内容。 Ff 带有类 .geospan 是父元素,您可以改为使用 display:none

【讨论】:

以上是关于如何隐藏地理标签以显示在卡片中但仍可用于 googlebot的主要内容,如果未能解决你的问题,请参考以下文章

Android Studio - 仅横向但仍可旋转

MFC:CListCtrl.EnableWindow(FALSE),但仍可滚动? [复制]

我们如何以xamarin形式隐藏详细信息页面上的标签?

如何在相机视图上添加图层以根据设备的位置显示带有地理位置数据的标签,例如在 ZipRealty Real Estate 应用程序中

隐藏 UINavigationBar 但仍显示状态栏

vuejs 引导卡片组件动画