JSON структура

Lighthouse — это инструмент для автоматизированного аудита веб-страниц, который генерирует отчёты в формате JSON. Этот формат обеспечивает структурированное хранение результатов анализа и позволяет программно обрабатывать данные для дальнейшей интеграции, визуализации или автоматизации процессов улучшения качества сайта.

Основные компоненты JSON-отчета

JSON-структура отчёта Lighthouse состоит из нескольких ключевых объектов:

  1. lhrVersion Отражает версию Lighthouse, которая использовалась для проведения анализа. Полезно для совместимости и корректной интерпретации данных.

  2. userAgent и environment

    • userAgent содержит строку User-Agent браузера, используемого для анализа.
    • environment описывает окружение выполнения, включая версию Node.js и браузера, настройки сети и устройства.
  3. requestedUrl и finalUrl

    • requestedUrl — URL, который был запрошен пользователем или скриптом.
    • finalUrl — URL после всех перенаправлений. Эти поля важны для отслеживания корректности маршрутизации и редиректов.
  4. audits Центральный объект отчёта. Каждый аудит представлен ключом с уникальным идентификатором и объектом, содержащим подробные сведения:

    • id — идентификатор аудита.
    • title — читаемое название проверки.
    • description — описание проверки и её цели.
    • score — числовой или булев результат проверки (0–1).
    • displayValue — человекочитаемый результат, например “2.3s”.
    • details — дополнительная информация, может содержать таблицы, списки ресурсов, трассировки производительности.
  5. categories Категории группируют аудиты по направлениям, например, «Performance», «Accessibility», «Best Practices», «SEO», «PWA». Каждая категория содержит:

    • title — название категории.
    • score — агрегированный результат по всем аудита этой категории.
    • auditRefs — массив ссылок на отдельные аудиты с указанием их веса и соответствия категории.
  6. runWarnings Массив предупреждений, которые возникли во время аудита. Эти предупреждения могут быть связаны с ошибками сети, политиками CORS или нестабильной загрузкой ресурсов.

  7. timing Объект с метриками времени выполнения аудита, включая старт анализа, время выполнения скриптов и завершение всех проверок.

Форматирование и вложенность

JSON-структура отчёта имеет строгую иерархию. Внутри объекта audits каждая проверка может содержать объект details, который в зависимости от типа аудита может иметь разные свойства:

  • type: "table" — таблица данных, включающая массив items с объектами, представляющими строки таблицы.
  • type: "filmstrip" — последовательность кадров страницы в процессе загрузки для визуализации производительности.
  • type: "opportunity" — рекомендации по оптимизации с указанием потенциальной экономии времени загрузки.

Примеры использования JSON Lighthouse

  1. Программный анализ производительности С помощью Node.js и парсинга JSON можно автоматически собирать показатели Largest Contentful Paint (LCP), Total Blocking Time (TBT) и Cumulative Layout Shift (CLS) для мониторинга качества веб-страниц.

  2. Автоматическая генерация отчетов На основе JSON создаются HTML-отчёты, графики или дашборды. Важно корректно обрабатывать массивы auditRefs и items для визуализации всех деталей.

  3. Интеграция с CI/CD JSON позволяет проверять качество сайта при каждом деплое. Сценарии могут сравнивать текущий отчёт с предыдущим, выявлять ухудшение показателей и предотвращать публикацию изменений, нарушающих стандарты.

Рекомендации по работе с JSON Lighthouse

  • Использовать строгую проверку структуры через схемы JSON, чтобы исключить ошибки при обработке.
  • Обращать внимание на вложенные объекты details — они содержат ключевую информацию, недоступную через поверхностные поля score и displayValue.
  • При хранении больших объёмов отчётов применять сжатие или специализированные базы данных для JSON, чтобы минимизировать нагрузку на диск и ускорить доступ.
  • Учитывать возможность изменения формата JSON между версиями Lighthouse и обрабатывать данные через адаптивные парсеры.

JSON-структура Lighthouse обеспечивает полный доступ к результатам аудита и открывает возможности для глубокого анализа, автоматизации и интеграции с любыми инструментами мониторинга веб-качества.