Skip to main content
Recipes

Improving Lighthouse Accuracy

CPU load and network conditions can change Lighthouse measurements between runs. Use repeated audits and serial performance scans for more consistent results.

Repeat each audit

import { defineUnlighthouseConfig } from 'unlighthouse/config'

export default defineUnlighthouseConfig({
  site: 'https://example.com',
  scanner: { samples: 3, perfConcurrency: 'serial' },
})

samples accepts values from 1 to 10. Unlighthouse retains the median run by performance score. The retained metrics, report, and screenshot belong to that same audit.

Protect performance measurements

Serial performance audits avoid competing for CPU within the audit pool. Non-performance audits can still use parallel workers. If you select perfConcurrency: 'parallel', treat performance scores as contended measurements. The local auditor reports reliablePerfScores: false for that mode.

Control the environment

Close unrelated workloads before comparing local scans. Keep the device and Lighthouse throttling profile consistent between comparisons. CI and localhost defaults disable throttling unless you supply an explicit profile. Use lighthouseOptions.throttling when you need a fixed profile.

Puppeteer cluster concurrency settings do not control the v1 auditor.

Did this page help you?
Anything that could be done better? :)
Help us improve this page. You can edit this page on GitHub or provide anonymous feedback below.