Перейти к содержимому

Performance: Lighthouse-аудит страницы через API

POST /v1/browser/performance запускает Google Lighthouse для страницы с российских серверов и возвращает оценки по категориям и результаты отдельных аудитов: Core Web Vitals, доступность, SEO, лучшие практики. Формат запроса совместим с Browserless /performance.

Окно терминала
curl -X POST "https://proxy.seyka.ru/v1/browser/performance" \
-H "Authorization: Bearer $SEYKA_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"url": "https://example.com",
"config": {"settings": {"onlyCategories": ["performance", "seo"], "formFactor": "desktop",
"screenEmulation": {"mobile": false, "width": 1350, "height": 940, "deviceScaleFactor": 1}}}
}'
Параметр Тип Описание
url string обязательный, адрес страницы
config.extends string базовая конфигурация Lighthouse, по умолчанию lighthouse:default
config.settings.onlyCategories string[] только эти категории: performance, accessibility, best-practices, seo
config.settings.onlyAudits string[] только эти аудиты, например largest-contentful-paint
config.settings.formFactor string mobile (по умолчанию в Lighthouse) или desktop
config.settings.screenEmulation object эмуляция экрана: mobile, width, height, deviceScaleFactor, disabled
config.settings.throttling object параметры троттлинга: rttMs, throughputKbps, requestLatencyMs, downloadThroughputKbps, uploadThroughputKbps, cpuSlowdownMultiplier
config.settings.throttlingMethod string simulate (по умолчанию), devtools или provided
config.settings.blockedUrlPatterns string[] не загружать ресурсы по шаблонам URL

formFactor: "desktop" в Lighthouse нужно сочетать с подходящим screenEmulation, как в примере выше, иначе Lighthouse откажется запускать аудит с несогласованными настройками.

Ограничивайте onlyCategories или onlyAudits, когда нужны не все проверки: аудит станет быстрее.

{
"categories": {
"performance": { "id": "performance", "title": "Performance", "score": 0.95 },
"seo": { "id": "seo", "title": "SEO", "score": 1 }
},
"audits": {
"largest-contentful-paint": {
"id": "largest-contentful-paint",
"title": "Largest Contentful Paint",
"description": "Largest Contentful Paint marks the time at which the largest text or image is painted…",
"score": 0.85,
"displayValue": "1.4 s",
"numericValue": 1412.5,
"numericUnit": "millisecond"
}
},
"environment": { "benchmarkIndex": 1850 }
}
Поле Описание
categories.*.score оценка категории от 0 до 1; умножьте на 100, чтобы получить привычную шкалу Lighthouse
audits.*.score оценка аудита 0–1 или null для информационных аудитов
audits.*.displayValue значение для человека, например "1.4 s"
audits.*.numericValue, numericUnit значение для машины и его единица
audits.*.errorMessage есть, если аудит упал во время прогона — отличает «нет данных» от сбоя
environment.benchmarkIndex производительность хоста Lighthouse; при низком значении (примерно ниже 1000) метрики TBT и LCP менее надёжны

Аудит занимает от нескольких секунд до минуты; на запрос, включая ожидание свободного браузера, отводится 90 секунд. Аудит, не уложившийся в них, завершается ошибкой 502 (реже 500). Ставьте таймаут клиента не меньше 90 секунд.

Код Когда
500 сбой в браузере аудита: code — ошибка Lighthouse, например PROTOCOL_TIMEOUT или TARGET_CRASHED, либо NO_SCORES, если ни одна категория не получила оценку
502 аудит провалил сам сайт: code — например NO_FCP, ERRORED_DOCUMENT_REQUEST или DNS_FAILURE
503 сервис перезапускается (errorKind: shutdown); повторите запрос
504 истёк таймаут загрузки страницы

Остальные коды — в разделе Ошибки.

У Performance включён кэш ответов шлюза: повтор того же запроса в пределах окна кэша возвращается без нового аудита с X-Cache: HIT и оплачивается по цене повтора из кэша. Чтобы запустить аудит заново, передайте Cache-Control: no-cache: ответ придёт с X-Cache: BYPASS и обновит кэш.

Запрос считается тем же, если тело совпадает побайтно: другой порядок ключей или пробелы в JSON дают новый аудит. Отправляйте тело, собранное одним и тем же кодом, — тогда повторы попадут в кэш.

Окно терминала
curl -X POST "https://proxy.seyka.ru/v1/browser/performance" \
-H "Authorization: Bearer $SEYKA_API_KEY" \
-H "Content-Type: application/json" \
-H "Cache-Control: no-cache" \
-d '{"url": "https://example.com"}'

Аудит оплачивается по цене Performance, повтор из кэша — дешевле. Цены и окно кэша — в таблице цен.