Почему моя разметка itemprop="изображение" неверна?


Я экспериментировал с микроданными и решил попробовать это в своем блоге. Оказывается, шаблон, который я использовал, уже добавил некоторую разметку. Это было не очень здорово, и поэтому я сделал все, что мог.

Чтобы попытать счастья, я добавил больше разметки в свой последний пост, но инструмент тестирования структурированных данных Google (SDTT) недоволен атрибутами itemprop='image', и я не уверен, почему.

Structured Testing Tool errors

Страница результатов.

Это мой понимая, игнорируя весь промежуточный код, что я структурировал данные таким образом:

<div itemscope='itemscope' itemtype='http://schema.org/BlogPosting'>
  <div itemprop='articleBody'>
    <a href="1.png" itemprop="url"><img itemprop="image sharedContent" src="1.png" /></a>
    <a href="2.png" itemprop="url"><img itemprop="image sharedContent" src="2.png" /></a>
    <a href="3.png" itemprop="url"><img itemprop="image sharedContent" src="3.png" /></a>
  </div>
</div>

И мне это кажется правильным. BlogPosting может иметь свойства articleBody и image в соответствии с https://schema.org/BlogPosting , но в соответствии с SDTT:

Атрибут itemtype имеет недопустимое значение.

Действительно, я только что попробовал SDTT с приведенным выше примером кода, и он не проходит проверку.

Example code in the SDTT

Так что я очевидно, чего-то не хватает. Что я делаю не так?

Author: unor, 2016-02-20

2 answers

Schema.org/BlogPosting изображение разрешает ImageObject и URL, однако Google разрешает только ImageObject, отсюда и ошибка. Предполагаемая разметка:

<!-- my code -->
<div itemprop="image" itemscope itemtype="http://schema.org/ImageObject">
  <img src="image.jpg" itemprop="url">
</div>

               

Еще одно несоответствие schema.org/ImageObject рекомендует contentUrl, но Google рекомендует url, следовательно, мое использование выше.


В ответ на код вашего комментария ваша структура по-прежнему неверна. Я разберусь с этим по порядку строка:

<!-- your code -->
<div itemscope='itemscope' itemtype='http://schema.org/BlogPosting'>

Незначительный момент, но если вы не собираетесь использовать XHTML, itemscope='itemscope' неверно. Используйте itemscope (как вы сделали позже).

<!-- your code -->
  <div itemprop='articleBody'>
    <div itemscope itemtype="http://schema.org/ImageObject"/>

Ваш объект ImageObject является дочерним объектом свойства articleBody, но вы не связали его таким образом. Таким образом, у вас есть тело статьи без связанных свойств и несвязанный объект ImageObject. Вы должны использовать

<!-- my code -->
    <div itemprop="image" itemscope itemtype="http://schema.org/ImageObject">

Кроме того, /> неверно, даже если вы пытаетесь использовать XHTML, так как у этого элемента есть дочерние элементы и закрывающий </div>. Просто используйте >, как я включил в приведенный выше фрагмент.

<!-- your code -->
      <a href="1.png" itemprop="url"><img itemprop="image sharedContent" src="1.png" /></a>

Что здесь делает sharedContent? sharedcontent ожидает творческой работы при использовании в качестве свойства SocialMediaPosting - никогда в качестве свойства ImageObject и никогда в img.

Ваш другой фрагмент кода , который размещает свойство sharedContent, как показано ниже, также неверен.

<!-- your code -->
<div itemscope='itemscope' itemtype='http://schema.org/BlogPosting'>
  <div itemprop='articleBody'>
    <div itemprop='sharedContent'>
      <div itemscope itemtype="http://schema.org/ImageObject"/>
        …

Хотя sharedContent теперь находится в нужном месте, он все равно должен быть творческой работой. Ваши объекты изображений являются по-прежнему не связан с размещением в блоге, как показывает Инструмент тестирования структурированных данных.

                                          

Ниже приведен правильный код.

<!-- my code -->
<div itemscope itemtype="http://schema.org/BlogPosting">
  <div itemprop="articleBody">
    <div itemprop="image" itemscope itemtype="http://schema.org/ImageObject">
      <a href="1.png" itemprop="url"><img itemprop="image" src="1.png"></a>
    </div>
    <div itemprop="image" itemscope itemtype="http://schema.org/ImageObject">
      <a href="2.png" itemprop="url"><img itemprop="image" src="2.png"></a>
    </div>
    <div itemprop="image" itemscope itemtype="http://schema.org/ImageObject">
      <a href="3.png" itemprop="url"><img itemprop="image" src="3.png"></a>
    </div>
  </div>
</div>
 15
Author: grg, 2016-02-21 14:11:46

У меня была аналогичная проблема с тестером структурированных данных Google, помечающим мои изображения как недействительные. По-видимому, он не принимает изображения, источником которых является домен локального хоста. Как только я развернул на промежуточном сервере структурированную разметку, она прошла проверку.

 2
Author: Mike, 2020-01-27 15:24:20