Решено! - Звёзды рейтинга в Google - не отображаются. Ошибка в плагине голосования

  • 10 Ответов
  • 2272 Просмотров

0 Пользователей и 1 Гость просматривают эту тему.

*

ChaosHead

  • Профи
  • ********
  • 4667
  • 396
Не врубаю, что не так с микроразметкой рейтинга статей. Есть несколько сайтов на Joomla, где не могу добиться отображения звёзд рейтинга в Google.
К примеру страница. Практически чистая последняя Joomla, шаблон Protostar, встроенный рейтинг.
http://designexpo.info/inspiration/227-3d-risunki-penoj-na-kofe-ot-kazuki-yamamoto

Смотрю её в Google Rich Snippet test tool - ошибок нет, рейтинг в коде выводится:
Спойлер
[свернуть]

Через запрос site:designexpo.info в Google звёзды выводятся:
Спойлер
[свернуть]

Однако, если я ввожу любой запрос в Google, по которому ранжируется мой сайт, к примеру "3D рисунки пеной на кофе от Kazuki Yamamoto", то звёзды не отображаются:

Хотя у соседних сайтов они есть.

Не могу понять, что не так?
Пока думаю такие варианты:
1) Рейтинг, написанный словами скрыт на сайте и Google это не любит
2) Используются элементы <meta itemprop="bestRating" content="5">, а не <span>
3) Что-то другое нет так с микроразметкой Joomla, что?

У вас отображаются звёзды рейтинга для статей?
« Последнее редактирование: 20.11.2015, 20:04:02 от ChaosHead »

*

vmf

  • Захожу иногда
  • **
  • 17
  • 2
Возможно, в этой статье ещё не было проголосовавших (нет рейтинга статьи) или Google  ещё не переиндексировал статью после голосования (необходимо время).

*

ChaosHead

  • Профи
  • ********
  • 4667
  • 396
Нет, в итоге я разобрался, сейчас уже звёзды в выдаче:


Информации мало, поэтому пришлось проводить SEO-эксперименты.
Чтобы звёзды таки отобразились нужно в plugins\content\vote\vote.php

Заменить:
Код
			$html .= '<div class="content_rating" itemprop="aggregateRating" itemscope itemtype="http://schema.org/AggregateRating">';
$html .= '<p class="unseen element-invisible">'
. JText::sprintf('PLG_VOTE_USER_RATING', '<span itemprop="ratingValue">' . $rating . '</span>', '<span itemprop="bestRating">5</span>')
. '<meta itemprop="ratingCount" content="' . (int) $row->rating_count . '" />'
. '<meta itemprop="worstRating" content="0" />'
. '</p>';
$html .= $img;
$html .= '</div>';

на

Код
			$html .= '<div class="content_rating" itemprop="aggregateRating" itemscope itemtype="http://schema.org/AggregateRating">';
$html .= '<p class="unseen element-invisible">'
. JText::sprintf('PLG_VOTE_USER_RATING', '<span itemprop="ratingValue">' . $rating . '</span>', '<span itemprop="bestRating">5</span>')
. '<span itemprop="ratingCount" content="' . (int) $row->rating_count . '">' . (int) $row->rating_count . '</span>'
. '<span itemprop="worstRating" content="0">0</span>'
. '<span itemprop="name">' . $row->title . '</span>'
. '</p>';
$html .= $img;
$html .= '</div>';

С точки зрения Google все элементы должны присутствовать на сайте в явном виде, иначе звёзды не отобразятся. Теги meta заменяем на span.
И должно быть выведено имя <span itemprop="name"> того, за что идёт голосование.
Хотя прямо в справке Google об этом не сказано, но сказано, что нельзя скрывать элементы рейтинга иначе это принимается за накрутку. Решение найдено с помощью SEO-экспериментов.
« Последнее редактирование: 20.11.2015, 20:14:33 от ChaosHead »

*

valcoray

  • Осваиваюсь на форуме
  • ***
  • 25
  • 0
Ууххх... спасибище большое за код, кое что взял себе очень нужное, подправил и поставил, проверку на Google прошло, все отлично, еще бы это все как то перенести в папку с шаблоном и вообще было бы отлично, а так при обновлении движка надо быть осторожным но радует что удалось сделать на встроенном Рейтинге Joomla. Вот что в результате получилось у меня:

1 часть
Код
$html .= '<div class="row"><div class="col-xs-12 col-sm-3 col-md-3 col-lg-3 content-rating" itemprop="aggregateRating" itemscope itemtype="http://schema.org/WebPage">'
. '<meta itemprop="name" content="' . $row->title . '" />';
$html .= '<div itemprop="aggregateRating" itemscope itemtype="http://schema.org/AggregateRating" class="mark-rating">'
. JText::sprintf('PLG_VOTE_USER_RATING', '<span itemprop="ratingValue">' . $rating . '</span>', '<span itemprop="bestRating">5</span>', '<meta itemprop="ratingValue" content="' . $rating . '" />', '<meta itemprop="bestRating" content="5" />')

. '<meta itemprop="ratingCount" content="' . (int) $row->rating_count . '" />'
. '<meta itemprop="worstRating" content="1" />'
. '</div>';
$html .= $img;
$html .= '</div>';

2 часть
Код
// Generate voting form
$html .= '<form method="post" action="' . htmlspecialchars($uri->toString(), ENT_COMPAT, 'UTF-8'). '" class="form-inline">';
$html .= '<span class="col-xs-12 col-sm-4 col-md-4 col-lg-4 content-vote">';
$html .= '<label class="unseen element-invisible" for="content_vote_' . $row->id . '">' . JText::_('PLG_VOTE_LABEL'). '</label>';
$html .= JHtml::_('select.genericlist', $options, 'user_rating', null, 'value', 'text', '5', 'content_vote_' . $row->id);
$html .= ' <input class="btn btn-mini" type="submit" name="submit_vote" value="' . JText::_('PLG_VOTE_RATE'). '" />';
$html .= '<input type="hidden" name="task" value="article.vote" />';
$html .= '<input type="hidden" name="hitcount" value="0" />';
$html .= '<input type="hidden" name="url" value="' . htmlspecialchars($uri->toString(), ENT_COMPAT, 'UTF-8'). '" />';
$html .= JHtml::_('form.token');
$html .= '</span>';
$html .= '</form></div>';

P.S. Joomla! 3.6.2

*

Guran

  • Давно я тут
  • ****
  • 281
  • 22
  • Андрей Булатов
Не решено, звезды не появились, у вас по ссылке их нет.
Второй код не проверял, он шаблон protostar ломает.

*

ChaosHead

  • Профи
  • ********
  • 4667
  • 396
Это тестовый сайт, после обновления я не делал на нём эти изменения.

*

Guran

  • Давно я тут
  • ****
  • 281
  • 22
  • Андрей Булатов
Сложилось неприятное впечатление, Google фильтрует звезды.
С плагином ExtraVote 3.0 все шло нормально, но топовым страницам с высоким рейтингом Google категорически не давал звезд, хотя робот и посещал их неоднократно.
Поэкспериментировал с родным плагином, с кодом его. Вообще перестал и  ExtraVote 3.0 давать звезды.

*

ProtectYourSite

  • Живу я здесь
  • ******
  • 849
  • 48
Почитайте новости, Google вручную звезды уже стал расставлять)

*

Guran

  • Давно я тут
  • ****
  • 281
  • 22
  • Андрей Булатов
Кстати, в Joomla 3.7 микроразметка плагина осталась та же, c meta! Хотя сам плагин уже другой. Можно в панели управления поле с рейтингом ставить в начале или в конце материала.
Это можно и вручную сделать. Лучше бы аякс-технологию внедрили, а то раздражает ?hitcount=0 в конце урлов, создает дубли страниц.

*

ChaosHead

  • Профи
  • ********
  • 4667
  • 396
Новый роутер отложили уже в который раз до Joomla 3.8. Когда заработает, он по идее сделает правильные канонические ссылки, а пока только в robots.txt эти дубли закрывать.

*

Mеер

  • Захожу иногда
  • **
  • 16
  • 0
  • Меер
Добрый день.
Google на украинской версии сайта отображает звезды а русской не отображает. Может подскажет кто?