Lighthouse — это инструмент для анализа производительности, доступности, SEO и лучших практик веб-страниц. PageSpeed Insights API предоставляет программный доступ к возможностям Lighthouse, позволяя интегрировать аудит страниц в автоматизированные процессы, CI/CD пайплайны и кастомные инструменты мониторинга.
PageSpeed Insights API доступен через HTTP-запросы к конечной точке:
https://www.googleapis.com/pagespeedonline/v5/runPagespeed
Ключевые параметры запроса:
url — адрес страницы для анализа.strategy — стратегия анализа: desktop или
mobile.category — категории аудита: performance,
accessibility, best-practices,
seo, pwa.locale — язык отчета, например ru_RU.key — API-ключ Google Cloud для авторизации.Пример запроса с использованием fetch в Node.js:
import fetch from 'node-fetch';
const apiKey = 'ВАШ_API_КЛЮЧ';
const urlToAnalyze = 'https://example.com';
async function analyzePage() {
const response = await fetch(`https://www.googleapis.com/pagespeedonline/v5/runPagespeed?url=${encodeURIComponent(urlToAnalyze)}&strategy=mobile&key=${apiKey}`);
const data = await response.json();
console.log(data);
}
analyzePage();
Ответ API возвращается в формате JSON и состоит из нескольких ключевых секций:
lighthouseResult — основная информация от Lighthouse:
categories — объект с оценками по категориям
(Performance, Accessibility, SEO и др.).audits — подробные аудиты, включающие метрики и
рекомендации.configSettings — настройки анализа, например стратегия
и используемые категории.loadingExperience — данные о реальном пользовательском опыте (CrUX):
FAST, AVERAGE,
SLOW.originLoadingExperience — показатели по всем страницам домена.
version — версия Lighthouse, использованная для анализа.
В разделе lighthouseResult.audits содержатся ключевые
показатели:
Каждая метрика имеет:
score — оценка от 0 до 1.displayValue — человекочитаемое значение, например “1.2
s”.numericValue — численное значение метрики в
миллисекундах или других единицах.Фильтрация критических аудитов для производительности:
const audits = data.lighthouseResult.audits;
const criticalAudits = Object.values(audits)
.filter(audit => audit.score !== null && audit.score < 0.9)
.map(audit => ({
id: audit.id,
title: audit.title,
score: audit.score,
description: audit.description
}));
console.log(criticalAudits);
strategy определяет, как Lighthouse эмулирует
устройство:
desktop — стандартная конфигурация для настольных
браузеров, высокая пропускная способность сети и производительность
процессора.mobile — симуляция мобильного устройства с
ограниченными ресурсами, эмуляция сети 4G и замедленного
процессора.Выбор стратегии влияет на результаты: мобильные пользователи чаще видят низкие показатели производительности, что позволяет выявлять узкие места для оптимизации интерфейса.
С помощью параметра locale можно получать отчеты на
нужном языке:
const locale = 'ru_RU';
const response = await fetch(`https://www.googleapis.com/pagespeedonline/v5/runPagespeed?url=${encodeURIComponent(urlToAnalyze)}&locale=${locale}&key=${apiKey}`);
Все текстовые поля, такие как title и
description, будут возвращены на указанном языке, что
удобно для интеграции в корпоративные инструменты.
API позволяет запрашивать отдельные категории, снижая объем данных:
const categories = 'performance,seo';
const response = await fetch(`https://www.googleapis.com/pagespeedonline/v5/runPagespeed?url=${encodeURIComponent(urlToAnalyze)}&category=${categories}&key=${apiKey}`);
performance — скорость и отзывчивость.seo — соответствие основным требованиям поисковой
оптимизации.accessibility — удобство для пользователей с
ограничениями.best-practices — соблюдение современных
веб-стандартов.pwa — проверка прогрессивного веб-приложения.PageSpeed Insights API можно использовать для:
Автоматизация включает:
Эта подробная структура позволяет эффективно использовать PageSpeed Insights API для анализа, мониторинга и оптимизации веб-проектов, комбинируя возможности Lighthouse и данные реального пользовательского опыта.