Репутация: рейтинги и отзывы
Содержание
Страница /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 площадок взяты из документации и проверены только на подставных ответах. Если площадка вернёт иное, ошибка покажется на странице подключения и не остановит остальные площадки.