Уже долгое время не утихают споры о том как «правильно» разметить логотип. О некоторых интересных доводах можно, например, прочесть в статье «Ваш логотип — всё еще изображение … как и мой! ». Независимо от того какими именно тегами размечен ваш логотип, логотип компании или продукта, этой разметке всегда можно добавить семантики.
В словаре Schema.org у объекта Organization есть поле logo
, которое указывает на картинку с логотипом.
<div itemscope itemtype="http://schema.org/Organization">
<a href="http://www.apple.com/" itemprop="url">
<span itemprop="name">Apple</span>
<img itemprop="logo" alt="Apple Logo"
src="http://www.apple.com/apple-logo.png">
</a>
</div>
У Product, Person и Organization есть другое поле — brand
. Оно, в свою очередь, может ссылаться на Organization или Brand, в котором уже есть поле logo
.
<!-- разметка продукта -->
<div itemscope itemtype="http://schema.org/Product" itemref="_brandApple">
<a href="http://www.apple.com/pr/products/iphone/iphone.html" itemprop="url">
<span itemprop="name">iPhone</span>
<img itemprop="image" alt="iPhone 5 Black"
src="http://images.apple.com/products/iPhone_5_Black.jpg">
</a>
</div>
<!-- разметка логотипа -->
<div itemscope itemtype="http://schema.org/Brand" itemprop="brand" id="_brandApple">
<a href="http://www.apple.com/" itemprop="url">
<span itemprop="name">Apple</span>
<img itemprop="logo" alt="Apple Logo"
src="http://www.apple.com/apple-logo.png">
</a>
</div>
Итак, чтобы добавить семантики разметке логотипа, опишите его схемой Brand и ссылайтесь на него, там, где это потребуется. Безусловно, логотип может быть так же и самодостаточным объектом на странице.
Коментарии к заметке
здесь, кажется, itemprop="brand" не нужен — с этим свойством не распознает валидатор разметку…
А что с ним не так?
Вообще, разметка вполне корректная. Валидатор Гугла и Яндекса её правильно понимают:
Атрибут
itemref="_brandApple"
говорит парсеру: «Часть разметки для этого продукта находится ещё в блоке с id="_brandApple"». Парсер находит там атрибутitemprop="brand"
и подключает объект Brand к продукту. Это работает аналогично тому, если бы Brand находился бы внутри продукта. Тогда при наличии нескольких продуктов на одной странице, было бы очень много повторяющегося кода. А так мы можно ссылаться на один и тот же кусок разметки.Чуть подробнее о работе
itemref
я писал в одной из прошлых заметок о microdata .Если убрать
itemprop="brand"
, то связь между объектами потеряется . Именно так и нужно поступить, если хочется сделать объект Brand самодостаточным. Только в этом мало пользы, как мне кажется. Смысл в логотипе появляется, когда он относится к продукту, организации или человеку.Не верно изначально понял пример, спасибо за пояснения, буду знать про itemref =)
Такая разметка логотипа должна быть только на одной странице? Ничего страшного если такая разметка будет повторяться вместе с лого и на других страницах?
Да, разумеется микроразметку можно повторять на разных страницах. Если у вас на каждой странице есть информация об организации и её логотип, то конечно стоит разметить эти данные.