“Emulation” in Lighthouse refers specifically to screen and user agent emulation. Network and CPU throttling are covered separately in Throttling.
Mobile vs desktop
By default, Lighthouse runs in mobile mode. To run with desktop settings and scoring calibration, use the--preset=desktop flag.
The --form-factor flag
The formFactor setting does not control emulation directly. Instead, it tells Lighthouse how to interpret the run — specifically for scoring performance metrics and skipping mobile-only tests when running in desktop mode.
You must always set formFactor when configuring emulation externally. The allowed values are mobile (default) and desktop.
Screen emulation
ThescreenEmulation setting controls the viewport applied to the page. It accepts an object with the following fields:
To disable screen emulation — for example, when running against a real device or when emulation is applied externally by Puppeteer:
User agent emulation
By default, Lighthouse spoofs a mobile user agent string to ensure pages return their mobile variants. TheemulatedUserAgent setting controls this behavior.
Disabling user agent spoofing is safe to do redundantly — if the real device is already sending the correct user agent, setting
emulatedUserAgent: false has no negative effect.
Testing on a real mobile device
When running Lighthouse against Chrome on an actual mobile device, you should disable Lighthouse’s own screen emulation and CPU throttling, since the device provides real conditions.--form-factor=mobile is the default and does not need to be set explicitly in this case.
Changes in v7
Lighthouse v7 overhauled the emulation configuration to be more explicit and consistent. Key changes:
The
throttling and throttlingMethod settings were not changed in v7.