Инструмент тестирования Google сообщает об ошибке при Schema.org "местоположение"


Я тестирую микроданные+ Schema.org для события, но Инструмент тестирования Google говорит, что location отсутствует, хотя он был предоставлен.

Есть идеи, что я напутал?

<div itemscope itemtype="http://schema.org/SocialEvent">
<a itemprop="url" href="www.convention-name.org"><div itemprop="name"><strong>Bob's Convention</strong></div>
</a>
<div itemprop="description">blah blah blah blah blah</div>
<div><meta itemprop="startDate" content="2015-05-01:00.000">Starts: 2015-05-01:00.000</div>
<meta itemprop="endDate" content="2015-05-02:00.000">Ends: 2015-05-02:00.000
</div>
<div itemprop="location" itemscope itemtype="http://schema.org/PostalAddress">
<div itemprop="streetAddress">55 street</div>
<div><span itemprop="addressLocality">Nashville</span>, <span itemprop="addressRegion">TN</span></div><div itemprop="postalCode">37225</div>
<div itemprop="addressCountry">usa</div>
</div>
Author: unor, 2015-04-10

3 answers

Вам не хватает некоторых закрывающих тегов </div>. Если я правильно истолкую ваши намерения, это должно выглядеть так:

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

  <a itemprop="url" href="www.convention-name.org"><div itemprop="name"><strong>Bob's Convention</strong></div></a>
  <div itemprop="description">blah blah blah blah blah</div>
  <div><meta itemprop="startDate" content="2015-05-01:00.000">Starts: 2015-05-01:00.000</div>
  <div><meta itemprop="endDate" content="2015-05-02:00.000">Ends: 2015-05-02:00.000</div>

  <div itemprop="location" itemscope itemtype="http://schema.org/PostalAddress">
    <div itemprop="streetAddress">55 street</div>
    <div>
      <span itemprop="addressLocality">Nashville</span>,
      <span itemprop="addressRegion">TN</span>
    </div>
    <div itemprop="postalCode">37225</div>
    <div itemprop="addressCountry">usa</div>
  </div> <!-- /PostalAddress -->

</div> <!-- /SocialEvent -->

Теперь, проверяя эту разметку, инструмент тестирования Google сообщит о различных ошибках для PostalAddress:

address: отсутствует и требуется

name: отсутствует и требуется

Поле location может быть не пустым.

Добавление name к элементу PostalAddress исправляет две последние ошибки, поэтому у вас остается эта странная ошибка: "address: отсутствует и требуется".

Странно, потому что PostalAddress не может иметь address свойство, как я объяснил в ответе на аналогичный вопрос о переполнении стека. Мое предположение: Инструмент тестирования Google прослушивается.

 2
Author: unor, 2020-06-16 10:32:57

Из того, что я обнаружил, инструмент проверки структурированных данных Google не позволяет вам использовать почтовый адрес для "местоположения", несмотря на то, что это разрешено схемой. Здесь https://schema.org/location специально сказано, что "местоположение" может быть либо местом, либо почтовым адресом.

Учитывая, что у места есть атрибуты "адрес" и "имя", и GSDVT запрашивает их, несмотря на то, что местоположение имеет тип PostalAddress, я думаю, можно с уверенностью сказать, что это ошибка. Если это не так разрешено, тогда ошибка должна быть "местоположение не может иметь тип PostalAddress". Если вы действительно добавите "адрес" к типу почтового адреса, GSDVT также подаст жалобу на этот адрес.

Кроме того, имеет смысл иметь события, у которых нет названных мест событий.

 2
Author: Bojan, 2015-04-23 20:38:24

Хотя в нем говорится о schema.org это событие.местоположение может быть либо местом, либо почтовым адресом, в документации google говорится об обратном.

Событие.местоположение требуется и должно быть местом

Местоположение: Место, требуется

Вложенный schema.org/Place (или более конкретный подтип, такой как schema.org/EventVenue или schema.org/PerformingArtsTheater).

Событие.местоположение.адрес также требуется и должен быть почтовый адрес

Адрес: Почтовый адрес, требуется

Адрес места проведения. Вы можете либо указать весь адрес в виде одной строки, либо указать отдельные поля адреса во вложенном schema.org/PostalAddress .

Итак, исходя из вашего примера, правильный формат должен быть (который в настоящее время проверяется без какого-либо красного текста в инструменте тестирования Google):

<div itemscope itemtype="http://schema.org/SocialEvent">
    <a itemprop="url" href="www.convention-name.org">
        <div itemprop="name"><strong>Bob's Convention</strong></div>
    </a>
    <div itemprop="description">blah blah blah blah blah</div>
    <div>
        <meta itemprop="startDate" content="2015-05-01:00.000">
        Starts: 2015-05-01:00.000
    </div>
    <meta itemprop="endDate" content="2015-05-02:00.000">
    Ends: 2015-05-02:00.000
    
    <div itemprop="location" itemscope itemtype="http://schema.org/Place">
      <div itemprop="name">Unknown Venue</div>
      <div itemprop="address" itemscope itemtype="http://schema.org/PostalAddress">
          <div itemprop="streetAddress">55 street</div>
          <div><span itemprop="addressLocality">Nashville</span>, <span itemprop="addressRegion">TN</span></div>
          <div itemprop="postalCode">37225</div>
          <div itemprop="addressCountry">usa</div>
      </div>
  </div>
</div>
 2
Author: Beebee, 2020-06-16 10:32:57