如何正确格式化这些丰富的代码段?

时间:2012-02-08 14:47:50

标签: html seo rich-snippets

所以,我在下面的代码输入Google's Rich Snippet Testing Tool时工作正常。问题是我不需要将Venue Name链接到任何网址。但是,当我取出a标记并将该行简化为<span itemprop="name">Venue Name</span>时,测试工具会告诉我该页面不包含任何丰富的代码段标记。此外,它发出了这样的警告:

Warning: Event urls are pointing to a different domain than the base url.

有没有办法不将场地的名称与任何东西联系起来?

基本上,我只想让结果看起来像这样(只有'买票'部分链接):

2月2日 - 亚利桑那州凤凰城 - 新月宴会厅 - Buy tickets

我上传了我正在测试的html文件并输入了测试工具here

<div itemscope itemtype="http://schema.org/MusicGroup">

<h1 itemprop="name">Name</h1>

<div itemprop="events" itemscope itemtype="http://schema.org/Event">
  <meta itemprop="startDate" content="2012-02-02">Date &mdash; 
  <span itemprop="location">City, State</span> - 
  <a href="/tour" itemprop="url">
    <span itemprop="name">Venue Name</span>
  </a> - 
  <a href="http://ticketlink.com" itemprop="offers">Buy tickets</a>
</div>

</div>

2/16 - 更新代码

<div itemscope itemtype="http://schema.org/MusicEvent">

<h1 itemprop="name">Name</h1>

<div itemprop="events" itemscope itemtype="http://schema.org/Event">
  <meta itemprop="startDate" content="2012-02-02">Date &mdash; 
  <span itemprop="location" itemscope itemtype="http://schema.org/Place">
    <span itemprop="address" itemscope itemtype="http://schema.org/PostalAddress">
      <span itemprop="addressLocality">City</span>,
      <span itemprop="addressRegion">State</span>
    </span>- 
    <span itemprop="name">Venue Name</span> - 
  <div itemprop="offers" itemscope itemtype="http://schema.org/Offer">
    <a href="http://ticketlink.com" itemprop="url">Buy tickets</a>
  </div>
  </span>
</div>

</div>

2/17 - 更新代码

<div itemscope itemtype="http://schema.org/MusicGroup">
    <h1 itemprop="name">Name</h1>

    <div itemprop="events" itemscope itemtype="http://schema.org/MusicEvent">
      <meta itemprop="startDate" content="2012-02-02">Date &mdash; 
      <span itemprop="location" itemscope itemtype="http://schema.org/Place">
        <span itemprop="address" itemscope itemtype="http://schema.org/PostalAddress">
          <span itemprop="addressLocality">City</span>,
          <span itemprop="addressRegion">State</span>
        </span>- 
        <span itemprop="name">Venue Name</span> - 
        <div itemprop="offers" itemscope itemtype="http://schema.org/Offer">
          <a href="http://ticketlink.com" itemprop="url">Buy tickets</a>
        </div>
      </span>
    </div>
</div>

2/17 - 新的更新代码

<div itemscope itemtype="http://schema.org/MusicGroup">
  <h1 itemprop="name">Name</h1>

  <div itemprop="events" itemscope itemtype="http://schema.org/MusicEvent">
    <meta itemprop="startDate" content="2012-02-02">Date &mdash; 
    <span itemprop="location" itemscope itemtype="http://schema.org/Place">
      <span itemprop="address" itemscope itemtype="http://schema.org/PostalAddress">
        <span itemprop="addressLocality">City</span>,
        <span itemprop="addressRegion">State</span>
      </span>- 
      <span itemprop="name">Venue Name</span> - 
    </span>
    <div itemprop="offers">
      <a href="http://ticketlink.com" itemprop="url">Buy tickets</a>
    </div>
  </div>
</div>

2 个答案:

答案 0 :(得分:5)

我在这里注意到一些事情。

  1. 除非我误解,这是一个音乐事件,所以你应该使用更具体的itemtype =“http://schema.org/MusicEvent”。

  2. “location”itemprop也需要是http://schema.org/Placehttp://schema.org/PostalAddress的商品类型。这也将解决你的名字itemprop问题。例如:

    <span itemprop="location" itemscope itemtype="http://schema.org/Place>
      <span itemprop="address" itemscope itemtype="http://schema.org/PostalAddress>
        <span itemprop="addressLocality">City</span>,
        <span itemprop="addressRegion">State</span>
      </span>
      <span itemprop="name">Venue Name</span>
    </span>
    

    请参阅我的下一点,了解为什么我遗漏了网址itemprop。

  3. 商品属性是另一种商品类型,所以你需要这样的东西:

    <div itemprop="offers" itemscope itemtype="http://schema.org/Offer>
      <a href="http://ticketlink.com" itemprop="url">Presale tickets</a>
    </div>
    

    但是,我不完全确定你可以在url itemprop中找到另一个域的链接。这是没有记录的,但我还没有看到一个例子。您可能需要省略报价itemprop并让Google自己从ticketlink中提取票证信息。

  4. 请参阅my answer您的其他问题,了解您尝试重现的这些丰富网页摘要如何实际填充在搜索结果中。

  5. 更新:以下是传递测试工具的最终代码段

    <div itemscope itemtype="http://schema.org/MusicGroup">
      <h1 itemprop="name">Name</h1>
    
      <div itemprop="events" itemscope itemtype="http://schema.org/MusicEvent">
        <meta itemprop="startDate" content="2012-02-02">Date &mdash; 
        <span itemprop="name">Event Name</span>        
        <span itemprop="location" itemscope itemtype="http://schema.org/Place">
          <span itemprop="address" itemscope itemtype="http://schema.org/PostalAddress">
            <span itemprop="addressLocality">City</span>,
            <span itemprop="addressRegion">State</span>
          </span>- 
          <span itemprop="name">Venue Name</span> - 
        </span>
        <a href="http://ticketlink.com" itemprop="offers">Buy tickets</a>
      </div>
    </div>
    

答案 1 :(得分:1)

我和你有同样的问题。格式化对我来说没问题;然而,似乎谷歌以某种方式“标记”事件列表,其中URL与托管页面的域不同。我刚刚在我管理的网站上发现了这个问题。

我已与Google联系,了解问题所在。在一个真实的人回答我的查询的极不可能的情况下,我将在这里更新我的答案并提供更多信息。