Guides
Debugging Lighthouse Scans
Scan not working? Here's how to figure out why.
Start Here: Debug Logs
90% of issues become obvious with debug logging:
unlighthouse --site example.com --debug
This shows you:
- What URLs are being discovered
- Which pages are being scanned
- Any errors or timeouts
- Chrome connection status
Watch the Browser
Can't tell what's happening? Watch it:
export default defineUnlighthouseConfig({
puppeteerOptions: {
headless: false, // Show the browser window
slowMo: 250, // Slow down so you can see what's happening
devtools: true, // Open Chrome DevTools
},
puppeteerClusterOptions: {
maxConcurrency: 1, // One page at a time
},
})
Now you'll see exactly what Unlighthouse sees—useful for:
- Auth issues (is login working?)
- JavaScript errors (check the console)
- Missing content (is the page rendering?)
- Blocked requests (check Network tab)
Visual mode is slow. Only use it to diagnose specific problems.
Common Issues
Pages Timing Out
Your site might be slow or have heavy JavaScript:
export default defineUnlighthouseConfig({
lighthouseOptions: {
maxWaitForLoad: 60000, // Wait up to 60s (default: 45s)
},
})
SPA Not Rendering
JavaScript apps need time to hydrate:
export default defineUnlighthouseConfig({
scanner: {
skipJavascript: false, // Wait for JS to execute
},
lighthouseOptions: {
maxWaitForLoad: 45000,
},
})
SSL/Certificate Errors
On localhost or staging with self-signed certs:
export default defineUnlighthouseConfig({
puppeteerOptions: {
ignoreHTTPSErrors: true,
args: ['--ignore-certificate-errors'],
},
})
Chrome Won't Start
Try using bundled Chromium instead of system Chrome:
export default defineUnlighthouseConfig({
chrome: {
useSystem: false, // Download and use bundled Chromium
},
})
Or point to a specific Chrome:
puppeteerOptions: {
executablePath: '/usr/bin/google-chrome-stable',
}
Failed Network Requests
Log all failed requests to find what's breaking:
export default defineUnlighthouseConfig({
hooks: {
'puppeteer:before-goto': async (page) => {
page.on('requestfailed', (req) => {
console.log('❌ Failed:', req.url(), req.failure()?.errorText)
})
},
},
})
Still Stuck?
- Check Common Errors for known issues
- Search GitHub Issues
- Ask on Discord with your debug logs
Did this page help you?