RUM-моніторинг продуктивності: Core Web Vitals, Grafana, алерти

RUM-моніторинг продуктивності: Core Web Vitals, Grafana, алерти

Розробка та обслуговування будь-яких видів сайтів:

Інформаційні сайти або веб-програми
Сайти візитки, landing page, корпоративні сайти, онлайн каталоги, квіз, промо-сайти, блоги, ресурси новин, інформаційні портали, форуми, агрегатори
Сайти або веб-програми електронної комерції
Інтернет-магазини, B2B-портали, маркетплейси, онлайн-обмінники, кешбек-сайти, біржі, дропшиппінг-платформи, парсери товарів
Веб-програми для управління бізнес-процесами
CRM-системи, ERP-системи, корпоративні портали, системи управління виробництвом, парсери інформації
Сайти або веб-програми електронних послуг
Дошки оголошень, онлайн-школи, онлайн-кінотеатри, конструктори сайтів, портали надання електронних послуг, відеохостинги, тематичні портали

Це лише деякі з технічних типів сайтів, з якими ми працюємо, і кожен із них може мати свої специфічні особливості та функціональність, а також бути адаптованим під конкретні потреби та цілі клієнта.

Послуги, які ми пропонуємо
Показано 1 з 1Усі 2062 послуг
RUM-моніторинг продуктивності: Core Web Vitals, Grafana, алерти
Простий
~1 день

Наші компетенції:

Часті запитання

Останні роботи

  • image_website-b2b-advance_0.webp
    Розробка сайту компанії B2B ADVANCE
    1422
  • image_web-applications_feedme_466_0.webp
    Розробка веб-додатків для компанії FEEDME
    1288
  • image_websites_belfingroup_462_0.webp
    Розробка веб-сайту для компанії БЕЛФІНГРУП
    984
  • image_ecommerce_furnoro_435_0.webp
    Розробка інтернет магазину для компанії FURNORO
    1250
  • image_crm_enviok_479_0.webp
    Розробка веб-додатків для компанії Enviok
    988
  • image_bitrix-bitrix-24-1c_fixper_448_0.webp
    Розробка веб-сайту для компанії ФІКСПЕР
    1001

RUM-моніторинг продуктивності: Core Web Vitals, Grafana, алерти

Відвідувачі йдуть, якщо сайт довго завантажується. Google штрафує за погані Core Web Vitals. Як заявляє Google Search Central, ці метрики — прямий фактор ранжування. Ми налаштовуємо RUM-моніторинг, щоб ви бачили реальні метрики з реальних користувачів, а не синтетику. За 7+ років ми провели оптимізацію для 40+ проєктів — кожного разу LCP знижувався щонайменше на 30%, INP покращувався на 25%, CLS стабілізувався до зеленої зони. Один із кейсів — інтернет-магазин електроніки з LCP 4.5 сек та CLS 0.3. Після впровадження моніторингу та подальшої оптимізації (ліниве завантаження, попереднє завантаження критичних ресурсів, усунення layout shift) LCP впав до 1.8 сек, CLS до 0.05. Трафік з Google виріс на 25% за місяць. Економія на залученні трафіку: ROI від впровадження RUM перевищує 5x за рахунок скорочення втрат на повільних сторінках. Зниження рекламного бюджету до 30% — реальний результат для наших клієнтів.

Чому Core Web Vitals критичні для SEO?

Це три метрики, що безпосередньо впливають на ранжування: LCP (Largest Contentful Paint — швидкість відображення основного контенту), INP (Interaction to Next Paint — чуйність на дії користувача) та CLS (Cumulative Layout Shift — стабільність верстки). Якщо хоча б одна в червоній зоні, сайт втрачає позиції. За даними наших проєктів, покращення Core Web Vitals корелює з ростом трафіку на 20–40% та зниженням відмов на 15% у середньому. Помилки на сайті коштують бізнесу до 30% трафіку — моніторинг допомагає їх виявити.

Проблема в тому, що браузери та пристрої різні. На MacBook з гігабітом метрики чудові, а на мобільному 3G в Індії — жахливі. Синтетика не покаже реальної картини. Тільки RUM (Real User Monitoring) дає правду.

Як налаштувати RUM-моніторинг за годину?

Встановіть бібліотеку web-vitals та надсилайте метрики на свій ендпоінт. Приклад коду:

<script type="module"> import { onLCP, onINP, onCLS, onFCP, onTTFB } from 'https://unpkg.com/web-vitals@3/dist/web-vitals.attribution.js'; function sendToAnalytics({ name, value, rating, navigationType }) { navigator.sendBeacon('/api/vitals', JSON.stringify({ metric: name, value: Math.round(name === 'CLS' ? value * 1000 : value), rating, // 'good' | 'needs-improvement' | 'poor' url: location.pathname, connection: navigator.connection?.effectiveType ?? 'unknown', deviceMemory: navigator.deviceMemory ?? 0, ts: Date.now(), })); } onLCP(sendToAnalytics); onsINP(sendToAnalytics); onCLS(sendToAnalytics); onFCP(sendToAnalytics); onTTFB(sendToAnalytics); </script> 

Це база. Але ще потрібно: endpoint для прийому, зберігання в ClickHouse, дашборди в Grafana, алерти при деградації. Все це ми робимо під ключ.

Деталі зберігання метрик ClickHouse відмінно підходить для timeseries-даних. Ми використовуємо двигун MergeTree з партиціонуванням по днях. Приклад схеми: ```sql CREATE TABLE vitals ( metric String, value Float32, rating String, url String, connection String, deviceMemory UInt8, ts DateTime ) ENGINE = MergeTree PARTITION BY toYYYYMMDD(ts) ORDER BY (metric, ts); ``` Індекси по метриці та часу дозволяють швидко будувати p95 та p75.

Які проблеми вирішує моніторинг?

  • Повільний сервер — TTFB > 800ms. RUM покаже, де сервер гальмує.
  • Неоптимізовані зображення — головна причина поганого LCP.
  • Сторонні скрипти — аналітика, карти, віджети блокують рендеринг.
  • Витоки при ререндері — зайві оновлення DOM псують INP.
  • Зсуви макету — зображення без розмірів, динамічне завантаження контенту.

Порівняння методів моніторингу

Характеристика RUM (Real User) Синтетичний (Lighthouse)
Дані Від реальних користувачів Імітація в контрольованому середовищі
Охоплення Всі пристрої/з'єднання Обмежений налаштуваннями
Актуальність Поточний стан у продакшені Моментальний зріз
Деталізація За URL, сегментами, часом Одна метрика за прогін
Мета Моніторинг та алерти Дебаг та аудит

RUM у 5 разів точніше відображає фактичний досвід користувачів, тому алерти на основі RUM дозволяють швидше реагувати на проблеми.

Що входить в роботу?

  • Документація по архітектурі моніторингу та інструкція для команди.
  • Доступи до дашбордів та системи алертів.
  • Навчання співробітників роботі з метриками та реакціям на інциденти.
  • Підтримка протягом місяця після впровадження: коригування порогів, додавання сегментів.

Процес впровадження моніторингу під ключ

  1. Аудит поточної архітектури та метрик.
  2. Встановлення RUM-скрипту з сегментацією по сторінках.
  3. Розробка API-ендпоінту збору в ClickHouse (або іншу БД).
  4. Створення дашбордів у Grafana з p75, p95, сегментацією по пристрою/з'єднанню.
  5. Налаштування алертів (Grafana Alerting) при виході метрик за пороги.
  6. Інтеграція сповіщень (Telegram, Slack, PagerDuty).
  7. Документація та навчання команди.
  8. Підтримка протягом місяця.

Порогові значення метрик:

Метрика Good Needs improvement Poor
LCP ≤ 2500ms 2500–4000ms > 4000ms
INP ≤ 200ms 200–500ms > 500ms
CLS ≤ 0.1 0.1–0.25 > 0.25
FCP ≤ 1800ms 1800–3000ms > 3000ms
TTFB ≤ 800ms 800–1800ms > 1800ms

Типові помилки та як їх уникнути

Багато хто фокусується тільки на LCP, забуваючи про CLS та INP. Інша часта помилка — відсутність сегментації по сторінках: дані змішуються, і незрозуміло, де проблема. Налаштовуйте алерти на p75 та p95, а не тільки на середні значення — так ви швидше помітите деградацію.

Зв'яжіться з нами для безкоштовного аудиту — ми покажемо, які метрики зіпсовані та як їх виправити. Замовте впровадження RUM-моніторингу з гарантією покращення Core Web Vitals. Отримайте консультацію з оптимізації — розберемо ваш поточний стек та запропонуємо план дій.