▤ Руководства

Репутация: рейтинги и отзывы

Содержание

Страница /reviews и /reviews/<сайт>. SEOMaster — диспетчерская: он не собирает отзывы по всему интернету, а берёт сводку у площадок и показывает, что изменилось и что делать.

Площадки

РежимПлощадкиЧто получаем
API (нужен ключ площадки)Google (Places API New), 2ГИС (Catalog API), Yelp (Fusion), Trustpilot, Tripadvisor (Content API)рейтинг и число отзывов; у Google, Yelp, Trustpilot и Tripadvisor ещё свежие отзывы (у Google/Yelp/Tripadvisor — несколько последних: это ограничение их API)
Разбор страницы (запасной) / вручнуюЯндекс Карты/Бизнес, Отзовик, IRecommend, Zoon, Yell, Flamp, Booking, G2, Capterra, BBBрейтинг и число отзывов, которые вы вносите со страницы площадки; тексты — CSV из кабинета

Разбор страниц (запасной способ)

Для любой площадки можно указать ссылку на её страницу. Порядок обновления: API (если есть ключ и идентификатор) → разбор страницы (если API нет, нет ключа или он не ответил) → ручной ввод.

Что читается со страницы, по порядку: JSON-LD AggregateRating (с отзывами из review, если они есть) → микроразметка itemprop → данные, встроенные в код страницы (Яндекс Карты ratingData, 2ГИС general_rating, общие ключи) → описание страницы («4,7 ★ · 382 отзыва»; самый слабый путь). Шкала приводится к 5, числа вида «1 382» разбираются.

Предупреждение. Площадки меняют вёрстку, прячут данные до выполнения JS и блокируют автоматические запросы (коды 403/429/503). Разбор может перестать работать без предупреждения. Тогда:

  • страница сайта покажет ошибку с причиной (код ответа, «рейтинг не найден»), остальные площадки обновятся;
  • если подключён «Рендеринг JS» и не исчерпан дневной лимит, страница будет прочитана после выполнения JS;
  • рейтинг можно внести вручную; он ложится в ту же динамику.

Защита: допускаются только адреса самой площадки (http/https, без порта и логина), редиректы проверяются на каждом шаге, запросы идут через защищённый HTTP-клиент SEOMaster с честным User-Agent. SEOMaster не маскируется под браузер и не обходит защиту сайтов. Условия площадок могут запрещать автоматический сбор — проверьте их для своего случая; раз в сутки на привязку приходится один запрос.

Ключи вводятся на /reviews (по одному на площадку), хранятся зашифрованными в одной записи подключения reviews. Идентификатор площадки для сайта — на странице сайта: Place ID (Google), ссылка на фирму (2ГИС), ссылка yelp.com/biz/…, домен (Trustpilot), ссылка на объект (Tripadvisor). Идентификатор, найденный по домену, запоминается.

Что хранится

  • rp_src — привязка сайта к площадке;
  • rp_days — рейтинг (в сотых долях звезды) и число отзывов по дням, 180 дней;
  • rp_reviews — последние 60 отзывов на площадку: оценка, текст до 600 знаков, признак ответа владельца (1 — есть, 0 — нет, −1 — неизвестно; Google и Yelp ответов не отдают).

Кнопка «Отвязать» удаляет привязку и все данные по ней. Данные входят в выгрузку и удаление аккаунта.

Как считается

  • Неделя: последнее значение сравнивается с точкой 7–14 дней назад (ближайшей к 7); если такой нет — с любой старше 3 дней. Внесённые вручную значения за разные дни складываются в динамику так же.
  • Негатив: отзывы в 1–2 звезды. Всплеск — не меньше 3 за последние 5 дней и минимум вдвое больше, чем в предыдущие 5. Считается по выборке, а не по всем отзывам площадки.
  • Темы жалоб: поиск корней слов (доставка, сроки, поддержка, качество, цена и оплата, возврат, персонал, чистота, сайт и приложение) в текстах негативных отзывов. Это подсказка, а не понимание текста.
  • Оценка 0–100: средний рейтинг площадок с весом √(число отзывов), приведённый шкалой 2,5 → 0 и 5 → 100, минус 2 за каждый негативный отзыв без ответа (не больше 10) и минус 5 за каждую площадку с падением рейтинга (не больше 10). Это ориентир для сравнения сайта с самим собой во времени.
  • Падение рейтинга: −0,2 и больше за неделю при 20+ отзывах (на малой выборке одна оценка двигает рейтинг слишком сильно).

События

reviews-drop (повтор не чаще раза в 72 ч) и reviews-negative (раз в 48 ч) → вид reputation.drop, категория «Репутация», инцидент «Рост негативных отзывов».

Cron

25 5 * * * php /var/www/seomaster/bin/reviews.php — раз в сутки обновляет площадки с API. Вручную внесённые значения cron не затрагивает; события по ним создаются при записи.

CSV отзывов

Нужны столбцы «Оценка» (1–5) и «Дата». По желанию «Отзыв», «Ответ» (непустой — ответ есть) и «ID». Кодировки UTF-8, UTF-16, Windows-1251; разделители , ; TAB |. Повторная загрузка не дублирует отзывы.

Что не проверено

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