Я экспериментировал с микроданными и решил попробовать их в своем блоге. Оказывается, шаблон, который я использовал, уже добавил некоторую разметку. Это было не здорово, и я исправил все, что мог.
Чтобы попытать счастья, я добавил больше разметки в свой последний пост, но инструмент тестирования структурированных данных Google (SDTT) недоволен itemprop='image'
атрибутами, и я не уверен, почему.
Насколько я понимаю, игнорируя весь промежуточный код, я структурировал данные следующим образом:
<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 с приведенным выше примером кода, и он не в состоянии проверить.
Так что я явно что-то упускаю. Что я делаю неправильно?
Ответы:
schema.org/BlogPosting изображение позволяет ImageObject и URL, однако Google разрешает только ImageObject , поэтому погрешность. Предполагаемая разметка:
Другое несоответствие - schema.org/ImageObject рекомендует
contentUrl
, но Google рекомендуетurl
, поэтому мое использование выше.В ответ на код вашего комментария ваша структура по-прежнему неверна. Я возьму это построчно:
Незначительный момент, но если вы не переходите на XHTML,
itemscope='itemscope'
это неправильно. Используйтеitemscope
(как вы сделали позже).Ваш ImageObject является дочерним по отношению к свойству articleBody, но вы не связали его таким образом. Например, у вас есть articleBody без связанных свойств и не связанный объект ImageObject. Вы должны использовать
Кроме того,
/>
это неверно, даже если вы пытаетесь использовать XHTML, так как у этого элемента есть дочерние элементы и закрытие</div>
. Просто используйте,>
как я включил в приведенный выше фрагмент.Что делает sharedContent здесь? sharedContent ожидает CreativeWork при использовании в качестве свойства SocialMediaPosting - никогда не в качестве свойства ImageObject и никогда в img.
Ваш другой фрагмент кода, который размещает свойство sharedContent, как показано ниже, также неверен.
Хотя sharedContent теперь находится в нужном месте, он все равно должен быть CreativeWork. Ваши объекты ImageObject по-прежнему не связаны с BlogPosting, как показывает инструмент тестирования структурированных данных.
Ниже приведен правильный код.
источник
ImageObject
не удается сsharedContent
помощью дочернего элемента: pastebin.com/cSgVZNyE . УдалениеsharedContent
делает его счастливым: pastebin.com/rieWwSM6 . Оборачивание каждогоimage
в родительский объектsharedContent
( pastebin.com/AmpBDqJs ) подтверждает правильность, но это потому, что Google STDD просто игнорирует его? STDD вполне счастлив , еслиcontentURL
используется , а также : pastebin.com/23wBvx8F . Похоже, я сделал это правильно, а Google сделал это неправильно? Это должно быть первым. 😉 Я думаю, я могу успокоить их всех, добавив все соответствующие теги. Спасибо! KensharedContent
- я использовал это все неправильно. Я удалил это сейчас. Еще раз посмотрев на схему, я не вижу необходимости использовать ее вCreativeWork
. Просто проигнорируйте/>
, это было напечатано в спешке, и оригинальный код XHTML. Я просто смешал два в моем примере (отсюда две версииitemscope
). Окончательный код правильный, честный! KenУ меня была похожая проблема с Google Structured Data Tester, помечающей мои изображения как недействительные. Видимо, он не принимает изображения, где источником является локальный домен. Как только я развернул на промежуточном сервере, структурированная разметка прошла проверку.
источник