Инструмент тестирования 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>
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 прослушивается.
Из того, что я обнаружил, инструмент проверки структурированных данных Google не позволяет вам использовать почтовый адрес для "местоположения", несмотря на то, что это разрешено схемой. Здесь https://schema.org/location специально сказано, что "местоположение" может быть либо местом, либо почтовым адресом.
Учитывая, что у места есть атрибуты "адрес" и "имя", и GSDVT запрашивает их, несмотря на то, что местоположение имеет тип PostalAddress, я думаю, можно с уверенностью сказать, что это ошибка. Если это не так разрешено, тогда ошибка должна быть "местоположение не может иметь тип PostalAddress". Если вы действительно добавите "адрес" к типу почтового адреса, GSDVT также подаст жалобу на этот адрес.
Кроме того, имеет смысл иметь события, у которых нет названных мест событий.
Хотя в нем говорится о 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>