Origin Summary

Origin Summary — это один из ключевых отчётов в Lighthouse, который предоставляет агрегированные метрики производительности, доступности, лучших практик, SEO и PWA для всего домена или источника (origin). В отличие от стандартного аудита отдельных страниц, Origin Summary фокусируется на совокупных показателях и тенденциях, позволяя анализировать качество веб-сайта в целом.

Основные принципы работы

Origin Summary выполняет агрегацию данных из множества страниц одного домена. При этом используются как данные, полученные с помощью Lighthouse на стороне клиента, так и данные из Chrome User Experience Report (CrUX), если они доступны.

  • Агрегированные метрики: Lighthouse собирает показатели из нескольких URL и формирует средние значения.
  • Использование CrUX: интеграция с CrUX позволяет оценивать реальный пользовательский опыт (Real User Metrics), включая метрики LCP, FID и CLS.
  • Фокус на источнике: все показатели привязаны к домену, а не к конкретной странице, что даёт возможность отслеживать общую производительность сайта.

Метрики Origin Summary

Origin Summary включает следующие ключевые категории метрик:

  1. Performance (Производительность)

    • First Contentful Paint (FCP) — время до первого отображения контента.
    • Largest Contentful Paint (LCP) — время до загрузки самого крупного блока контента.
    • Cumulative Layout Shift (CLS) — оценка стабильности визуальной разметки.
    • Total Blocking Time (TBT) — суммарное время блокировки основного потока. В Origin Summary эти метрики усредняются по всем проанализированным страницам источника.
  2. Accessibility (Доступность)

    • Оценка семантики HTML, наличие атрибутов alt для изображений, правильная структура заголовков.
    • Учитываются ошибки и предупреждения, встречающиеся на большинстве страниц.
  3. Best Practices (Лучшие практики)

    • HTTPS, отсутствие уязвимостей, правильное использование API.
    • В Origin Summary выявляются системные проблемы, характерные для всего домена.
  4. SEO

    • Метатеги, заголовки, наличие карты сайта, корректная индексация страниц.
    • Агрегированный подход позволяет определить общие SEO-проблемы на уровне домена.
  5. Progressive Web App (PWA)

    • Проверка возможностей офлайн-доступа, установки на устройство, корректной работы service worker.
    • Origin Summary показывает, насколько PWA-функциональность внедрена на сайте в целом.

Формат данных

Origin Summary возвращает отчёт в виде JSON-объекта. Ключевые поля включают:

  • id — уникальный идентификатор аудита.
  • initialUrl — URL, с которого был запущен аудит (не обязательно домен).
  • score — усреднённая оценка для каждой категории (0–1, где 1 — наивысшая оценка).
  • metrics — объект с усреднёнными числовыми показателями (FCP, LCP, CLS, TBT).
  • audits — массив конкретных проверок, выявленных на уровне источника.

Пример структуры:

{
  "id": "origin-summary",
  "initialUrl": "https://example.com",
  "score": {
    "performance": 0.78,
    "accessibility": 0.95,
    "best-practices": 0.88,
    "seo": 0.91,
    "pwa": 0.60
  },
  "metrics": {
    "FCP": 1500,
    "LCP": 2500,
    "CLS": 0.04,
    "TBT": 120
  },
  "audits": [
    {
      "id": "uses-https",
      "score": 1,
      "description": "Все страницы используют HTTPS"
    }
  ]
}

Применение в JavaScript

Для генерации Origin Summary через Lighthouse используется Node.js API. Пример вызова:

const lighthouse = require('lighthouse');
const chromeLauncher = require('chrome-launcher');

async function runOriginSummary(url) {
  const chrome = await chromeLauncher.launch({chromeFlags: ['--headless']});
  const options = {
    logLevel: 'info',
    output: 'json',
    onlyCategories: ['performance','accessibility','best-practices','seo','pwa'],
    formFactor: 'desktop',
    port: chrome.port,
    auditMode: true
  };

  const runnerResult = await lighthouse(url, options);
  const originSummary = runnerResult.lhr.originSummary;

  await chrome.kill();
  return originSummary;
}

runOriginSummary('https://example.com').then(console.log);

Особенности кода:

  • auditMode: true используется для аудита без необходимости посещения каждой страницы вручную.
  • originSummary в объекте runnerResult.lhr содержит агрегированные показатели домена.
  • Возможна фильтрация по категориям через onlyCategories.

Преимущества использования Origin Summary

  • Позволяет отслеживать тренды производительности на уровне всего сайта.
  • Выявляет системные ошибки, которые повторяются на множестве страниц.
  • Интеграция с CrUX предоставляет данные реальных пользователей, а не только лабораторные метрики.
  • Удобно использовать для отчётов и мониторинга в CI/CD процессах.

Ограничения

  • Данные CrUX доступны не для всех доменов и могут быть неполными.
  • Агрегированные показатели не показывают проблем конкретной страницы, только средние значения.
  • Для крупных сайтов с тысячами страниц требуется выборка, иначе аудит может быть слишком тяжёлым и длительным.

Origin Summary в Lighthouse — мощный инструмент для комплексной оценки качества сайта на уровне домена, сочетая лабораторные измерения с данными реального пользовательского опыта.