Уже все наверное знают, что расширенные сниппеты позволяют представить страницу вашего сайта в выдаче поисковых систем более информативно и заметно, что повышает количество кликов по ней, и в будущем положительно может сказываться на позициях. Упустим вики тексты о том какие бывают сниппеты и разметки и вообще что это и как, тема этого поста о том, как внедрить структурированные данные (микроразметку) для сайтов, созданных моем любимом движке - Друпал7.
Хочется еще сказать, что руководство предназначено для пользователей, которые хоть немного знакомы с работой и структурой сайтов на Друпал, если писать руководство полностью, с нуля, то получится мини книга.
Установка необходимых модулей
И так, для начала нам необходимо установить необходимые для работы модули
Для Drupal 7 самым популярным модулем микроразметки принято считать модуль schema.org, но он уже давненько не обновлялся и теперь бесполезный, так как не работает как нужно, именно поэтому мы и будем использовать модуль Schema.org metatag.
И так, устанавливаем модули, и теперь включаем. В модуле Schema.org metatag включаем те подмодули, которые нам нужны. Каждый подмодуль отвечает за отдельный вид контента. Например:
- Schema.org/Article - микроразметка для статей
- Schema.org/Product - для товаров
- Schema.org/Service - для сервисов и услуг
- Schema.org/Review - для различных обзоров и отзывов и.т.д.
В нашем случае необходимы снипеты для интернет магазина, соответсвено включаем Schema.org/Product
К сожалению, просто установкой модулей не обойтись так как стандарты поисковых систем к микроразметке меняются быстрее, чем обновляются модули. Поэтому нам придется кое-что допилить в коде.
Редактирование файла template.php
Этот шаг необходим для того, чтобы заставить правильно работать модуль Fivestar. Проблема в том, что далее, при настройке metatag нам необходимо будет подставлять нужные токены, но токены отвечающие по умолчанию за вывод звездочек рейтинга у меня тупо не работали (например [node:field-rating:rating_count] отвечающий за кол-во голосов, и [node:field-rating:average_rating] среднее число рейтинга), поэтому пишем свою функцию в файле включенной темы шаблона ( /sites/all/themes/yourtheme/template.php )
. В файл темы: template.php добавляем функцию:
function YOURTHEME_rating_token() {
$output = '';
$output['rating_count'] = '';
$output['rating_number'] = '';
if (arg(0) == 'node') {
$rating_count = db_query("
SELECT value
FROM {votingapi_cache}
WHERE entity_id = :id
AND function = :fu"
, array(':id' => arg(1), ':fu' => 'count'))->fetchField();
if (isset($rating_count)) {
$output['rating_count'] = $rating_count;
}
$rating_number = db_query("
SELECT value
FROM {votingapi_cache}
WHERE entity_id = :id
AND function = :fu"
, array(':id' => arg(1), ':fu' => 'average'))->fetchField();
if (isset($rating_count)) {
$output['rating_number'] = (round($rating_number, 0)) / 10;
}
}
return $output;
}
По умолчанию этот код для рейтингов с 10 звездочками.
Если Вы будете использовать 5 звездочек - замените в коде строчку:
$output['rating_number'] = (round($rating_number, 0)) / 10;
на
$output['rating_number'] = (round($rating_number, 0)) / 20;
Создаем кастом токены
Теперь нам нужно создать свои токены для будущего вывода этих самых звездочек. В меню администратора переходим в: Структура -> Custom Token -> Add Token (admin/structure/token-custom/add)
Создаем токен: Первый токен - отвечает за вывод количества проголосовавших. И так:
- Называем токен например: rating count
- Делаем описание, например: Кол-во проголосовавших
- В token type выбираем формат "Собственная"
- В содержимое в формате PHP code вставляем:
- Сохраняем и переходим к созданию второго токена
Второй токен будет твечать за вывод средней оценки в виде цифры. И так:
- Переходим для создания кастом токена (/admin/structure/token-custom/add)
- Называем токен например: rating number
- Делаем описание, например: Число рейтинга
- В token type выбираем формат "Собственная"
- В содержимое в формате PHP code вставляем:
- Сохраняем и переходим к настройке метатегов
Исправляем баг модуля Shema Metatag
Внимание! Как оказалось пока я готовил статью вышла новая версия модуля 7.x-1.1 в которой это баг уже исправлен! Так что качайте последнюю версию и этот шаг пропускайте. Но для общей инфы все таки оставлю описание ранее существовавшей проблемы.
Как я говорил выше, часто модули для Друпал просто не успевают обновлятся за темпами изменений в поисковых системах. Так и тут. Проблема в том, что вшитое в модуль Shema.org Metatag значение Rating для типа материалов Product не проходит валидацию микроразметки в Google. Нам его нужно заменить на
Редактируем файл sites/all/modules/schema_metatag/schema_product/schema_product.metatag.inc
кусок кода:
$info['tags']['schema_product.rating'] = array(
'class' => 'SchemaRatingBase',
'label' => t('rating'),
'description' => '',
'multiple' => TRUE,
'weight' => ++$weight,
) + $defaults;
Заменяем на:
$info['tags']['schema_product.aggregateRating'] = array(
'class' => 'SchemaRatingBase',
'label' => t('aggregateRating'),
'description' => '',
'multiple' => TRUE,
'weight' => ++$weight,
) + $defaults;
Настройка модуля Metatag
- Переходим в настройки метатегов admin/config/search/metatags и добавляем (если еще не добавлены) тип метатегов (admin/config/search/metatags/config/add) В нашем случае тип шаблона метатегов уже был ранее создан как: Содержимое: прибор
- Нажимаем редактировать нужный тип. При необходимости задаем шаблон метатегов для заданного типа материала и переходим на вкладку задачи микроразметки Shema.org Product ( в Вашем случае это может быть Schema.org Article или Schema.org Service например, все зависит от того, какой подмодуль вы включили на этапах выше, и какой тип материала вам необходимо разметить.
- Заполняем необходимые поля. Пример заполнения прикрепляю, надеюсь далее сами разберетесь что и как сделав поправки под свои потребности и настройки.
Обратите внимание, что в данные ratingValue и ratingCount мы вставляем ранее созданные нами Custom токены. Также, если у вас 5 звездочек в рейтинге на сайте, смените bestRating с 10, на 5
Настройка модуля Structured Data
Модуль необходим для расширенного представления вашего сайта, а не отдельной страницы. Позволяет выводить логотип, социальные ссылки и.т.д. Здесь особо настраивать нечего, думаю все понятно будет. Переходим в admin/config/structured-data заполняем необходимые поля.
Проверка результата
Перед завершением обязательно убедитесь что все настроили верно. Для этого переходим в сервис проверки структурированных данных от Google https://search.google.com/structured-data/testing-tool, и проверям любую страницу нашего сайта соответсвубщего типа материала, для которого были произведены настройки.
На выходе должны получить такое:
WellDone!
Это конечно не панацея, и для многих программистов будет легче прописать микроразметку прямо в .tpl файлах темы, но такой способ организации микроразметки на сайте Друпал 7 тоже рабочий и имееет место быть. Также, для дополнения микроданных хлебными крошками, а также улучшения структуры сайта, советую использовать модуль Path Breadcrumbs. Его настройка это отдельная статья, но в настройках сниппетов рекомендую ставить так:
- 186 просмотров