Микроразметка рейтинга новостей в DLE для Google по версии schema.org

Микроразметка рейтинга новостей в DLE Привет, друзья. Сегодня решил спалить очередную тему по модификации нашего любимого движка DLE – будем делать микроразметку рейтинга новостей для расширенного сниппета Google Rich Snippets. Как вы помните, в прошлый раз мы делали микроразметку хлебных крошек, если еще не читали, сделайте это сейчас.

В отличие от прошлого поста, где вероятность срабатывания наших доработок была равна 100%, то в этот раз наши доработки сработают с вероятностью «повезет — не повезет». Доигрались мы с вами, стали злоупотреблять подобной микроразметкой, и Google отрубил для большинства сайтов расширенные сниппеты. Тем не менее, мизерная вероятность включения для вашего сайта подобной красоты все же существует. Так что грех не попытаться!

Смотрите, вот нашел пример у Гугла для своего же блога:

Пример рейтинга в сниппете Google для блога alaev.info

* — мой блог работает на WordPress, а разметка фейковая, я привожу его тут просто в качестве примера работы разметки.

Эту разметку я внедрял фиг знает как давно и вообще про нее позабыл, но она иногда встречается, как видите. Как и по каким алгоритмам Google выбирает, где показать звездочки, я не знаю, т.к. размечены все посты, а красивый сниппет показывается всего для нескольких постов и они еще постоянно меняются.

Кстати, прошу обратить внимание еще на тот факт, что у меня в сниппете имеются красивые хлебные крошки, но я их никак не размечал, Google их сам определил и встроил в сниппет для всего моего сайта. И что еще интереснее, я видел несколько примеров сайтов, где не были размечены рейтинги-звездочки, но Гугл все равно показывал их в сниппете. Зная все это, становится понятно, что особенно-то манипулировать этими вещами не получится, поисковик все равно сделает по-своему.

Не смотря ни на что мы будем пытаться, кому-то да повезет.

Модификация рейтинга новостей в DLE под микроразметку

Внимание!!! Несколько условий, невыполнение которых приводит к различным проблемам и ошибкам:
— Данные инструкции применимы для DLE версий 9.6 и 9.7. (Для более ранних версий есть пара решений в комментариях, но я за них не ручаюсь).
— Обязательная настройка движка! Настройка групп пользователей -> Гости -> Вкладка «Новости» -> Разрешить выставление рейтинга новостей: Да.
— Вывод рейтинга со страниц категорий рекомендуется убрать, т.е. удалить упоминания рейтинга из шаблона shortstory.tpl. Или можно проделать следующее — #comment-13374 — но я бы не рекомендовал.

Итак, нам придется допилить несколько файлов движка, чтобы все заработало так, как мы этого хотим, а так же применим несколько хитростей, но обо всем по порядку…

Приступим, открываем файл /engine/modules/functions.php и находим:

function ShowRating($id, $rating, $vote_num, $allow = true) {
	global $lang;
 
	...
 
	return $rated;
}
 
function userrating($id) {

Там где у меня в коде стоит троеточие, там находится много кода, я его вырезал, не пугайтесь, для нас важнее найти начало и конец.

Выделяем указанный мною код и заменяем его на следующий:

function ShowRating($id, $rating, $vote_num, $allow = true) {
	global $lang;
 
	if( $rating AND $vote_num ) $rating = round( ($rating / $vote_num), 0 );
	else $rating = 4;
	$AVERrating = $rating;
	$rating = $rating * 17;
 
	if( !$allow ) {
 
		$rated = <<<HTML
<div class="rating">
		<ul class="unit-rating">
		<li class="current-rating" style="width:{$rating}px;">{$rating}</li>
		</ul>
</div>
HTML;
 
		return $rated;
	}
 
	$rated = <<<HTML
<div id='ratig-layer-{$id}'><div class="rating">
		<ul itemprop="rating" itemscope itemtype="http://data-vocabulary.org/Rating" class="unit-rating">
		<li itemprop="average" class="current-rating" style="width:{$rating}px;">{$AVERrating}</li>
		<li><a href="#" title="{$lang['useless']}" class="r1-unit" onclick="doRate('1', '{$id}'); return false;">1</a></li>
		<li><a href="#" title="{$lang['poor']}" class="r2-unit" onclick="doRate('2', '{$id}'); return false;">2</a></li>
		<li><a href="#" title="{$lang['fair']}" class="r3-unit" onclick="doRate('3', '{$id}'); return false;">3</a></li>
		<li><a href="#" title="{$lang['good']}" class="r4-unit" onclick="doRate('4', '{$id}'); return false;">4</a></li>
		<li itemprop="best"><a href="#" title="{$lang['excellent']}" class="r5-unit" onclick="doRate('5', '{$id}'); return false;">5</a></li>
		</ul>
</div></div>
HTML;
 
	return $rated;
}
 
function userrating($id) {

В этом коде в нужных местах уже добавлены все необходимые теги, а так же применена моя маленькая «хитрость», о которой я расскажу чуть ниже.

С этим файлом закончили – сохраняем и заливаем на сервер, заменяя прежний.

Открываем файл /engine/modules/show.full.php и находим код:

		if( $row['allow_rate'] ) { 
 
			$tpl->set( '{rating}', ShowRating( $row['id'], $row['rating'], $row['vote_num'], $user_group[$member_id['user_group']]['allow_rating'] ) );
			$tpl->set( '{vote-num}', "<span id=\"vote-num-id-".$row['id']."\">".$row['vote_num']."</span>" );
			$tpl->set( '[rating]', "" );
			$tpl->set( '[/rating]', "" );
 
		} else {

Заменяем код на следующий:

if ( $row['vote_num'] == 0 ) $row['vote_num'] = 1;
 
		if( $row['allow_rate'] ) { 
 
			$tpl->set( '{rating}', ShowRating( $row['id'], $row['rating'], $row['vote_num'], $user_group[$member_id['user_group']]['allow_rating'] ) );
			$tpl->set( '{vote-num}', "<span itemprop=\"votes\" id=\"vote-num-id-".$row['id']."\">".$row['vote_num']."</span>" );
			$tpl->set( '[rating]', "" );
			$tpl->set( '[/rating]', "" );
 
		} else {

Сохраняем файл, загружаем на сервер, заменяя прежнюю версию файла.

Пришло время рассказать о «хитрости» — она заключается в следующем. Если, например, новость совсем свежая, то для нее вряд ли есть данные о рейтинге, никто просто не успел проголосовать, и тогда количество голосов будет равно 0, а это ошибка, ну, то есть Google скажет, что мы его обманываем и никакого рейтинга у нас пока нет. Так вот, я модифицировал код таким образом, что если у нас 0 голосов, то делается «как будто» есть один голос, и это решает проблему с ошибкой, рейтинг будет одобрен Гуглом.

И вот, файлы движка модифицированы, остался последний штрих – добавить рейтинг в шаблон нашей темы оформления. Даже если у вас уже выводится рейтинг в шаблонах, то придется его серьезно доработать. В любом случае, рекомендую мой вариант, он заведомо рабочий.

Открываем файл /templates/*название вашей темы*/fullstory.tpl и после {full-story} добавляем код:

[rating]<div itemscope itemtype="http://data-vocabulary.org/Review-aggregate"><div style="float:left;width:100px;">Рейтинг:</div>{rating}<div style="float:left;width:120px;">(голосов: {vote-num})</div></div>[/rating]

Если вдруг это будет криво отображаться в вашем шаблоне, то, извините, не моя вина, изучите уже, наконец, что такое CSS. И не задавайте мне в комментариях вопросы, типа «помогите, все криво и съехало, я полный нуб». Рано или поздно все равно придется учить, а если нет, то так и останетесь дебилами и полными нубами. Так что сделайте, пожалуйста, одолжение…

Вот как бы и все :) Как все просто делать по инструкции, не правда ли?

Осталось проверить, что все сделано правильно при помощи инструмента проверки структурированных данных Google.
Должны получить что-то подобное:

Отображение расширенного сниппета с рейтингом в Google

Еще раз смею напомнить, что вероятность появления такого сниппета, как показывает нам инструмент проверки, крайне мала, но она есть!

Более подробно про данный вариант микроразметки можно прочитать в мануалах Гугла. Там же приведены все три способа разметки: микроданные, микроформаты и RDFa. В рассмотренном случае я решил использовать микроданные, никакой принципиальной разницы между этими вариантами нет, они работают одинаково.

Теперь скрестим пальцы и мечтаем, чтобы микроразметка рейтинга новостей понравилась Google и он ее включил. А там и серьезный рост CTR, хороший трафик, рост позиций, горы бабла…вы такие лежите на гамаке, попиваете коктейль и смотрите на пальмы… Мечтать не вредно, правда?

Спасибо за внимание, друзья, пишите комментарии и задавайте вопросы.

Александр «АлаичЪ» Алаев
Александр «АлаичЪ» Алаев

Вот уже 18 лет я профессионально занимаюсь созданием и продвижением сайтов и 13 лет с удовольствием пишу в любимый блог. Создал заслужившие доверие в seo-сообществе программы FastTrust и ComparseR и известный сервис для проверки траста сайтов CheckTrust.ru.

В 2014 основал веб-студию «АлаичЪ и Ко» в Краснодаре: 1 место в рейтинге агентств интернет-маркетинга (Рейтинг Рунета), 2 место в рейтинге SEO-компаний (CMSmagazine), 12 место в рейтинге известность бренда SEO-компаний в России (SeoNews).

Выступаю на профильных конференциях (All In Top, SEO Conference, SEMPRO, Baltic Digital Days). Веду канал в telegram про seo и бизнес. SEO-специалист года 2019 и 2020 (Sape).

Профессиональный технический аудит и рекомендации по оптимизации вашего сайта.
Тот самый необходимый «фундамент» для успешного продвижения.

30 000 руб.

Комплексный подход к решению поставленных задач: достижение топ-10 и увеличение трафика на сайт. В стоимость уже включены полный технический аудит и оптимизация сайта.

45 000 руб.

У вас недостаточно знаний и нужны ответы на вопросы?
Интересует мнение эксперта или надо проверить подрядчика?
Вы задаете вопрос — я отвечаю!

10 000 руб./час

Проведу подробное исследование вашего сайта и основных конкурентов, опубликую материал на блоге для обсуждения и коллективного поиска новых идей.

70 000 руб.

Я начал запись своего обучающего курса по seo-продвижению.

В каждом видео я разбираю какую-то одну важную тему, и делаю это последовательно, в порядке, подходящем для изучения с нуля. Видео выкладываются раз в неделю – по средам. Я думаю, весь курс будет состоять из 50-70 роликов, так до конца еще далеко, а значит самое время подписаться и начать изучение вместе со мной.

В блоке слева всегда будет выводиться самое свежее видео курса. Ссылки: на мой канал, на плейлист обучения.

Комментарии: 170 Написать комментарий
  1. Келли Дженко:

    Алаичъ, можешь замутить ленту подобного рода статей о микрозаметках?

    • АлаичЪ:

      Так а все...больше нечего размечать особо то. Или есть предложения?

      • Новости и комментарии, но это сугубо индивидуально, т.к. лучше делать не универсльное решение, а конкретно под сайт.

        Комменты можно только разметить универсально.

        • АлаичЪ:

          Зачем размечать комменты и что нам это даст в итоге?

          А вообще — я ничего просто для того чтобы было делать не стану, если мне что-то на моих сайтах пригодится и я этим заморочусь, то я поделюсь решением. Как говорится, "на заказ" делать не стану...

          • drabadan:

            Сань,очень хотелось бы видеть на твоем блоге статьи про микроразметку для wordpress.

            • АлаичЪ:

              Если будет желание, сделаю. А так я уже где-то видел парочку публикаций про микроразметку WP.

      • Oleg:

        Да что вы говорите? Разве нечего? А гугл думает по другому. https://support.google.com/webmasters/answer/99170?hl=ru

        Вот полный список микроразметок

        Отзывы

        Люди

        Товары

        Компании и организации

        Рецепты

        Мероприятия

        Музыка

        П.С. Ну вы здесь и огорода нагородили(с учетом комментов ниже). Чуть ли не новую цмс-ку придумали))) Зачем переписывать файлы движка? если можно просто повставлять html-теги в шаблон, типа <span itemprop="name">имя</span>, <span itemprop="nickname">кликуха</span> и т.д.

  2. Саша, Спасибо!

    Как раз делаю шаблон с микроразметкой и такая лень была ковыряться с рейтингом, а тут статья. Очень вовремя.

    Вопрос: почему data-vocabulary.org? если в заголовке ты говоришь о schema.org? или я чего то не понимаю?

    Только вот noindex — лишнее, несемантичный же тег.

    • АлаичЪ:

      Да пожалуйста! :)

      Разумное замечание по поводу schema.org, я, видимо, домал про одно, писал другое =) На самом деле разницы никакой и нет, можно заменить адрес в itemtype и будет полное соответствие заголовку...

      Про noindex спасибо, что заметил, это я без изменений вставил свой код, можно убрать его, опять же — это ни на что не влияет.

      • Artem:

        АлаичЪ, Яндекс же вроде не учитывает noindex уже. Даже есть слухи, что он его отметил...

        • АлаичЪ:

          Спорный вопрос, учитывает или нет. Тем не менее, этот тег не отменен и описан в мануалах Яндекса — http://help.yandex.ru/webmaster/?id=1111858

  3. Ох...ть, спасибо огромное, давно мечтал о такой микроразметке.

  4. Ванчик:

    Окончание вызвало громкий смех!)))... Саша, спасибо огромное, это то что я давно ищу!

  5. Serik:

    Если проверка в Гугле не показывает звёздочки то всё, не получилось для сайта это сделать? Всё сделал как написано (ошибиться то не в чем), а звёзд при проверке не видно...

    А внизу проверки вот такая шляпа:

    Item type: http://data-vocabulary.org/review-aggregate

    property:

    votes: 1

    Внимание! Missing "rating" field.

    • АлаичЪ:

      Ну значит неправильно сделал, раз такая ошибка выдается.

      Я надеюсь, на проверяемой странице сайта рейтинг-то видно?

      • Serik:

        АлаичЪ, сделать не правильно не реально — всего 3 файла поправить то :)

        В полной новости рейтинг виден (скривило конечно немного диз, но вряд ли из-за этого не работает). Причём через data-vocabulary.org есть ошибка, а через schema.org нет, но и так и так звёзд не показывает :(

        Хоть убейся но не работает... Шаблон не при чём — менял три разных :(

        • Serik:

          Я починил у себя неотображение :)

          АлаичЪ, добавь в шапку обязательное условие работоспособности: группе Гости не отключать возможность выставления рейтинга новостям.

      • Андрей:

        Какая версия php нада, для работы скрипта? У меня php 5.2.10 это нормально или надо более новый... Выставляю рейтинг 3 прошу друга выставить рейтинг он ставит 4, выставляется 4 звезды а количество человек проголосовавших всегда 1... ну что за хрень (( помогите!

  6. Безумно радуют вот такие вот "специалисты" с их "хитростями" :)

    Статья полезна как некое "how to".

    Однако, автор снимает ответственность с себя за то, что верстка может "уползти". Тем не менее, использует инлайновые стили и называет всех потенциально "сломавшихся" "дебилами и полными нубами". Вот только вопрос: далеко ли сам автор ушел от этого "нубства"?

    • АлаичЪ:

      А может я должен брать на себя еще и ответственность за то, что вашу машину не угонят? Все что вы делаете с движком по информации взятой не с официального сайта — вы делаете на свой страх и риск, и так было всегда.

      Если ваши познания в верстке ушли дальше моих — поздравляю!

    • Автор и не говорит, что он мегаверстальщик, инлайн стили не являются чем то страшным, особенно для СЕО-специалиста.

      Если бы Саша не написал бы тех строк, то первые 30 комментариев были-бы в духе: "ааа, всё съехало, куда вставить" и прилагались бы бесполезные скриншоты с замыленным адресом сайта, залитые на этот же сайт.))

  7. Серега:

    А че делать тем у кого установлен счетчик рейтинга от Сандера. Дело в том что так называемый плюсик — это всего одна звезда, даже если их 1000. Гугл пишет мол 50 отзывов но одна звезда, на всех статьях так. Что, где, как это изменить, чтобы голос считался не 1 балл из 5-ти, а все пять.

    Думаю у кого установлен рейтинг от Сандера меня понял.

    • АлаичЪ:

      Я не знаю, что такое счетчик от Сандера, так что на вопросы "кто виноват?" и "что делать?" придется ответить самостоятельно.

    • Попросить Сандера доработать рейтинг, сделав вывод нужных данных, впринципе это не сложно. Но смысла не вижу, у его рейтинга другой принцип.

  8. Иван:

    Здравствуйте, очень пригодилась статья.

    Только у кого dle 9.6-9.7 может быть ошибка синтаксиса на главной, чтобы ошибку исправить проделайте шаг 2 «Открываем файл /engine/modules/show.full.php и находим код» и с файлом show.short.

    Также возможна неточность с шагом два, вместо варианта автора может быть код вот такой:

    		if( $row['allow_rate'] ) {
     
    			$tpl->set( '{rating}', ShowRating( $row['id'], $row['rating'], $row['vote_num'], $user_group[$member_id['user_group']]['allow_rating'] ) );
    			$tpl->set( '{vote-num}', $row['vote_num'] );
     
    		} else {
     
    			$tpl->set( '{rating}', "" );
    			$tpl->set( '{vote-num}', "" );
    		}

    Если это так, то данный код просто замените на:

    		if( $row['allow_rate'] ) {
     
    			$tpl->set( '{rating}', ShowRating( $row['id'], $row['rating'], $row['vote_num'], $user_group[$member_id['user_group']]['allow_rating'] ) );
    			$tpl->set( '{vote-num}', "<span itemprop="votes" id="vote-num-id-".$row['id']."">".$row['vote_num']."</span>" );
    			$tpl->set( '[rating]', "" );
    			$tpl->set( '[/rating]', "" );
     
    		} else {}
  9. Руслан:

    А я сделал проще — вставил этот код в фулстори.тпл:

    <noindex>
    <div xmlns:v="http://rdf.data-vocabulary.org/#" typeof="v:Review-aggregate" style="font-size:10px; margin-top: 0px;">
    <span property="v:itemreviewed">{title}</span>
    <span rel="v:rating">
    <span typeof="v:Rating">
    <span property="v:average">8.5</span> из
    <span property="v:best">10</span>
    </span>
    </span>
    на основе
    <span property="v:votes">{views}</span> просмотров,
    <span property="v:count">5</span> отзывов.
    </div></noindex>

    И теперь рейтинг показывает на всех материалах оценку 8.5 из 10.

    Кстати да! Заметьте, что рейтинг из 10-значного числа отличается от пятизначного.

    Вот как будет выглядеть 10-значный: Рейтинг: 9.8/10 — Оценок: 100

    Вместо обычного: Оценок: 100

    • АлаичЪ:

      И что? Зачем нам фейковые решения. Мы наоборот делаем все по уму, чтобы увеличить шанс появления данных в сниппете.

      К слову — ваша хитрость показывается в сниппете?

      • Руслан:

        Да, конечно, показывается — пруф скрин http://clip2net.com/s/2Hftb

        Ну а почему фейк? Стоит только тут <span property="v:average">8.5</span> вставить код выводящий оценку материала и все, будет реальная оценка, а для начала сделал так, чтоб на всех материалах был рейтинг в сниппете.

  10. Min-Z-Drav:

    Всё работает спасибо, а для тех кто не может найти в файлах код попробуйте по кусочкам искать и так найдёте!

  11. Юхуууууу, все заработало, по крайней мере в Инструментах проверки структурированных данных. Надеюсь пару дней гуглу хватит чтобы добавить в выдачу все это. Спасибо, Александр!)

  12. Только начал устанавливать и столкнулся с проблемой. В DLE 9.5 в /engine/modules/functions.php

    нет такого: function userrating ($id) {

    Можете в комментах объяснить, что менять?

    • Иван:

      Поищите function userrating ($name) т.е там function userrating ($id) нет

      • Ну тут разобрался. В /engine/modules/show.full.php Вообще ничего не сходится...

        • Андрей:

          на 9.5 и 9.6-9.7 много измений было поэтому так, надо чтобы автор и для 9.2-9.5 сделал

          • Иван:

            Axel, посмотрите мои комментарии несколько выше.Там как раз я решил Вашу проблему.

            • Спасибо. Но еще после первого пункта ошибка: Fatal error: Cannot redeclare showrating () (previously declared in /home/.../public_html/engine/modules/functions.php:190) in /home/.../public_html/engine/modules/functions.php on line 261

  13. Андрей:

    Я переделал под DLE 9.2-9.5 если кому надо напишите

    • Мне нужно. Многим нужно. Я уже весь день сижу на блоге, в ожидании что кто-то скинет инструкцию :)

  14. Андрей:

    Я покажу на примере 10 звезд. Правильно или нет, не знаю, но я сверил по исходному коду, все норм.

    Заходим в functions.php и находим function ShowRating($id, $rating, $vote_num, $allow = true) {

    И все что до function userrating($name) { заменяем на это:

    function ShowRating($id, $rating, $vote_num, $allow = true) {
        global $lang;
     
        if( $rating ) $rating = round( ($rating / $vote_num), 0 );
        else $rating = 4;
        $rating1 = str_replace( ",", ".", $rating );
        $rating2 = $rating1 * 10;
     
        if( ! $allow ) {
     
            $rated = <<<HTML
    <div class="rating" style="float:left;">
            <ul class="unit-rating">
            <li class="current-rating" style="width:{$rating2}%;">{$rating2}</li>
            </ul>
     
     
    </div>
    HTML;
     
            return $rated;
        }
     
        $rated .= <<<HTML
    <div id='ratig-layer'><div class="rating" style="float:left;">
            <ul itemprop="rating" itemscope itemtype="http://data-vocabulary.org/Rating" class="unit-rating">
            <li itemprop="average" class="current-rating" style="width:{$rating2}%;">{$rating2}</li>
            <li><a href="#" title="1" class="r1-unit" onclick="doRate('1', '{$id}'); return false;">1</a></li>
            <li><a href="#" title="2" class="r2-unit" onclick="doRate('2', '{$id}'); return false;">2</a></li>
            <li><a href="#" title="3" class="r3-unit" onclick="doRate('3', '{$id}'); return false;">3</a></li>
            <li><a href="#" title="4" class="r4-unit" onclick="doRate('4', '{$id}'); return false;">4</a></li>
            <li><a href="#" title="5" class="r5-unit" onclick="doRate('5', '{$id}'); return false;">5</a></li>
            <li><a href="#" title="6" class="r6-unit" onclick="doRate('6', '{$id}'); return false;">6</a></li>
            <li><a href="#" title="7" class="r7-unit" onclick="doRate('7', '{$id}'); return false;">7</a></li>
            <li><a href="#" title="8" class="r8-unit" onclick="doRate('8', '{$id}'); return false;">8</a></li>
            <li><a href="#" title="9" class="r9-unit" onclick="doRate('9', '{$id}'); return false;">9</a></li>
            <li itemprop="best"><a href="#" title="10" class="r10-unit" onclick="doRate('10', '{$id}'); return false;">10</a></li>
            </ul>
    </div>
     
    </div>
    <table border=0 cellspacing=0 cellpadding=1 width=100%>
      <tr><td><b>Оценка</b><td align=right><b><font color=green>{$rating1}/10</font></b></td></td></tr>
     
    <tr><td><b>Голосов</b><td align=right><b><font color=green>{$vote_num}</font></b></td></td></tr>
    </table>
    HTML;
     
        return $rated;
    }
     
    function ShortRating($id, $rating, $vote_num, $allow = true) {
        global $lang;
     
        if( $rating ) $rating = round( ($rating / $vote_num), 0 );
        else $rating = 4;
        $rating = str_replace( ",", ".", $rating );
        $rating = $rating * 10;
     
        if( ! $allow ) {
     
            $rated = <<<HTML
    <div class="rating" style="float:left;">
            <ul class="unit-rating">
            <li class="current-rating" style="width:{$rating}%;">{$rating}</li>
            </ul>
    </div>
    HTML;
     
            return $rated;
        }
     
        $rated = "<div id='ratig-layer-" . $id . "'>";
     
        $rated .= <<<HTML
    <div class="rating" style="float:left;">
            <ul itemprop="rating" itemscope itemtype="http://data-vocabulary.org/Rating" class="unit-rating">
            <li itemprop="average" class="current-rating" style="width:{$rating}%;">{$rating}</li>
            <li><a href="#" title="1" class="r1-unit" onclick="doRate('1', '{$id}'); return false;">1</a></li>
            <li><a href="#" title="2" class="r2-unit" onclick="doRate('2', '{$id}'); return false;">2</a></li>
            <li><a href="#" title="3" class="r3-unit" onclick="doRate('3', '{$id}'); return false;">3</a></li>
            <li><a href="#" title="4" class="r4-unit" onclick="doRate('4', '{$id}'); return false;">4</a></li>
            <li><a href="#" title="5" class="r5-unit" onclick="doRate('5', '{$id}'); return false;">5</a></li>
            <li><a href="#" title="6" class="r6-unit" onclick="doRate('6', '{$id}'); return false;">6</a></li>
            <li><a href="#" title="7" class="r7-unit" onclick="doRate('7', '{$id}'); return false;">7</a></li>
            <li><a href="#" title="8" class="r8-unit" onclick="doRate('8', '{$id}'); return false;">8</a></li>
            <li><a href="#" title="9" class="r9-unit" onclick="doRate('9', '{$id}'); return false;">9</a></li>
            <li itemprop="best"><a href="#" title="10" class="r10-unit" onclick="doRate('10', '{$id}'); return false;">10</a></li>
            </ul>
    </div>
    HTML;
     
        $rated .= "</div>";
     
        return $rated;
    }

    Сохраняем. Далее идем в show.full.php и ищем if( $row['allow_rate'] ) {

    Выше ставим:

    if ( $row['vote_num'] == 0 ) $row['vote_num'] = 1;

    Чуть ниже находим этот код:

    $tpl->set( '{vote-num}', $row['vote_num'] );

    Меняем его на:

    $tpl->set( '{vote-num}', "<span itemprop="votes">".$row['vote_num']."</span>" );

    Затем заходим в шаблон fullstory.tpl и вставляем в удобное для вас место:

    <td itemscope itemtype="http://data-vocabulary.org/Review-aggregate">{rating}</td>

    Вроде все. Да, кстати, на 5 звезд не трудно переделать. Если же захотите 10 звезд, пишите в асю 408898510, там еще надо менять файлы.

    • Андрей:

      Подскажите пожалуйста для ДЛЕ9.0

      в ней нет такого кода: $tpl->set ( '{vote-num}', $row['vote_num'] );

      есть такое:

      if ( $row['allow_rate'] ) $tpl->set ( '{rating}', ShowRating ( $row['id'], $row['rating'], $row['vote_num'], $user_group[$member_id['user_group']]['allow_rating'] ) );

      else $tpl->set ( '{rating}', "" );

  15. Андрей:

    Инструкция на 5 звезд для ДЛЕ 9.5 (на 9.2-9.4 должно тоже работать).

    Заходим в functions.php и находим function ShowRating ($id, $rating, $vote_num, $allow = true) {

    И все что до function userrating ($name) { заменяем на это:

    function ShowRating($id, $rating, $vote_num, $allow = true) {
    	global $lang;
     
    	if( $rating AND $vote_num ) $rating = round( ($rating / $vote_num), 0 );
    	else $rating = 4;
    	$rating = $rating * 17;
     
    	if( ! $allow ) {
     
    		$rated = <<<HTML
    <div class="rating" style="float:left;">
    		<ul class="unit-rating">
    		<li class="current-rating" style="width:{$rating}px;">{$rating}</li>
    		</ul>
    </div>
    HTML;
     
    		return $rated;
    	}
     
    	$rated = <<<HTML
    <div id='ratig-layer'><div class="rating" style="float:left;">
    		<ul itemprop="rating" itemscope itemtype="http://data-vocabulary.org/Rating" class="unit-rating">
    		<li itemprop="average" class="current-rating" style="width:{$rating}px;">{$rating}</li>
    		<li><a href="#" title="{$lang['useless']}" class="r1-unit" onclick="doRate('1', '{$id}'); return false;">1</a></li>
    		<li><a href="#" title="{$lang['poor']}" class="r2-unit" onclick="doRate('2', '{$id}'); return false;">2</a></li>
    		<li><a href="#" title="{$lang['fair']}" class="r3-unit" onclick="doRate('3', '{$id}'); return false;">3</a></li>
    		<li><a href="#" title="{$lang['good']}" class="r4-unit" onclick="doRate('4', '{$id}'); return false;">4</a></li>
    		<li itemprop="best"><a href="#" title="{$lang['excellent']}" class="r5-unit" onclick="doRate('5', '{$id}'); return false;">5</a></li>
    		</ul>
    </div></div>
    HTML;
     
    	return $rated;
    }
     
    function ShortRating($id, $rating, $vote_num, $allow = true) {
    	global $lang;
     
    	if( $rating AND $vote_num ) $rating = round( ($rating / $vote_num), 0 );
    	else $rating = 4;
    	$rating = $rating * 17;
     
    	if( ! $allow ) {
     
    		$rated = <<<HTML
    <div class="rating" style="float:left;">
    		<ul class="unit-rating">
    		<li class="current-rating" style="width:{$rating}px;">{$rating}</li>
    		</ul>
    </div>
    HTML;
     
    		return $rated;
    	}
     
    	$rated = "<div id='ratig-layer-" . $id . "'>";
     
    	$rated .= <<<HTML
    <div class="rating" style="float:left;">
    		<ul itemprop="rating" itemscope itemtype="http://data-vocabulary.org/Rating" class="unit-rating">
    		<li itemprop="average" class="current-rating" style="width:{$rating}px;">{$rating}</li>
    		<li><a href="#" title="{$lang['useless']}" class="r1-unit" onclick="dleRate('1', '{$id}'); return false;">1</a></li>
    		<li><a href="#" title="{$lang['poor']}" class="r2-unit" onclick="dleRate('2', '{$id}'); return false;">2</a></li>
    		<li><a href="#" title="{$lang['fair']}" class="r3-unit" onclick="dleRate('3', '{$id}'); return false;">3</a></li>
    		<li><a href="#" title="{$lang['good']}" class="r4-unit" onclick="dleRate('4', '{$id}'); return false;">4</a></li>
    		<li itemprop="best"><a href="#" title="{$lang['excellent']}" class="r5-unit" onclick="dleRate('5', '{$id}'); return false;">5</a></li>
    		</ul>
    </div>
    HTML;
     
    	$rated .= "</div>";
     
    	return $rated;
    }

    Все остальное делаете так, как я написал выше. Должно работать!

  16. Данил:

    Спасибо конечно за статью, но эти фразы: "останетесь дебилами и полными нубами" — убили. Если вас обидели или достали такими комментариями — не нужно свои эмоции на показ выставлять. Люди — учатся, ошибаются. если они спрашивают — это не значит, что они ленивые и не хотят ничего делать, это говорит о том, что им это интересно и возникли небольшие трудности.

    • Я думаю речь шла не о тех людях, которые учатся и им интересно. Уверен, что в основном пишут нубы и те, кто даже не пытается что-то сам освоить...

  17. ЭХ... Не судьба. На одном сайте вовсе не использую рейтинг новостей, а на втором рейтинг в виде "нравится/не нравится". Может кто смог бы для такого рейтинга сделать? :)

    • Андрей:

      Смысл этой микроразметки, чтобы при результатах поиска в Гугле показывались звезды, а у вас что будет выводиться 1,2,3,4,5...?

  18. А как быть с рейтингами на главной странице и в категории? Почему-то у меня там показывает не 10 новостей, а 20 и при этом одна десятка с ошибкой а вторая без ошибки? Кто сталкивался?

    • Андрей:

      А зачем на главной рейтинг? Так Гугл не поймет для какой новости этот рейтинг...

  19. Даниэль:

    Всё работает за исключением одного — не идет подсчет количества проголосовавших, тупо на 1 стоит и всё, так и должно быть?

    • Андрей:

      Нет конечно, должно изначально 1 стоять если никто не голосовал, а если кто-то нажал на 5 или 4 не важно, то потом 5 или 4 должно остаться.

      • Даниэль:

        Андрей, я и говорю, что 1 стоит, закрыты 4 звезды, жмешь на 5 звезд, закрывает все, а при обновлении страницы однерка которая выводится тегом {vote-num} тупо остается, делал все четко по инструкции, двиг 9.6, гугл видит звезды и когда их 4 и когда их 5 закрыто, а количество голосов двиг не прибавляет...

        • Даниэль:

          Разобрался по ходу: 1 голос он фейковый и, когда голосуешь впервые за новость по настоящему, то так и остается однерка, все последующие голоса засчитываются :)

          • Анатолий:

            А вот Я пробовал в 3-х браузерах, очищал кеш, менял IP но единичка так и не сдвинулась с места

  20. OKyJIucT:

    Я тоже делал фейковый рейтинг вот так:

    <div style="position:absolute; left:-9999px" itemprop="aggregateRating" itemscope itemtype="http://schema.org/AggregateRating">
    	<span itemprop="ratingValue">{random}</span>/5
    	<span itemprop="ratingCount">{views}</span>
    </div>

    Для {random} добавил в index.php такой код после $tpl->set ( '{content}', "<div id='dle-content'>" . $tpl->result['content'] . "</div>" );

    $rand = rand (38,50)/10;

    $tpl->set ( '{random}', $rand );

    и рейтинг выводится от 3,8 до 5. Количество голосов — это количество просмотров новости)))

    Пример такого снипета http://clip2net.com/s/2HKNS

    Хлебные крошки я делал так:

    <div style="position:absolute; left:-9999px">
    	<div xmlns:v="http://rdf.data-vocabulary.org/#">
    		<span typeof="v:Breadcrumb"><a property="v:title" rel="v:url" href="http://site.ru/">Рецепты</a></span>
    		<span typeof="v:Breadcrumb"><a property="v:title" rel="v:url" href="{category-url}">{category}</a></span>
    	</div>
    </div>

    Ну и еще добавлял itemprop="image" чтобы картинка в снипете отображалась:)

  21. Если в itemtype использую data-vocabulary.org то звездочки присутствуют и нет ошибок в инструменте проверки разметки, если ставлю schema.org то звезды пропадают и соответственно сыпятся ошибки... так что думаю data-vocabulary.org все же рабочий вариант (как минимум для меня)... И спасибо автору за данное решение, поглядим как появление такого сниппета повлияет на посещаемость...

  22. Serik:

    Ура! У меня Гугл начал выдавать в поиске со звёздочками :)

  23. Везет Вам, у меня даже авторство не хочет подтверждать, хотя в Инструментах все четко выдает.

  24. Alex:

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

    • Serik:

      Ну вот, а Вы переживали )))

      У меня посещалка довольно резво подскочила — не так чтоб для тёток и пальм, но именно по таким звёздам стали в разы больше приходить ))

      Посему прикупил у автора сего блога пару модулей — вроде и жаба не душет как при пожертвовании, но в то же время пригодятся )))

  25. Андрей:

    В общем ребят, кто делал для DLE 9.0 — отпишитесь, нужна помощь :)

  26. Cегодня вот от Яндекса пришло:

    «Мы заметили ваш интерес к использованию микроразметки на сайте. У нас для вас хорошие новости: теперь валидатор микроразметки в Яндекс.Вебмастере умеет проверять все типы разметки Schema.org, микроформаты, OpenGraph и RDFa, а не только данные, обрабатываемые Яндексом. Рекомендуем пользоваться валидатором при внесении изменений в разметку на сайте или при добавлении новых элементов.

    Если у вас есть вопросы, связанные с внедрением разметки на сайт, вы можете задать их в клубе Поиска.»

    И, кстати, data-vocabulary.org Яндекса неизвестен, в вот коммент представителя Яндекса по теме http://habrahabr.ru/company/yandex/blog/165727/#comment_5721073

  27. Анатолий:

    Что и где нужно посмотреть, ошибок не светит, сами звёзды меняют цвет, но вот (голосов: {vote-num}) не изменяется как стало (голосов: 1) так и стоит, уже и кеш чистил и ...

    Подскажите _free-zone.ws

  28. Для DLE 7.5 версии переделал под схема.орг, получилось вот так:

    Файл /engine/modules/functions.php

    $rated = <<<HTML
    <div class="rating" style="float:left;">
    		<ul class="unit-rating">
    		<li class="current-rating" style="width:{$rating}px;">{$rating}</li>
    		</ul>
    </div><div class="rating" style="float:left; padding-top:2px;">&nbsp;({$lang['voten']} {$vote_num})</div>
    HTML;
     
    		return $rated;
    	}
     
    	$rated = <<<HTML
    <div id='ratig-layer-{$id}'><div class="rating">
    		<ul class="unit-rating">
    		<li itemprop="ratingValue" class="current-rating" style="width:{$rating}px;">{$AVERrating}</li>
    		<li><a href="#" title="{$lang['useless']}" class="r1-unit" onclick="doRate('1', '{$id}'); return false;">1</a></li>
    		<li><a href="#" title="{$lang['poor']}" class="r2-unit" onclick="doRate('2', '{$id}'); return false;">2</a></li>
    		<li><a href="#" title="{$lang['fair']}" class="r3-unit" onclick="doRate('3', '{$id}'); return false;">3</a></li>
    		<li><a href="#" title="{$lang['good']}" class="r4-unit" onclick="doRate('4', '{$id}'); return false;">4</a></li>
    		<li itemprop="bestRating"><a href="#" title="{$lang['excellent']}" class="r5-unit" onclick="doRate('5', '{$id}'); return false;">5</a></li>
    		</ul>
    </div></div>
    HTML;
     
    	return $rated;
    }

    Файл /engine/modules/show.full.php

    if ( $row['vote_num'] == 0 ) $row['vote_num'] = 1;
     
    		if( $row['allow_rate'] ) { 
     
    			$tpl->set( '{rating}', ShowRating( $row['id'], $row['rating'], $row['vote_num'], $user_group[$member_id['user_group']]['allow_rating']));
    			$tpl->set( '{vote-num}', "<span itemprop="ratingCount" id="vote-num-id-".$row['id']."">".$row['vote_num']."</span>" );
    			$tpl->set( '[rating]', "" );
    			$tpl->set( '[/rating]', "" );
     
    		} else {
            $tpl->set('{rating}',"");
    		}

    Для файла шаблона fullstory.tpl

    <span itemscope itemtype="http://schema.org/Article">[rating]<div itemprop="aggregateRating" itemscope itemtype="http://schema.org/AggregateRating" style="float:left;height:20px;">{rating} (голосов: {vote-num})</div>[/rating]</span>
  29. Владимир:

    Спасибо! Отлично!

    Но вот по поводу главной...))) некоторые веб мастера продвигают главную. Я занимаюсь одностраничниками.

    Как мне быть? Нужно именно для главной. Может есть другие мелочи для снипетов, применимые к главной странице?

    • АлаичЪ:

      Сделайте фейковую разметку, если получится. Да и потом, на микроразметке клином свет не сошелся, можно и без нее обойтись.

  30. Почему то не работает, версия 9.6, все делал строго по инструкции, полностью удалил из короткой новости но все равно при заходе на главную или не в полную новость выходила ошибка, и ругалось на файл show.short.php, указывая вот на эту строку — else $tpl->set ( '{rating}', ShortRating ( $row['id'], $row['rating'], $row['vote_num'], 0 ) );

    я её удалил, ругаться перестало, но не работает при проверке... подскажите что не так?

  31. Александр:

    АлаичЪ, большое человеческое тебе спасибо за статью! Позавчера выложил сайт в интернет, вчера проделал все по твоей инструкции и уже сегодня (!) новости проиндексировались с рейтингом. Единственное что, некоторые категории проиндексировались вот так Категория1>Категория2>Категория1>Категория2. Насколько это критично для гугла? Он не станет тянуть страницы вниз из-за такого повтора? Как думаешь?

  32. Александр:

    Здравствуйте! Помогите, пожалуйста со следующей проблемой: не считаются голоса, всегда отображается "голосов:1". Код размещен корректно. Версия ДЛЕ — 9.7, не ломанная. Шаблон дефолтный. Проверка структурированных данных выполнена.

    Об этой проблеме уже упоминали в данных комментариях, но решения проблемы я так и не нашел. Буду очень признателен за помощь.

    P.S. голосование проводилось с разных компьютеров, с разными IP, кэш очищался.

  33. Подскажите что можно вставить вместо data-vocabulary.org ? а то в валидаторе гугля все нормально, а в валидаторе яндекса пишет, что он с этим не знаком...

    Я понимаю что это сделано под гугль, но хочется что бы и в яндексе работало...

    • нужно почитать комменты выше и найти там ответ

      • Я перечитал эти все коменты раз 20 наверное... и кстати с schema.org гугль звезды не показывает...

        • Serik:

          Прекрасно работает :) Доказательство — all-droid.ru

          Чуть выше пост для ДЛЕ 7.5 — немного переделав под 9.7 всё заработало и Яндекс не ругается.

          • Проверил новость на твоем сайте в гугле и в яндексе... и в правду все работает...

            Может выложишь сюда свой код из тех файлов которые ты правил, а то я пытался переправлять, но ничего не вышло...

            • Андрей:

              через исходный код можно посмотреть и сделать

              • Уже посмотрел и сделал... все работает... спасибо за исходный код! )))

                Но я бы еще хотел добавить вывод данных о description, о дате и о том что бесплатно, тоесть цена — ноль...

                Смотрел на schema.org, но там все на английском и честно говоря ничего не понятно...

  34. Артем:

    Подскажите пожалуйста настройку для DLE 9.4

  35. Андрей:

    Вариант который описан здесь, нифига у меня не заработал, передалал по своему как на кинопоиске.ру на 10 звезд и сразу все ОК

    От сюда взял только чтобы отображалось 5 звезд (рейтинг) и проголосовало 1 когда никто еще не голосовал, чтобы ноля небыло

  36. AntiP:

    Благодарю за статью — познавательно и полезно.

    Скажите — под Яндекс планируется такое? (статья по микроразметке)

    • АлаичЪ:

      Нет, не планируется, т.к. Яндекс не поддерживает рейтинги и не выводит их в сниппете.

  37. stalker-xxl:

    А как можно сделать, чтоб отображалось в выдаче "просмотров: ****" ? ну именно кол-во просмотров новости... перерыл schema.org — не нашел

    • АлаичЪ:

      Никак не сделать, наверное, я не видел такой возможности в спецификациях. Да и сниппетов таких я не видел...

  38. Alex:

    Для версии 9.8 актуально ?

  39. loop:

    Item

    type: http://data-vocabulary.org/rating

    property:

    average: 5

    best: 5

    Внимание! Itemtype not recognized

    Мне гугл вот что выдает )))

  40. Артем:

    Доброй ночи всем. У меня вопрос, как к сниппету прикрутить фотку? И можно ли, чтоб в speedbar и в сниппете выводились все категории к которым принадлежит новость?

    Спасибо!

  41. Так может кто нибудь ответить, для 5 звезд такое возможно реализовать на DLE 9.4 ?

  42. Как и у loop, гугл пишет следующие

    Item

    type: http://data-vocabulary.org/rating

    property:

    average: 5

    best: 5

    Внимание! Itemtype not recognized — красным цветом, что это значит?

  43. Виктор:

    Item

    type: http://data-vocabulary.org/rating

    property:

    average: 40

    best: 10

    Внимание! Itemtype not recognized. — что за ошибка?

    Делал на 10 звезд ДЛЕ 9.5

  44. А как быть у кого стоит рейтинг O-Rating by Sander?

  45. При проверке в Яндексе выдает ответ, что существующая микроразметка на сайте не соответствует shema.org

    • Андрей:

      Я могу вам сделать валидную разметку для гугла и яндекса, но платно, пишите если надо 408898510

    • АлаичЪ:

      Да валидная или невалидная — разницы никакой, Яндекс ее все равно не понимает.

      • Алик:

        Понимать то понимает Schema Рейтинг, но никак не использует.

        google http://i50.fastpic.ru/big/2013/0801/54/b19e2d899ab4e84f6a050952ab486b54.jpg

        yandex http://i50.fastpic.ru/big/2013/0801/b9/0365dd458ef4c97fe6281ab4cc10a1b9.jpg

  46. Андрей:

    Вот разметка на одном из моих сайтов. http://www.google.com/webmasters/tools/richsnippets?url=http%3A%2F%2Ffreerutor.com%2F5595-planeta-okean-planet-ocean-2012-bdrip-licenziya.html&html=

    Это не реклама. Если человек знающий то он сможет все сделать как у меня через исходный код. И еще одна фишка (Рейтинг: 5/10 — 1 голос — Бесплатно) Слово БЕСПЛАТНО прописывается не буквали а

    <meta content="0.00" itemprop="price">

    <meta content="RUB" itemprop="priceCurrency">

    Можно в рублях или баксах. Если у вас интернет магазин, то вы пишите цену, ели же у вас все бесплатно то оставляете как я написал, и в выдаче у гугла уже сразу будет написана цена. Надеюсь написал понятно

    • АлаичЪ:

      Сделать разметку и проверить ее на валидаторе — ерунда. Другой вопрос — заинтересуется ли ей Гугл!

  47. Здравствуйте, в тему сниппетов, для кулинарных рецептов существует своя микроразметка Schema.org, Recipe и т.д. можете написать пост по этой теме, как быстро обработать уже существующие базы рецептов в формате микроразметке, может посоветуете какой нибудь специальный плагин для этого? буду признателен за любой ответ

    • АлаичЪ:

      Нет, поста про эту тему не будет. Внедрить это самостоятельно не сложно, можно попросить помощи программиста, он поможет.

  48. Спасибо Бро, звезды появились буквально через 2 дня) а еще прикрутил свое фото к сайту) теперь у меня вообще разноцветная выдача)

  49. Nurdaulet:

    Здравствуйте, АлаичЪ!

    Спасибо за пост, я давно хотел такого для сайта))

    Вот хотел спросить какую микроразметку лучше использовать: Микроданные или RDF?

    • АлаичЪ:

      Это не принципиально, главное чтобы валидацию проходила и все. У меня стоит RDF.

  50. при 5 звездной функции тулза гугла не видит разметку новостей, пишет

    Ошибка. Either "count" or "votes" field needs to be present.

    Ошибка. Rating could not be normalized.

    Ошибка. Please provide best and worst.

  51. Jek:

    АлаичЪ благодарю за пост, вчера поставил на 9.8 сегодня уже отображается

  52. Jack:

    Народ, а можно так вот сделать. Это в файл fullstory.tpl вставить и все?

    Рейтинг: <div id="rating-block" itemscope itemtype="http://data-vocabulary.org/Review-aggregate">

    <span itemprop="rating" itemscope itemtype="http://data-vocabulary.org/Rating">

    <span id="ratig-layer-{$id}" itemprop="average">{vote-num}</span>

    <span id="ratig-layer-{$id}" itemprop="best">5</span> из

    <span id="ratig-layer-{$id}" itemprop="votes">{vote-num}</span>

    </div>

    • АлаичЪ:

      Нет, не сработает. Но выше в комментариях кто-то показывал вариант, который можно "просто вставить".

      • Jack:

        АлаичЪ, пробовал метод указанный в комментариях для dle 9.2 но не работает.

        вот этого кода $tpl->set ( '{vote-num}', $row['vote_num'] ); в файле show.full.php вообще нет.

        есть код

        if ( $row['allow_rate'] ) $tpl->set ( '{rating}', ShowRating ( $row['id'], $row['rating'], $row['vote_num'], $user_group[$member_id['user_group']]['allow_rating'] ) );

        пробовал сделать вот так:

        if ( $row['allow_rate'] ) $tpl->set ( '{rating}', '{vote-num}',ShowRating ( $row['id'], $row['rating'], "<span itemprop=\"votes\">".$row['vote_num']."</span>", $user_group[$member_id['user_group']]['allow_rating'] ) );

        но увы не работает. всю голову сломал уже

  53. Антонио:

    Добрый день, скажите, возможно ли сделать помимо звездного рейтинга рядом отображение рейтинга числами — например 4 из 5?

  54. Даня:

    [rating]<div itemscope itemtype="http://data-vocabulary.org/Review-aggregate"><div style="float:left;width:15px;">Рейтинг:</div>(голосов: {vote-num})<div style="float:left;width:120px;">{rating}</div></div>[/rating]

    я не много код под себя отредактировал, можно так или нет?

  55. Подскажите какой Sql запрос можно выполнить что бы у всех статей рейтинг был 1, или +1-2 к рейтингу!

  56. Хм... Я вот решил посмотреть, как сделан рейтинг кинопоиска.

    Там только результаты голосования указаны...

    <div id="block_rating"  itemprop="aggregateRating" itemscope itemtype="http://schema.org/AggregateRating">
        <meta itemprop="bestRating" content="10" />
        <div class="block_2">
     
            <div class="div1"><meta itemprop="ratingValue" content="7.2" />
    <a href="/film/686064/votes/" class="continue rating_link rating_ball_green">
       <span class="rating_ball">7.219</span>
       <span class="ratingCount" itemprop="ratingCount">43</span>
    </a>
    </div>

    И работает это у них на ура. В результатах выводится звезды и такое: Рейтинг: 7,3/10 — ‎38 голосов.

    Даже в новом инструменте Гугла (Маркер, кажись), там достаточно выделить результаты голосования и количество проголосовавших, и гугл покажет, как правильно все разметить.

    АлаичЪ, что скажешь?

    • АлаичЪ:

      Ничего не скажу, а должен?

      • Ну что думаешь по этому поводу=)

        • АлаичЪ:

          Я тебя не понимаю. Что я должен думать? Ну да, это работает — что тут еще скажешь.

          А еще ты не весь код скопировал, не все контейнеры закрыты.

          • Да узнать хотел, какой метот лучше? Или они оба одинаково хорошо работают?

            Просто на момент создания данного поста, у Гугла еще небыло такого инструмента, как маркер...

            • АлаичЪ:

              Если сравнивать данный вариант и описанный в посте, то тут на свой вкус выбирай, что больше нравится визуально.

              Что за маркер, я не в курсе, но, наверное, классная штука :)

  57. quer:

    Подскажите, для как для Яндекс картинок можно сделать микроразметку?

    • АлаичЪ:

      Можно — http://help.yandex.ru/webmaster/?id=1122760

      • quer:

        А автоматизировать можно как-то? Чтобы каждый раз руками не править в БД исходный код?

        Или нужно много менять в исходном коде DLE?

        • АлаичЪ:

          Автоматизировать, наверное, как-то можно. Для этого потребуются правки движка точно.

  58. vertuhay:

    Как адаптировать ваш метод под дле 10.0?

    Дело в том когда правлю show.full.php перестает считать просмотры!

    • vertuhay:

      Разобрался, править все с нуля а не заменять с 9,8.

      И еще изменил

      $rating = $rating * 17;

      на

      $rating = $rating * 20;

  59. вова:

    обязательно после full-story вставлять?

  60. Здравствуйте,

    Я поставил ваш скрипт, все было ок, почти 80% страниц были в звездочках, но через две недели они пропали и их уже нету как два месяца, уже и скрипт переставлял...не знаю в чем проблема и что делать!

  61. Привет, подскажи на версию 10,1 можно поставить???

  62. Ребят, у меня 12 голосов и все по 5 баллов, почему рейтинг не изменяется на 5 баллов?? Через анонимайзер крутил, чтобы проверить.

    http://zfilm-hd.com/288-rosomaha.html

  63. Толик:

    На 10.1 работает отлично так как написано в инструкции, жду звездочек в выдаче. В валидаторе Яндекса и Гугла все хорошо.

    schema не работает если сменить на schema.org/AggregateRating, может я не правильно делаю?

  64. sprrut:

    В валидаторе все отлично звездочки, разметка, ошибок нет, но в выдаче звезды так и не появились — наверное не понравился google.

    • sprrut:

      Через месяц появились звездочки в индексе. Все работает.

      АлаичЪ СПАСИБО!

  65. Толик:

    Добрый день! Нужна помощь!

    Если писать в гугле site:mysite.ru — звездочки есть! Недавно появились. В выдаче если искать что то — пока нет. Это нормально ?

    Разметка data-vocabulary. Это не за того что она старая ? Будет в выдаче ? И через сколько примерно ожидать ? Звездочки появились где то через месяца 2 после установки кода.

  66. У меня такой вопрос, если на "Инструменты для веб-мастеров" показывает эти самые звездочки, а на самом поисковике нет.

    С чем это может связываться, будут ли они вообще, или я что то сделал не правильно?

  67. Рома:

    Привет!

    Поставил вариант от "Руслан" в проверке выдает вот такую ошибку: " If count is specified in review aggregate, page should contain reviews. Otherwise you may want to use votes." На сколько она критична а звездочки в поиске показывает! DLE 10.3

    • Роман, добрый день! Я тоже поставила вариант Руслана, так как знаний не хватает установить через копание в движке. Скажите, как быстро у вас звездочки в поиске появились. Ту же ошибку, что вы указывали и у меня выдает.

  68. Антон:

    Кто знает как сделать микроразметку для DLE 10.4?

  69. Подскажите пожалуйста как сделать для dle 10.4?

    • Анатолий:

      Точно также, по этому мануалу. Исключение только comments.class.php и в dle 10.4 нет } else { ставьте без них, всё прекрасно работает, пример вот http://serialsmotret.com/ делал сегодня.

  70. Всем привет! Всё сделал по инструкции, проверка показывает good. Результат проверки на скрине:http://prntscr.com/9bt1eq А в поиске никаких звёздочек нет. Или подождать надо какое-то время?

  71. Привет. Можете подсказать что хочет гугл, указав на такую ошибку (Не указан объект отзыва).? Вот даю скрин http://awesomescreenshot.com/0445mcm24a

    Заранее благодарю

  72. Артем:

    Можете подсказать что хочет гугл, указав на такую ошибку (Не указан объект отзыва).? Что куд надо привязать или указать?

  73. Здравствуйте. Помогите пожалуйста сделать для DLE 10.4. Кто делал для этой версии и у него работает ?

    Спасибо не перед.

  74. Александр:

    Здравствуйте. Подскажите как внедрить микроразметку schema.org для рецептов на DLE 10.4?

  75. Не указан объект отзыва. почему? что не так http://prntscr.com/em60fp

  76. Родион:

    Здравствуйте, а есть ли у Вас еще статьи про shema, хотел настроить полностью, на главной, на странице с фильмом, то есть как настроить?, версия dle 11.3

    • АлаичЪ:

      Нет таких мануалов у меня.

      • Родион:

        а если сделать так, как вы описали в этой статье, оно будет работать? это ведь для поисковиков? чтобы результат поиска выводился правильно?

        • АлаичЪ:

          Это для поисковиков, верно. Но так как это хитрость и не реальный рейтинг, то Гугл уже прикрыл лавочку, не работает.

  77. Никита:

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

    — DLE 11.3 (можно и DLE 12.0)

    для Google, только по версии Schema.org

    Так как есть некоторая разница в исходном коде версий DLE...

    Очень прошу вас!