Безлимитный хостинг на сверхбыстрых SSD-дисках от 57р в месяц   •   Реклама
8 358 просм
90 комм
Поделиться:

Микроразметка рейтинга полной новости в DLE

Не так давно один из читателей нашего сайта попросил рассказать о том, как правильно сделать микроразметку рейтинга Schema.org для CMS DataLife Engine. Поскольку я нашел немного времени, то хотел бы уделить его как раз этой теме.

Для чего вообще нужна эта микроразметка?

У поисковых систем существует такая штука, как сниппет (Rich snippets) – более подробное описание веб-страницы, которое визуально привлекает внимание пользователей и увеличивает доверие с их стороны.

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

Для примера показываю вам, как сайт выглядит без микроразметки рейтинга:

Микроразметка рейтинга полной новости в DLE

А это пример нашего сайта с микроразметкой рейтинга:

Микроразметка рейтинга полной новости в DLE

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

Установка микроразметки на сайт в DataLife Engine

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

В отличие от других существующих инструкций по этой теме в Интернете, наша на 100% рабочая и не зависит от типа выбранного рейтинга.

1. Первое, что вам необходимо сделать – это подключиться к вашему сайту по FTP и открыть файл, отвечающий за вид полной новости (если вы ничего не меняли – это файл fullstory.tpl в папке вашей темы).

Микроразметка рейтинга полной новости в DLE

2. Далее в самый его верх вы вставляете:

<div itemscope itemtype="http://schema.org/Product">

После чего здесь же, в самый низ, вставляете:

<meta itemprop="name" content="{title}" />

	<div itemprop="aggregateRating" itemscope="" itemtype="http://schema.org/AggregateRating">
	
		<meta itemprop="bestRating" content="5" />
		<meta itemprop="ratingValue" content="{rating_nums}" />
		<meta itemprop="ratingCount" content="{vote-num}" />

	</div>
	
</div>

Здесь «5» – это тип шкалы (в нашем случае – 5-балльная шкала), {rating_nums} – оценка рейтинга, а {vote-num} – количество людей, оценивших материал.

Сохраняете изменения и отправляете файл обратно на сайт.

3. Следующим этапом будет небольшая правка кода движка. Откройте файл show.full.php в папке /engine/modules/, найдите строчку:

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

и сразу после нее вставьте:

$tpl->set("{rating_nums}", str_replace(",", ".", round($row["rating"] / max(1, $row["vote_num"]), 1)));

4. Чистите кэш сайта. Установка закончена.

Теперь вам осталось подождать, пока поисковые роботы переиндексируют ваш сайт (1–2 недели), после чего вы сможете наблюдать рейтинг ваших материалов в поисковой выдаче.

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

Если этого не произошло – пишите об этом в комментариях, постараюсь расширить разметку для исправления ошибок в рамках разумного.

90
комментариев
Гостям запрещено участвовать в обсуждениях сайта. Авторизуйтесь, чтобы расширить привилегии гостевого посещения и получить необходимую помощь от сообщества Pandoge.
Проверенный7

Артем Мáлков, Спасибо большое,исправил.

1 дек в 22:08
  • 1
Администратор755

Павел Лукашенко, найдите комментарий по фразе vote-num-id-

В нем есть ответ на Ваш вопрос.

1 дек в 21:35
  • 0
Проверенный7

Артем Мáлков, 0" /> это появилось, а вот ссылка на страницу https://ruapk.ru/game/adventure/12-temple-run-2.html (не реклама)

1 дек в 21:10
  • 0
Администратор755

Павел Лукашенко, здравствуйте.

Лишние символы какого плана?

1 дек в 20:16
  • 0
Проверенный7

Артем Мáлков, здравствуйте, а если я использую такой метод? В полной новости появились лишние символы

$tpl->set("{rating_nums}", str_replace(",", ".", number_format($row["rating"] / max(1, $row["vote_num"]), 1)));
1 дек в 20:09
  • 0
Администратор755

Степан Карахан, Здравствуйте.

1. У Вас не обрабатывается тег {rating_nums}. Почему - не могу сказать. Нужно смотреть код.

2. Была небольшая ошибка в инструкции - поправили. Спасибо за замечание.

9 дек в 23:07
  • 0
Проверенный11

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

Внедрил разметку,как написано на сайте.Но валидатор ругается :

Сайт:https://horod.info/

DLE 13

Ссылка на валидатор :https://search.google.com/structured-data/testing-tool#url=https%3A%2F%2Fhorod.info%2Fdimsadhorod%2F1526-posadka-rozmnozhennya-ozhini-opis.html

Помогите.

9 дек в 21:07
  • 0
Проверенный8

По вп будет? У меня она раньше в поиске была видна, сейчас гугл убрал(

4 дек в 17:56
  • 0
Администратор755

Илон Маск, Здравствуйте.

Не так давно Google внес изменения в отображение некоторой разметки в поиске. Об этом знаем, в ближайшие 2 дня обновим статью.

1 дек в 14:13
  • 0
Пользователь1

Всем низкий поклон! После недавнего времени вылетело из поиска google звезды рейтинга. После проверки микро разметки появилась вот такая ошибка. Thing – недопустимый тип целевого объекта для свойства itemReviewed. Кто нибудь сталкивался?

https://search.google.com/structured-data/testing-tool/#url=https%3A%2F%2Ftorrent-igruha.ru%2F1132-gta-5-na-slabyy-pk.html

1 дек в 13:31
  • 1
Администратор755

baxa, Здравствуйте. Дайте ссылку на результат проверки разметки в гугле.

10 дек в 03:36
  • 0
Пользователь1

здрасте артём мне тоже такое ошибка

<div temprop="aggregateRating" itemscope="" itemtype="http://schema.org/AggregateRating">

там написано гоогле структура

((Ваша оценка вне пределов диапазона по умолчанию. Необходимо указать самое высокое и самое низкое значения.))

Артем Мáлков,

9 дек в 22:01
  • 0
Администратор755

Николай Давид, здравствуйте!

Почитайте 5-ю страницу комментариев. Возможно там есть полезная для Вас информация.

13 дек в 00:32
  • 0
Проверенный5

Здравствуйте, подождал месяц, никакая разметка в поисковике не появилась.

13 дек в 00:15
  • 0
Администратор755

Валерий Павленко, вероятнее всего где-то допустили ошибку.

speedbar здесь никак не затрагивается.

12 дек в 23:51
  • 0
Пользователь1

Спасибо!

Только после таких действий не работают ссылки в speedbar.

12 дек в 19:09
  • 0
Проверенный11

Понял.Спасибо.

10 дек в 13:02
  • 0
Администратор755

Степан Карахан, возможно сайт еще молодой для сниппета. Ошибок в разметке я не увидел.

10 дек в 12:56
  • 0
Проверенный11

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

Сайту 5 месяцев.

9 дек в 18:02
  • 0
Администратор755

Степан Карахан, здравствуйте.

Сайт/домен молодой?

8 дек в 22:46
  • 0
Проверенный11

Здравствуйте,Артем.Сделал микроразметку рейтинга сайта :https://horod.info .Прошел месяц,но изминений в сниппете нет. Где ошибка?

8 дек в 20:51
  • 0
Проверенный11

Артем,спасибо за подсказку.Разобрался.

10 дек в 15:52
  • 0
Проверенный11

Артем,вкладки "Дополнительно" в добавлении/редактировании новости нет.

10 дек в 15:02
  • 0
Администратор755

Степан Карахан, здравствуйте.

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

10 дек в 14:50
  • 0
Проверенный11

Артем,здравствуйте!

Как прописать ключевые слова для полной новости на dle ?

10 дек в 14:00
  • 0
Администратор755

Павел Коновалов, здравствуйте.

Соц. сети указаны в правом верхнем углу под поиском.

8 дек в 22:34
  • 0
Пользователь1

Артем не могли бы вы мне написать вк? https://vk.com/pavel_konovalo

8 дек в 22:01
  • 0
Проверенный11

Артем,ошибок нет.Большое Вам спасибо!

8 дек в 14:28
  • 0
Администратор755

Степан Карахан, да, сайт видел. Сделали что написал выше?

8 дек в 00:45
  • 0
Администратор755

Степан Карахан, код, что я написал выше, переместите так, чтобы он был после строки:

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

и потом обязательно очистите кэш.

7 дек в 21:57
  • 0
Администратор755

Степан Карахан, Дайте ссылку на сайт.

7 дек в 21:45
  • 0
Проверенный11

Артем,большое спасибо.! Но одна ошибка еще осталась :

AggregateRating 1 ОШИБКА

@type

AggregateRating

bestRating

5

ratingValue

5

cancelratingCount

0 (Значение параметра ratingCount должно быть положительным.)

itemReviewed

@type

Thing

name

Як приготувати курячий шашлик в духовці

Помогите.

7 дек в 21:30
  • 0
Администратор755

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

Либо, после строки:

$tpl->set("{rating_nums}", str_replace(",", ".", round($row["rating"] / max(1, $row["vote_num"]), 1)));

добавьте:

if($row['vote_num'] == 0) { // Если оценок нет

$tpl->set("{rating_nums}", "5"); // Фейковая средняя оценка, в нашем случае "5".

$tpl->set("{vote-num}", "4"); // Фейковое количество оценок, в нашем случае "4".

}

7 дек в 20:55
  • 0
Проверенный11

Артем,спасибо.Получилось. И ещо один вопрос : При проверке структурированых даных выдаут ошибку :

AggregateRating2 ОШИБКИНЕТ ПРЕДУПРЕЖДЕНИЙexpand_less

@type

AggregateRating

bestRating

5

ratingValue

0

cancelratingCount

0 (Значение параметра ratingCount должно быть положительным.)

itemReviewed

@type

Thing

name

Кращі сорти чорної смородини для саду

cancel

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

Это нормально?

7 дек в 19:11
  • 0
Администратор755

Степан Карахан, откройте файл show.full.php в папке /engine/modules/.

В нем строку:

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

замените на:

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

После чего, очистите кэш сайта.

7 дек в 16:18
  • 0
Проверенный11

Артем,а где найти этот код :<meta itemprop="ratingCount" content="<span id="vote-num-id-14">2</span>">

7 дек в 14:26
  • 0
Администратор755

Николай Давид, статью обновили. Пробуйте.

23 дек в 21:33
  • 0
Администратор755

Николай Давид, вероятнее всего это из-за типа product. Сегодня - завтра поправим статью.

21 дек в 16:59
  • 0
Проверенный5

Прошу прощения,разобрался проблему устранил.

Другой вопрос при проверке структурных данных в гугл выдает след. ошибки http://prntscr.com/mo6dnq , это нормально?

21 дек в 16:51
  • 0
Администратор755

Николай Давид, через комментарии или форму обратной связи.

21 дек в 16:03
  • 0
Проверенный5

У меня нет прав, чтобы отправить вам тут сообщение

21 дек в 14:16
  • 0
Администратор755

Николай Давид, пришлите сообщением FTP от сайта + ссылку на сайт.

21 дек в 11:53
  • 0
Проверенный5

Отключил, очистил кэш, не помогло((

21 дек в 09:14
  • 0
Администратор755

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

После чего - очистите кэш.

21 дек в 02:00
  • 0
Проверенный5

Добавил все по описанию, в конце страницы вылазит 1"> подсажите, как исправить?

http://prntscr.com/mnvo6j

21 дек в 00:45
  • 0
Администратор755

DeN, обратите внимание на блок "Рекомендуем к просмотру"

28 дек в 17:24
  • 0
Гости679

А если третий вариант используется "Нравится или не нравится"? Как тут быть?

27 дек в 16:01
  • 0
Гости679

По всей видимости в 13.0 можно просто пропустить 3 и 4 пункт т.к. в рейтинге уже есть стоки из 3 пункта.

17 дек в 05:21
  • 0
Администратор755

oxideome, вообще актуально, но не смотрел как устроена 13 версия

11 дек в 22:08
  • 0
Гости679

Актуален на 13.0? Там вроде есть микроразметка.cool

11 дек в 20:22
  • 0
Гости679

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

27 дек в 18:26
  • 0
Администратор755

Artur, если я не ошибаюсь - то да. Гугл понимает и 10-ти бальный рейтинг

27 дек в 00:57
  • 5
Гости679

Здравствуйте! А если рейтинг 10 звезд, можно сделать микроразметку?

26 дек в 17:22
  • 0
Администратор755

Fox, для того, чтобы в поиске появился рейтинг - этого достаточно. А так, можно еще разметку самого материала сделать, автора, изображений, комментариев и много чего еще smiley

15 дек в 00:05
  • 9
Гости679

Извините все нормально, это я просто скопировал код и пытался проверить, а когда проверяю страницу по ссылке, то все нормально.

Подскажите, а больше ничего не нужно в микроразметке, например комментарии, или что-то еще?

15 дек в 00:00
  • 0
Администратор755

Fox, а что у вас выводит {vote-num}?

14 дек в 23:21
  • 9
Гости679

Спасибо, нашел. А на второй вопрос по-поводу - {vote-num} (Значение параметра ratingCount должно быть целым числом.)

14 дек в 22:26
  • 0
Администратор755

Fox, на второй странице комментариев есть ответ на ваш вопрос.

14 дек в 22:12
  • 6
Гости679

Здравствуйте. Помогите пожалуйста, у меня после всего проделанного в fullstory вылезло вот это - 3">

Как это убрать?

И когда проверяю в инструменте проверки google, то он мне пишет - {vote-num} (Значение параметра ratingCount должно быть целым числом.)

14 дек в 22:02
  • 0
Администратор755

Виктор, В ближайшее время напишем подробную статью

23 дек в 03:31
  • 6
Гости679

Здравствуйте. Было бы интересно сделать рейтинг с микроразметкой в виде лайков и дизлайков. Если можете сделайте пожалуйста статью на эту тему. Или напишите в комментариях как это можно реализовать. Спасибо.

22 дек в 14:46
  • 1
Администратор755

Никита, Здравствуйте. Для всех типов рейтинга инструкция однотипна. Единственное что, если я не ошибаюсь, во 2 и 3 типе рейтинга оценка выводиться не по пятибалльной шкале (как это необходимо для микроразметки), а в виде системы лайков\дизлайков. То есть рейтинг статьи может быть +30, или -12. К сожалению, такой тип рейтинга не допускается для микроразметки и необходимо использовать 1 тип - оценка.

Что касается обертки <span> - выше, в комментариях, есть ответ на ваш вопрос.

Хотя, пока я писал этот комментарий, у меня появилась идея (небольшой хак) как можно сделать микроразметку и на этих типах рейтинга. Но рейтинг в таком случае (для разметки) будет всегда один, например, оценка 5 при положительной оценке материала, и 0 при отрицательной.

Если вам это интересно и необходимо - отпишитесь, напишу статью на эту тему smiley

20 дек в 03:31
  • 5
Гости679

При 3-м типе рейтинга, объясните пожалуйста, как выводить {vote-num}, если он оборачивается <span> ?

Вообще опубликуйте пожалуйста, ПОЛНУЮ инструкцию в случае 3-го типа рейтинга.

19 дек в 20:30
  • 0
Администратор755

Артём, да, можно и на таком. Только в вашем случае, максимально возможная оценка будет не 5 а 10.

24 дек в 04:08
  • 5
Гости679

Артём, а эта разметка применима только для рейтинга со звёздами? Или и на такой можно ставить? http://joxi.ru/gmv8G89FLRyRoA glass

24 дек в 02:29
  • 1
Гости679

ааа))) Спсибо Артем. Выручаете)

23 дек в 16:38
  • 0
Администратор755

Денис, а с чего Вы решили, что не работает? Вы смотрели исходный код?

Этот скрипт меняет рейтинг только для разметки - и в поиске будет видеться этот рейтинг. Если вы хотите сделать и визуальный рейтинг то попробуйте следующее:

Найти строку

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

И заменить ее на

if($row['vote_num'] == "0") { // Если оценок нет - ставим оценку «4»

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

} else {

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

}

23 дек в 16:28
  • 11
Гости679

Заменил, но толку нет. Не выставился рейтинг.

23 дек в 15:48
  • 1
Администратор755

Денис, здравствуйте. Можно немного схитрить и присвоить рейтинг тем новостям, у которых текущий рейтинг 0.

Строку

$tpl->set('{rating_nums}', str_replace(",", ".", round($row['rating'] / max(1, $row['vote_num']), 1)));

Замените на

$rating_numb = str_replace(",", ".", round($row['rating'] / max(1, $row['vote_num']), 1));

if($rating_numb == 0) {

$rating_numb = "4"; // У всех новостей без оценки будет 4

}

$tpl->set('{rating_nums}', $rating_numb);

Соответственно когда новость оценят - будет тот рейтинг, который выставили.

23 дек в 15:01
  • 5
Гости679

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

23 дек в 11:17
  • 0
Администратор755

Денис, подключитесь к сайту по FTP. Откройте файл show.full.php в папке /engine/modules/

Найдите строку:

$tpl->set( '{vote-num}', "<span id=\"vote-num-id-".$row['id']."\">".$row['vote_num

9;]."</span>" );

и замените ее на:

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

Сохраните изменения и отправьте файл обратно на сайт.

Очистите кэш на сайте. После проделанной работы, проблема должна решиться wink

20 дек в 03:33
  • 6
Гости679

Не пойму все равно.Где убрать спаун

19 дек в 23:19
  • 0
Администратор755

Денис, почитайте комментарии с первой страницы - там есть решение вашей проблемы.

19 дек в 23:16
  • 5
Гости679

Теперь проблемка на сайте, появилось в конце 2"> Как исправить напишите

19 дек в 21:54
  • 0
Администратор755

Gh8st, спасибо. Исправили статью.

16 дек в 23:58
  • 5
Администратор755

Rustam, всего скорее, под статусом, подразумевается возраст сайта, тиц, посещаемость, история домена, узнаваемость сайта.

16 дек в 23:50
  • 6
Гости679

Артем, А какойкакой статус? Мой сайт по многим запросам в топе, это не статус? ИлиИли как я понял это большое время сайту?

16 дек в 20:36
  • 0
Администратор755

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

16 дек в 20:08
  • 5
Гости679

Я так понял что эта микроразметка только для гугл? ото смотрю в яндексе её не видно совсем, хотя в новости есть рейтинг а в яндексе нет :(

16 дек в 19:39
  • 1
Гости679

Решил проверить в гугле разметку и вот оно что :) http://prntscr.com/epxfnl

Добавьте в статью, может пригодится кому-то.

<span itemprop="name">%название%</span>

29 дек в 17:41
  • 1
Гости679

Артем Мáлков, спасибо за помощь в ВК.

9 дек в 19:43
  • 0
Администратор755

Gh8st, в среднем 1 - 2 недели, но бывает и быстрее. Да, для 3 типа рейтинга наблюдал небольшой баг из за обертки span. И посмотрите, что у вас в исходном коде. Если вы используете 3 тип рейтинга, строчку из последнего пункта Вам нужно заменить на

if($row['rating'] == 0 ) { $news_rating = $row['rating']; } else { $news_rating = "5"; }

$tpl->set( '{rating_nums}', str_replace(",",".", $news_rating));

9 дек в 14:41
  • 8
Гости679

У меня тоже вылезло "> убрал дефолтный span, получилось так.

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

Теперь буду ждать 1-2 недели.

ps. извиняюсь за невнимательность :)

9 дек в 13:47
  • 1
Гости679

Спасибо. Добавил себе данную микроразметку. Как скоро поисковик заметит нововведения и отобразит на страницах результата поиска?

9 дек в 13:27
  • 0
Гости679

Отписал а в ВК

9 дек в 01:06
  • 0
Администратор755

rustam, здравствуйте! В исходном коде сайта у вас следующее:

<meta itemprop="ratingCount" content="<span id="vote-num-id-14">2</span>">

Как вы видите, двойка заключена в <span></span> что не верно с точки зрения разметки. Уберите <span></span> и все будет о.к. Если нужна помощь - пишите нам Вконтакте, и предоставив доступы - сможем помочь решить проблему.

9 дек в 00:47
  • 9
Гости679

У меня проблемка небольшая на сайте теперь вылезла в самом незу вот тут /novinki-2017/14-krik-1996.html в конце 2"> такая штучка

8 дек в 20:48
  • 0
Гости679

Полезная штуковина) Делает особенной новость даже на поисковике. Спасибо =)

Побольшеб таких полезных советов, они маленькие но очень значительные)

3 дек в 19:12
  • 0
Администратор755

Александр, да, это она :)

23 дек в 22:24
  • 10
Гости679

Это микроразметка рейтинга

23 дек в 20:40
  • 1
Подняться наверх
«Pandoge» - помощник веб-мастера