Running Lighthouse on this page, either from Chrome dev tools or the CLI, always results in a timeout. The site is ultra-simple, with no JavaScript. In the report there's the warning:
The page loaded too slowly to finish within the time limit. Results may be incomplete.
What did you expect?
The page should finish loading and Lighthouse should complete the run.
What have you tried?
I have tried both in Chrome dev tools and the CLI, but didn't see any difference in the results.
I looked at #12981 which seems similar, but I'm not familiar enough with Lighthouse's architecture to know what debug logging to enable.
How were you running Lighthouse?
CLI, Chrome DevTools
Lighthouse Version
9.3.1
Chrome Version
108.0.0.0
Node Version
v19.3.0
OS
macOS
Relevant log output
$ npx lighthouse https://www.scolby.com
LH:ChromeLauncher Waiting for browser. +0ms
LH:ChromeLauncher Waiting for browser... +1ms
LH:ChromeLauncher Waiting for browser..... +505ms
LH:ChromeLauncher Waiting for browser....... +500ms
LH:ChromeLauncher Waiting for browser.......✓ +2ms
LH:config:warn IFrameElements gatherer requested, however no audit requires it. +255ms
LH:config:warn FormElements gatherer requested, however no audit requires it. +0ms
LH:status Connecting to browser +29ms
LH:status Resetting state with about:blank +115ms
LH:status Navigating to about:blank +0ms
LH:status Benchmarking machine +53ms
LH:status Initializing… +1s
LH:status Preparing target for navigation mode +2ms
LH:status Running defaultPass pass CSSUsage, JsUsage, ViewportDimensions, ConsoleMessages, AnchorElements, ImageElements, LinkElements, MetaElements, ScriptElements, IFrameElements, FormElements, MainDocumentContent, GlobalListeners, Doctype, DOMStats, OptimizedImages, PasswordInputsWithPreventedPaste, ResponseCompression, TagsBlockingFirstPaint, FontSize, EmbeddedContent, RobotsTxt, TapTargets, Accessibility, TraceElements, InspectorIssues, SourceMaps, FullPageScreenshot +6ms
LH:status Resetting state with about:blank +0ms
LH:status Navigating to about:blank +0ms
LH:status Preparing target for navigation +6ms
LH:status Cleaning origin data +19ms
LH:status Cleaning browser cache +5ms
LH:status Preparing network conditions +12ms
LH:status Beginning devtoolsLog and trace +5ms
LH:status Loading page & waiting for onload +47ms
LH:status Navigating to https://www.scolby.com/ +0ms
LH:waitFor:warn Timed out waiting for page load. Checking if page is hung... +45s
LH:status Gathering in-page: CSSUsage +10ms
LH:status Gathering in-page: JsUsage +0ms
LH:status Gathering in-page: ViewportDimensions +0ms
LH:status Gathering in-page: ConsoleMessages +0ms
LH:status Gathering in-page: AnchorElements +0ms
LH:status Gathering in-page: ImageElements +0ms
LH:status Gathering in-page: LinkElements +0ms
LH:status Gathering in-page: MetaElements +0ms
LH:status Gathering in-page: ScriptElements +0ms
LH:status Gathering in-page: IFrameElements +0ms
LH:status Gathering in-page: FormElements +0ms
LH:status Gathering in-page: MainDocumentContent +1ms
LH:status Gathering in-page: GlobalListeners +0ms
LH:status Gathering in-page: Doctype +0ms
LH:status Gathering in-page: DOMStats +0ms
LH:status Gathering in-page: OptimizedImages +0ms
LH:status Gathering in-page: PasswordInputsWithPreventedPaste +0ms
LH:status Gathering in-page: ResponseCompression +0ms
LH:status Gathering in-page: TagsBlockingFirstPaint +0ms
LH:status Gathering in-page: FontSize +1ms
LH:status Gathering in-page: EmbeddedContent +0ms
LH:status Gathering in-page: RobotsTxt +0ms
LH:status Gathering in-page: TapTargets +0ms
LH:status Gathering in-page: Accessibility +0ms
LH:status Gathering in-page: TraceElements +0ms
LH:status Gathering in-page: InspectorIssues +0ms
LH:status Gathering in-page: SourceMaps +0ms
LH:status Gathering in-page: FullPageScreenshot +0ms
LH:status Gathering trace +1ms
LH:status Gathering devtoolsLog & network records +108ms
LH:status Gathering: CSSUsage +6ms
LH:status Gathering: JsUsage +10ms
LH:status Gathering: ViewportDimensions +3ms
LH:status Gathering: ConsoleMessages +0ms
LH:status Gathering: AnchorElements +2ms
LH:status Gathering: ImageElements +24ms
LH:status Gathering: LinkElements +8ms
LH:status Gathering: MetaElements +2ms
LH:status Gathering: ScriptElements +2ms
LH:status Gathering: IFrameElements +2ms
LH:status Gathering: FormElements +1ms
LH:status Gathering: MainDocumentContent +2ms
LH:status Gathering: GlobalListeners +1ms
LH:status Gathering: Doctype +2ms
LH:status Gathering: DOMStats +1ms
LH:status Gathering: OptimizedImages +3ms
LH:status Gathering: PasswordInputsWithPreventedPaste +11ms
LH:status Gathering: ResponseCompression +2ms
LH:status Gathering: TagsBlockingFirstPaint +0ms
LH:status Gathering: FontSize +2ms
LH:status Gathering: EmbeddedContent +6ms
LH:status Gathering: RobotsTxt +2ms
LH:status Gathering: TapTargets +590ms
LH:status Gathering: Accessibility +31ms
LH:status Gathering: TraceElements +1m
LH:status Gathering: InspectorIssues +36ms
LH:status Gathering: SourceMaps +2ms
LH:status Gathering: FullPageScreenshot +1ms
LH:status Populate base artifacts +145ms
LH:status Get webapp manifest +0ms
LH:status Get webapp installability errors +2ms
LH:status Collect stacks +644ms
LH:status Running offlinePass pass ServiceWorker +26ms
LH:status Resetting state with about:blank +0ms
LH:status Navigating to about:blank +0ms
LH:method <= browser ERR:error Runtime.evaluate +19ms
LH:method <= browser ERR:error Runtime.evaluate +1ms
LH:status Preparing target for navigation +48ms
LH:status Preparing network conditions +0ms
LH:status Beginning devtoolsLog and trace +4ms
LH:status Loading page & waiting for onload +0ms
LH:status Navigating to https://www.scolby.com/ +0ms
LH:status Gathering in-page: ServiceWorker +44ms
LH:status Gathering devtoolsLog & network records +0ms
LH:status Gathering: ServiceWorker +4ms
LH:status Disconnecting from browser... +1ms
LH:status Cleaning origin data +0ms
LH:status Analyzing and running audits... +7ms
LH:status Auditing: Uses HTTPS +1ms
LH:status Auditing: Registers a service worker that controls page and `start_url` +6ms
LH:status Auditing: Has a `<meta name="viewport">` tag with `width` or `initial-scale` +2ms
LH:status Auditing: First Contentful Paint +1ms
LH:status Auditing: Largest Contentful Paint +9ms
LH:status Auditing: First Meaningful Paint +2ms
LH:status Auditing: Speed Index +1ms
LH:status Auditing: Screenshot Thumbnails +129ms
LH:status Auditing: Final Screenshot +77ms
LH:status Auditing: Total Blocking Time +1ms
LH:status Auditing: Max Potential First Input Delay +2ms
LH:status Auditing: Cumulative Layout Shift +1ms
LH:status Auditing: No browser errors logged to the console +2ms
LH:status Auditing: Initial server response time was short +2ms
LH:status Auditing: Time to Interactive +1ms
LH:status Auditing: User Timing marks and measures +1ms
LH:status Auditing: Avoid chaining critical requests +1ms
LH:status Auditing: Avoid multiple page redirects +3ms
LH:status Auditing: Web app manifest and service worker meet the installability requirements +2ms
LH:status Auditing: Provides a valid `apple-touch-icon` +3ms
LH:status Auditing: Configured for a custom splash screen +1ms
LH:status Auditing: Sets a theme color for the address bar. +1ms
LH:status Auditing: Manifest has a maskable icon +1ms
LH:status Auditing: Content is sized correctly for the viewport +1ms
LH:status Auditing: Displays images with correct aspect ratio +1ms
LH:status Auditing: Serves images with appropriate resolution +1ms
LH:status Auditing: Fonts with `font-display: optional` are preloaded +4ms
LH:status Auditing: Avoids deprecated APIs +2ms
LH:status Auditing: Minimizes main-thread work +1ms
LH:status Auditing: JavaScript execution time +2ms
LH:status Auditing: Preload key requests +1ms
LH:status Auditing: Preconnect to required origins +1ms
LH:status Auditing: All text remains visible during webfont loads +1ms
LH:status Auditing: Diagnostics +1ms
LH:status Auditing: Network Requests +0ms
LH:status Auditing: Network Round Trip Times +0ms
LH:status Auditing: Server Backend Latencies +1ms
LH:status Auditing: Tasks +1ms
LH:status Auditing: Metrics +0ms
LH:status Auditing: Performance budget +1ms
LH:status Auditing: Timing budget +1ms
LH:status Auditing: Keep request counts low and transfer sizes small +1ms
LH:status Auditing: Minimize third-party usage +1ms
LH:status Auditing: Lazy load third-party resources with facades +1ms
LH:status Auditing: Largest Contentful Paint element +1ms
LH:status Auditing: Largest Contentful Paint image was not lazily loaded +1ms
LH:status Auditing: Avoid large layout shifts +1ms
LH:status Auditing: Avoid long main-thread tasks +0ms
LH:status Auditing: Avoids `unload` event listeners +1ms
LH:status Auditing: Avoid non-composited animations +1ms
LH:status Auditing: Image elements have explicit `width` and `height` +0ms
LH:status Auditing: Page has valid source maps +1ms
LH:status Auditing: Preload Largest Contentful Paint image +2ms
LH:status Auditing: Ensure CSP is effective against XSS attacks +1ms
LH:status Auditing: Full-page screenshot +2ms
LH:status Auditing: Script Treemap Data +0ms
LH:status Auditing: Site works cross-browser +0ms
LH:status Auditing: Page transitions don't feel like they block on the network +1ms
LH:status Auditing: Each page has a URL +0ms
LH:status Auditing: `[accesskey]` values are unique +1ms
LH:Runner:warn Accessibility gatherer, required by audit accesskeys, encountered an error: PROTOCOL_TIMEOUT +0ms
LH:status Auditing: `[aria-*]` attributes match their roles +1ms
LH:Runner:warn Accessibility gatherer, required by audit aria-allowed-attr, encountered an error: PROTOCOL_TIMEOUT +0ms
LH:status Auditing: `button`, `link`, and `menuitem` elements have accessible names +1ms
LH:Runner:warn Accessibility gatherer, required by audit aria-command-name, encountered an error: PROTOCOL_TIMEOUT +0ms
LH:status Auditing: `[aria-hidden="true"]` is not present on the document `<body>` +1ms
LH:Runner:warn Accessibility gatherer, required by audit aria-hidden-body, encountered an error: PROTOCOL_TIMEOUT +0ms
LH:status Auditing: `[aria-hidden="true"]` elements do not contain focusable descendents +1ms
LH:Runner:warn Accessibility gatherer, required by audit aria-hidden-focus, encountered an error: PROTOCOL_TIMEOUT +0ms
LH:status Auditing: ARIA input fields have accessible names +1ms
LH:Runner:warn Accessibility gatherer, required by audit aria-input-field-name, encountered an error: PROTOCOL_TIMEOUT +0ms
LH:status Auditing: ARIA `meter` elements have accessible names +1ms
LH:Runner:warn Accessibility gatherer, required by audit aria-meter-name, encountered an error: PROTOCOL_TIMEOUT +0ms
LH:status Auditing: ARIA `progressbar` elements have accessible names +1ms
LH:Runner:warn Accessibility gatherer, required by audit aria-progressbar-name, encountered an error: PROTOCOL_TIMEOUT +0ms
LH:status Auditing: `[role]`s have all required `[aria-*]` attributes +1ms
LH:Runner:warn Accessibility gatherer, required by audit aria-required-attr, encountered an error: PROTOCOL_TIMEOUT +0ms
LH:status Auditing: Elements with an ARIA `[role]` that require children to contain a specific `[role]` have all required children. +1ms
LH:Runner:warn Accessibility gatherer, required by audit aria-required-children, encountered an error: PROTOCOL_TIMEOUT +0ms
LH:status Auditing: `[role]`s are contained by their required parent element +1ms
LH:Runner:warn Accessibility gatherer, required by audit aria-required-parent, encountered an error: PROTOCOL_TIMEOUT +0ms
LH:status Auditing: `[role]` values are valid +0ms
LH:Runner:warn Accessibility gatherer, required by audit aria-roles, encountered an error: PROTOCOL_TIMEOUT +1ms
LH:status Auditing: ARIA toggle fields have accessible names +0ms
LH:Runner:warn Accessibility gatherer, required by audit aria-toggle-field-name, encountered an error: PROTOCOL_TIMEOUT +0ms
LH:status Auditing: ARIA `tooltip` elements have accessible names +1ms
LH:Runner:warn Accessibility gatherer, required by audit aria-tooltip-name, encountered an error: PROTOCOL_TIMEOUT +0ms
LH:status Auditing: ARIA `treeitem` elements have accessible names +2ms
LH:Runner:warn Accessibility gatherer, required by audit aria-treeitem-name, encountered an error: PROTOCOL_TIMEOUT +0ms
LH:status Auditing: `[aria-*]` attributes have valid values +1ms
LH:Runner:warn Accessibility gatherer, required by audit aria-valid-attr-value, encountered an error: PROTOCOL_TIMEOUT +0ms
LH:status Auditing: `[aria-*]` attributes are valid and not misspelled +1ms
LH:Runner:warn Accessibility gatherer, required by audit aria-valid-attr, encountered an error: PROTOCOL_TIMEOUT +0ms
LH:status Auditing: Buttons have an accessible name +0ms
LH:Runner:warn Accessibility gatherer, required by audit button-name, encountered an error: PROTOCOL_TIMEOUT +1ms
LH:status Auditing: The page contains a heading, skip link, or landmark region +0ms
LH:Runner:warn Accessibility gatherer, required by audit bypass, encountered an error: PROTOCOL_TIMEOUT +1ms
LH:status Auditing: Background and foreground colors have a sufficient contrast ratio +0ms
LH:Runner:warn Accessibility gatherer, required by audit color-contrast, encountered an error: PROTOCOL_TIMEOUT +0ms
LH:status Auditing: `<dl>`'s contain only properly-ordered `<dt>` and `<dd>` groups, `<script>`, `<template>` or `<div>` elements. +1ms
LH:Runner:warn Accessibility gatherer, required by audit definition-list, encountered an error: PROTOCOL_TIMEOUT +0ms
LH:status Auditing: Definition list items are wrapped in `<dl>` elements +1ms
LH:Runner:warn Accessibility gatherer, required by audit dlitem, encountered an error: PROTOCOL_TIMEOUT +0ms
LH:status Auditing: Document has a `<title>` element +1ms
LH:Runner:warn Accessibility gatherer, required by audit document-title, encountered an error: PROTOCOL_TIMEOUT +0ms
LH:status Auditing: `[id]` attributes on active, focusable elements are unique +2ms
LH:Runner:warn Accessibility gatherer, required by audit duplicate-id-active, encountered an error: PROTOCOL_TIMEOUT +0ms
LH:status Auditing: ARIA IDs are unique +1ms
LH:Runner:warn Accessibility gatherer, required by audit duplicate-id-aria, encountered an error: PROTOCOL_TIMEOUT +0ms
LH:status Auditing: No form fields have multiple labels +0ms
LH:Runner:warn Accessibility gatherer, required by audit form-field-multiple-labels, encountered an error: PROTOCOL_TIMEOUT +0ms
LH:status Auditing: `<frame>` or `<iframe>` elements have a title +1ms
LH:Runner:warn Accessibility gatherer, required by audit frame-title, encountered an error: PROTOCOL_TIMEOUT +0ms
LH:status Auditing: Heading elements appear in a sequentially-descending order +1ms
LH:Runner:warn Accessibility gatherer, required by audit heading-order, encountered an error: PROTOCOL_TIMEOUT +0ms
LH:status Auditing: `<html>` element has a `[lang]` attribute +1ms
LH:Runner:warn Accessibility gatherer, required by audit html-has-lang, encountered an error: PROTOCOL_TIMEOUT +0ms
LH:status Auditing: `<html>` element has a valid value for its `[lang]` attribute +1ms
LH:Runner:warn Accessibility gatherer, required by audit html-lang-valid, encountered an error: PROTOCOL_TIMEOUT +0ms
LH:status Auditing: Image elements have `[alt]` attributes +1ms
LH:Runner:warn Accessibility gatherer, required by audit image-alt, encountered an error: PROTOCOL_TIMEOUT +0ms
LH:status Auditing: `<input type="image">` elements have `[alt]` text +1ms
LH:Runner:warn Accessibility gatherer, required by audit input-image-alt, encountered an error: PROTOCOL_TIMEOUT +0ms
LH:status Auditing: Form elements have associated labels +1ms
LH:Runner:warn Accessibility gatherer, required by audit label, encountered an error: PROTOCOL_TIMEOUT +0ms
LH:status Auditing: Links have a discernible name +1ms
LH:Runner:warn Accessibility gatherer, required by audit link-name, encountered an error: PROTOCOL_TIMEOUT +0ms
LH:status Auditing: Lists contain only `<li>` elements and script supporting elements (`<script>` and `<template>`). +1ms
LH:Runner:warn Accessibility gatherer, required by audit list, encountered an error: PROTOCOL_TIMEOUT +0ms
LH:status Auditing: List items (`<li>`) are contained within `<ul>` or `<ol>` parent elements +1ms
LH:Runner:warn Accessibility gatherer, required by audit listitem, encountered an error: PROTOCOL_TIMEOUT +0ms
LH:status Auditing: The document does not use `<meta http-equiv="refresh">` +1ms
LH:Runner:warn Accessibility gatherer, required by audit meta-refresh, encountered an error: PROTOCOL_TIMEOUT +0ms
LH:status Auditing: `[user-scalable="no"]` is not used in the `<meta name="viewport">` element and the `[maximum-scale]` attribute is not less than 5. +1ms
LH:Runner:warn Accessibility gatherer, required by audit meta-viewport, encountered an error: PROTOCOL_TIMEOUT +0ms
LH:status Auditing: `<object>` elements have alternate text +1ms
LH:Runner:warn Accessibility gatherer, required by audit object-alt, encountered an error: PROTOCOL_TIMEOUT +0ms
LH:status Auditing: No element has a `[tabindex]` value greater than 0 +1ms
LH:Runner:warn Accessibility gatherer, required by audit tabindex, encountered an error: PROTOCOL_TIMEOUT +0ms
LH:status Auditing: Cells in a `<table>` element that use the `[headers]` attribute refer to table cells within the same table. +1ms
LH:Runner:warn Accessibility gatherer, required by audit td-headers-attr, encountered an error: PROTOCOL_TIMEOUT +0ms
LH:status Auditing: `<th>` elements and elements with `[role="columnheader"/"rowheader"]` have data cells they describe. +1ms
LH:Runner:warn Accessibility gatherer, required by audit th-has-data-cells, encountered an error: PROTOCOL_TIMEOUT +1ms
LH:status Auditing: `[lang]` attributes have a valid value +1ms
LH:Runner:warn Accessibility gatherer, required by audit valid-lang, encountered an error: PROTOCOL_TIMEOUT +0ms
LH:status Auditing: `<video>` elements contain a `<track>` element with `[kind="captions"]` +0ms
LH:Runner:warn Accessibility gatherer, required by audit video-caption, encountered an error: PROTOCOL_TIMEOUT +1ms
LH:status Auditing: Custom controls have associated labels +0ms
LH:status Auditing: Custom controls have ARIA roles +0ms
LH:status Auditing: User focus is not accidentally trapped in a region +0ms
LH:status Auditing: Interactive controls are keyboard focusable +0ms
LH:status Auditing: Interactive elements indicate their purpose and state +0ms
LH:status Auditing: The page has a logical tab order +0ms
LH:status Auditing: The user's focus is directed to new content added to the page +0ms
LH:status Auditing: Offscreen content is hidden from assistive technology +0ms
LH:status Auditing: HTML5 landmark elements are used to improve navigation +0ms
LH:status Auditing: Visual order on the page follows DOM order +0ms
LH:status Auditing: Uses efficient cache policy on static assets +0ms
LH:status Auditing: Avoids enormous network payloads +2ms
LH:status Auditing: Defer offscreen images +0ms
LH:status Auditing: Eliminate render-blocking resources +2ms
LH:status Auditing: Minify CSS +1ms
LH:status Auditing: Minify JavaScript +1ms
LH:status Auditing: Reduce unused CSS +1ms
LH:status Auditing: Reduce unused JavaScript +1ms
LH:status Auditing: Serve images in next-gen formats +1ms
LH:status Auditing: Efficiently encode images +1ms
LH:status Auditing: Enable text compression +1ms
LH:status Auditing: Properly size images +1ms
LH:status Auditing: Use video formats for animated content +1ms
LH:status Auditing: Remove duplicate modules in JavaScript bundles +1ms
LH:status Auditing: Avoid serving legacy JavaScript to modern browsers +1ms
LH:status Auditing: Page has the HTML doctype +2ms
LH:status Auditing: Properly defines charset +1ms
LH:status Auditing: Avoids an excessive DOM size +1ms
LH:status Auditing: Avoids requesting the geolocation permission on page load +1ms
LH:status Auditing: No issues in the `Issues` panel in Chrome Devtools +1ms
LH:status Auditing: Avoids `document.write()` +1ms
LH:status Auditing: Avoids front-end JavaScript libraries with known security vulnerabilities +1ms
LH:status Auditing: Detected JavaScript libraries +1ms
LH:status Auditing: Avoids requesting the notification permission on page load +0ms
LH:status Auditing: Allows users to paste into password fields +1ms
LH:status Auditing: Use HTTP/2 +1ms
LH:status Auditing: Uses passive listeners to improve scrolling performance +1ms
LH:status Auditing: Document has a meta description +1ms
LH:status Auditing: Page has successful HTTP status code +1ms
LH:status Auditing: Document uses legible font sizes +0ms
LH:status Auditing: Links have descriptive text +1ms
LH:status Auditing: Links are crawlable +1ms
LH:status Auditing: Page isn’t blocked from indexing +1ms
LH:status Auditing: robots.txt is valid +2ms
LH:status Auditing: Tap targets are sized appropriately +0ms
LH:status Auditing: Document has a valid `hreflang` +2ms
LH:status Auditing: Document avoids plugins +2ms
LH:status Auditing: Document has a valid `rel=canonical` +0ms
LH:status Auditing: Structured data is valid +1ms
LH:status Generating results... +0ms
LH:Printer html output written to /Users/scolby/www.scolby.com_2022-12-23_14-20-47.report.html +25ms
LH:CLI Protip: Run lighthouse with `--view` to immediately open the HTML report in your browser +0ms
LH:ChromeLauncher Killing Chrome instance 20947 +1ms
Runtime error encountered: Waiting for DevTools protocol response has exceeded the allotted time. (Method: Runtime.evaluate)
FAQ
URL
https://www.scolby.com
What happened?
Running Lighthouse on this page, either from Chrome dev tools or the CLI, always results in a timeout. The site is ultra-simple, with no JavaScript. In the report there's the warning:
What did you expect?
The page should finish loading and Lighthouse should complete the run.
What have you tried?
I have tried both in Chrome dev tools and the CLI, but didn't see any difference in the results.
I looked at #12981 which seems similar, but I'm not familiar enough with Lighthouse's architecture to know what debug logging to enable.
How were you running Lighthouse?
CLI, Chrome DevTools
Lighthouse Version
9.3.1
Chrome Version
108.0.0.0
Node Version
v19.3.0
OS
macOS
Relevant log output