Суровая семантическая микроразметка, как она есть

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

Не буду растекаться мысью по древу на тему зачем, кому и почему это нужно и важно, по ссылкам в конце статьи прочитаете сами. Приведу просто один конкретный пример кода, который пришлось написать и который можете попробовать использовать под свои нужды. Всего-то дел, одна строчка текста в подвале.

Объект воздействия - заглавная страница сайта. В подвале стоит примерно такой копирайт:

ООО «Подшипник-Сервис» © 2012.

Добавим в него адрес, телефон и ссылку на сайт:

ООО «Подшипник-Сервис» © 2012. г. Владивосток, ул. Дальзаводская, 4, каб. 718 , тел.: +7 (423) 246-49-36.

А теперь попробуем микроразметить код так, чтобы и валидаторы ошибок не выдали и нужная информация в нужном виде передавалась и люди это читать могли. Как оказалось это не только на ёлку влезть, но и рыбку съесть и дополнительно русалку уестествить.

Сперва лезем на ёлку и пишем код по стандарту Schema.org:

<!-- microdata -->
<div itemscope itemtype="http://schema.org/Organization">
  <a href="http://podshipnik-servis.ru">ООО «<span itemprop="name">Подшипник-Сервис</span>»</a> © 2012.
  <meta itemprop="url" content="http://podshipnik-servis.ru">
  <meta itemprop="logo" content="http://podshipnik-servis.ru/sites/default/files/logo_ps.png">
  <meta itemprop="description" content="Оптовая, мелкооптовая и розничная продажа подшипников для различных отраслей промышленности.">
  <span itemprop="address" itemscope itemtype="http://schema.org/PostalAddress">
    <meta itemprop="addressCountry" content="Россия">
    <meta itemprop="addressRegion" content="Приморский край">
    <span itemprop="addressLocality">г. Владивосток</span>,
    <span itemprop="streetAddress">ул. Дальзаводская, 4</span>,
    <span itemprop="postOfficeBoxNumber">каб. 718</span>,
  </span>
  тел.: <span itemprop="telephone">+7 (423) 246-49-36</span>.
  <span  itemprop="location" itemscope itemtype="http://schema.org/Place">
    <meta itemprop="name" content="Подшипник-Сервис">
    <meta itemprop="telephone" content="+7 (423) 246-49-36">
    <span itemprop="address" itemscope itemtype="http://schema.org/PostalAddress">
      <meta itemprop="addressCountry" content="Россия">
      <meta itemprop="addressRegion" content="Приморский край">
      <meta itemprop="addressLocality" content="г. Владивосток">
      <meta itemprop="streetAddress" content="ул. Дальзаводская, 4">
      <meta itemprop="postOfficeBoxNumber" content="каб. 718">
    </span>
    <span itemprop="geo" itemscope itemtype="http://schema.org/GeoCoordinates">
      <meta itemprop="latitude" content="43.111547">
      <meta itemprop="longitude" content="131.914471">
    </span>
  </span>
</div>
<!-- /microdata -->

Обратите внимание, что часть обязательной информации пришлось скрыть. Но теперь добавлены логотип, описание, страна и регион. Для географических координат (да-да, точка на карте так делается) пришлось часть информации продублировать, иначе выдаются ошибки парсинга.

На этот отвал башки валидатор Яндекса выдаёт такую картинку:

organization
  itemType = http://schema.org/Organization
  name = Подшипник-Сервис
  url = http://podshipnik-servis.ru
  logo = http://podshipnik-servis.ru/sites/default/files/logo_ps.png
  description = Оптовая, мелкооптовая и розничная продажа подшипников для различных отраслей промышленности.
  address
    postaladdress
      itemType = http://schema.org/PostalAddress
      addresscountry = Россия
      addressregion = Приморский край
      addresslocality = г. Владивосток
      streetaddress = ул. Дальзаводская, 4
      postofficeboxnumber = каб. 718
  telephone = +7 (423) 246-49-36
  location
    place
      itemType = http://schema.org/Place
      name = Подшипник-Сервис
      telephone = +7 (423) 246-49-36
      address
        postaladdress
          itemType = http://schema.org/PostalAddress
          addresscountry = Россия
          addressregion = Приморский край
          addresslocality = г. Владивосток
          streetaddress = ул. Дальзаводская, 4
          postofficeboxnumber = каб. 718
      geo
        geocoordinates
          itemType = http://schema.org/GeoCoordinates
          latitude = 43.111547
          longitude = 131.914471

Валидатор от Google согласен с конкурентом:

Organization
  name: Подшипник-Сервис
  url:  http://podshipnik-servis.ru
  logo: http://podshipnik-servis.ru/sites/default/files/logo_ps.png
  description:  Оптовая, мелкооптовая и розничная продажа подшипников для различных отраслей промышленности.
  telephone:    +7 (423) 246-49-36
  address [PostalAddress]:
    addressRegion:      Приморский край
    addressLocality:    г. Владивосток
    streetAddress:      ул. Дальзаводская, 4
    postOfficeBoxNumber:        каб. 718
    addressCountry [Country]:
      name:     Россия
  location [Place]:
    name:       Подшипник-Сервис
    telephone:  +7 (423) 246-49-36
    address [PostalAddress]:
      addressRegion:    Приморский край
      addressLocality:  г. Владивосток
      streetAddress:    ул. Дальзаводская, 4
      postOfficeBoxNumber:      каб. 718
      addressCountry [Country]:
        name:   Россия
    geo [GeoCoordinates]:
      latitude: 43.111547
      longitude:        131.914471

А теперь попробуем съесть рыбку и добавляем сюда классы по стандарту hCard, который поддерживает Яндекс:

<!-- microdata -->
<div class="vcard" itemscope itemtype="http://schema.org/Organization">
  <a class="url" href="http://podshipnik-servis.ru">ООО «<span class="fn org" itemprop="name">Подшипник-Сервис</span>»</a> © 2012.
  <meta itemprop="url" content="http://podshipnik-servis.ru">
  <span class="logo"><span class="value-title" title="http://podshipnik-servis.ru/sites/default/files/logo_ps.png"> </span></span>
  <meta itemprop="logo" content="http://podshipnik-servis.ru/sites/default/files/logo_ps.png">
  <meta itemprop="description" content="Оптовая, мелкооптовая и розничная продажа подшипников для различных отраслей промышленности.">
  <span class="adr" itemprop="address" itemscope itemtype="http://schema.org/PostalAddress">
    <span class="country-name"><span class="value-title" title="Россия"> </span></span>
    <meta itemprop="addressCountry" content="Россия">
    <span class="region"><span class="value-title" title="Приморский край"> </span></span>
    <meta itemprop="addressRegion" content="Приморский край">
    <span class="locality" itemprop="addressLocality">г. Владивосток</span>,
    <span class="street-address" itemprop="streetAddress">ул. Дальзаводская, 4</span>,
    <span class="extended-address" itemprop="postOfficeBoxNumber">каб. 718</span>,
  </span>
  тел.: <span class="tel" itemprop="telephone">+7 (423) 246-49-36</span>.
  <span  itemprop="location" itemscope itemtype="http://schema.org/Place">
    <meta itemprop="name" content="Подшипник-Сервис">
    <meta itemprop="telephone" content="+7 (423) 246-49-36">
    <span itemprop="address" itemscope itemtype="http://schema.org/PostalAddress">
      <meta itemprop="addressCountry" content="Россия">
      <meta itemprop="addressRegion" content="Приморский край">
      <meta itemprop="addressLocality" content="г. Владивосток">
      <meta itemprop="streetAddress" content="ул. Дальзаводская, 4">
      <meta itemprop="postOfficeBoxNumber" content="каб. 718">
    </span>
    <span class="geo" itemprop="geo" itemscope itemtype="http://schema.org/GeoCoordinates">
      <span class="latitude"><span class="value-title" title="43.111547"> </span></span>
      <span class="longitude"><span class="value-title" title="131.914471"> </span></span>
      <meta itemprop="latitude" content="43.111547">
      <meta itemprop="longitude" content="131.914471">
    </span>
  </span>
</div>
<!-- /microdata -->

В валидаторе от Яндекс появилась еще одна карточка организации:

vcard
  fn = Подшипник-Сервис
  adr
    country-name = Россия
    region = Приморский край
    locality = г. Владивосток
    street-address = ул. Дальзаводская, 4
    extended-address = каб. 718
  geo
    latitude = 43.111547
    longitude = 131.914471
  logo = http://podshipnik-servis.ru/sites/default/files/logo_ps.png
  org = Подшипник-Сервис
  tel = +7 (423) 246-49-36
  url = http://podshipnik-servis.ru

Валидатор от Google тоже парсит её корректно:

hcard
  fn:   Подшипник-Сервис
  url:  http://podshipnik-servis.ru/
  logo: http://podshipnik-servis.ru/sites/default/files/logo_ps.png
  tel [tel]:
    value:      +7 (423) 246-49-36
  geo [geo]:
    latitude:   43.111547
    longitude:  131.914471
  org [org]:
    organization-name:  Подшипник-Сервис
  adr [adr]:
    region:     Приморский край
    country-name:       Россия
    extended-address:   каб. 718
    street-address:     ул. Дальзаводская, 4
    locality:   г. Владивосток

А теперь скрестив пальцы ждем две недели, пока Платон Щукин будет проверять. А у компании, где я работаю есть еще 11 филиалов, которые надо тоже запустить на эту орбиту, связав их с основной записью и аналогично разметить. Придется скрещивать стандарты с друпаловскими Views, CCK и прочей темизацией. Русалка на ёлке пока призывно машет хвостом, но пока не даётся. :)

Ссылки:
Как устроен мир семантической микроразметки
What is Schema.org?
ruschema.org - проект перевода schema.org
Какие данные можно передать в Яндекс
Микроформаты
Введение в schema.org
Schema Creator
Яндекс. Валидатор микроразметки
Google. Structured Data Testing Tool

Добавить комментарий

Ограниченный HTML

  • Допустимые HTML-теги: <a href hreflang> <em> <strong> <cite> <blockquote cite> <code> <ul type> <ol start type> <li> <dl> <dt> <dd> <h2 id> <h3 id> <h4 id> <h5 id> <h6 id>
  • Строки и абзацы переносятся автоматически.
  • Адреса веб-страниц и email-адреса преобразовываются в ссылки автоматически.
CAPTCHA
А не робот ли вы случайно?
10 + 0 =
Решите эту простую математическую задачу и введите результат. Например, для 1+3, введите 4.