Releases: GoogleChrome/lighthouse
v12.0.0
We expect this release to ship in the DevTools of Chrome 126, and to PageSpeed Insights within 2 weeks.
New Contributors
Thanks to our new contributors 👽🐷🐰🐯🐻!
- Ashley Rich @A5hleyRich
- MrAdib @JohnAdib
Notable Changes
PWA Category Removal
As per Chrome’s updated Installability Criteria, Lighthouse has removed the PWA category. For future PWA testing, users will be directed to use the updated PWA documentation.
SEO Category Reorganization
The SEO category has been updated to reflect the priorities of Google search in 2024. As such, several audits have been removed or moved to other categories:
- The
is-crawlable
audit is now weighted high enough to fail the SEO category on its own. (#15933) - The
viewport
andfont-size
audits are no longer priorities for SEO, but are still important for UX in general so they have been moved to the best practices category. (#15930) - The
plugins
audit is no longer a priority for SEO and has been removed. (#15928) - The
tap-targets
audit is no longer a priority for SEO and has been replaced with thetarget-size
audit in accessibility. (#15906)
Overall Savings Deprecation
The overallSavingsMs
value on performance diagnostic audits has been deprecated (#15902). We recommend using metricSavings.LCP
or metricSavings.FCP
to understand the estimated metric savings of performance diagnostics.
🆕 New Audits
- The
aria-conditional-attr
,aria-deprecated-role
andaria-prohibited-attr
Axe checks have been added to the Lighthouse accessibility category. (#15963) - The
redirects-http
audit has been brought back, but will only passively check for a http -> https redirect if the provided URL happens to be on http (#13548)
Other Audit Changes
- The
layout-shifts-elements
audit is removed. Improved layout shift information can be found in thelayout-shifts
audit. (#15931) - The
no-unload-listeners
audit is removed. Unload listeners are deprecated and are still flagged in thedeprecations
andbf-cache
audits. (#15874) - The
duplicate-id-active
audit is removed because it's corresponding Axe check is deprecated. (#15900) - The
uses-rel-preload
andpreload-fonts
audits have been moved to the experimental config. Preload advice is still on hold and these audits were already in a disabled state. (#15876)
💥 Breaking Changes
- split up
CSSUsage
artifact (#15952) - remove budgets (#15950)
- remove relevant audits lists from config (#15878)
- remove
ScriptElements
artifact (#15879) - config: use explicit diagnostic group (#15901)
- service-worker: remove
service-worker
gatherer (#15942)
Core
- remove pre-v10 compat for page graph construction (#15948)
- a11y: re-enable target-size hidden audit (#15888)
- driver: add sendCommandAndIgnore (#15913)
- gather: handle crash if CDP target crashes (#11840)
- lantern: always use flexible network ordering (#14612)
- lantern: remove LR statistics (#15946)
- lantern: inline rtt constant (#15944)
- lantern: add LanternError and adapter to LH error (#15937)
- lantern: correct overlapping tasks in CPU nodes (#15938)
- lantern: duplicate isNonNetworkProtocol in lib/lantern (#15936)
- lantern: replace usage of LH.Artifacts.ProcessedTrace (#15905)
- lantern: move lantern metrics to lib/lantern (#15875)
- metric: remove gatherContext mode check (#15899)
- render-blocking: use trace engine as the source of truth (#15839)
- runner: use early return for readability (#15914)
- seo: support Persian in link-text audit (#15949)
- target-size: use binary display mode (#15910)
Report
- fix hidden audit handling for non-perf categories (#15968)
Deps
- upgrade
tldts-icann
to 6.1.16 (#15967) - upgrade
third-party-web
to 0.24.2 (#15966) - upgrade puppeteer to 22.6.5 (#15951)
Clients
- viewer: stop using legacy DOM api (#15964)
I18n
- import (#15958)
Docs
- bug-report: require users to read FAQs (#14383)
- readme: add DeploymentHawk to the list of integrations (#15847)
Tests
- refresh sample artifacts (#15962)
- invalidate devtools build cache (#15947)
- update network target type expectations (#15916)
Misc
- deduplicate all the dom helpers (#15960)
- merge changelog from branch-11 (#15957)
- remove
BenchmarkIndexes
base artifact (#15941) - update public gatherer list (#15940)
- remove residual
lighthouse-cli
file (#15935) - use "processing duration" instead of "processing time" for INP (#15893)
- treemap: fix column sorting when some values are blank (#15959)
v11.7.1
We expect this release to ship in the DevTools of Chrome 125, and to PageSpeed Insights within 2 weeks.
New Contributors
Thanks to our new contributors 👽🐷🐰🐯🐻!
- lauren n. liberda @selfisekai
Core
- network-request: recognize zstd compression algorithm (#15883)
- trace-elements: add sentry debugging for
impactedNodes
(#15915) - trace-processor: correct overlapping tasks (#15921)
Report
- remove use of innerHTML to empty elements (#15911)
Deps
Tests
Misc
v11.7.0
We expect this release to ship in the DevTools of Chrome 125, and to PageSpeed Insights within 2 weeks.
Notable Changes
- The publisher ads plugin is out of date and will not be supported in Chrome DevTools M125 (#15843)
Core
- fix regression in internal chrome error messages (#15853)
- a11y: disable target-size hidden audit (#15854)
- css-usage: prevent late stylesheet additions (#15865)
- driver: don't await cleanup in PAGE_HUNG case (#15833)
- driver: fix protocol timeout being ignored for isolated eval (#15826)
- emulation: remove Lighthouse from client hint brand (#15856)
- full-page-screenshot: emit screenshot commands in parallel (#15862)
- full-page-screenshot: revise logic for determining dimensions (#14920)
- gather: gatherFn refactor (#15830)
- installable-manifest: add
manifest-parsing-or-network-error
(#15849) - lantern: move types to lib/lantern (#15859)
- lantern: move LanternMetric in lib/lantern (#15857)
- lantern: refactor LH.Gatherer.Simulation (#15852)
- lantern: move PageDependencyGraph to lib/lantern (#15851)
- lantern: put types in namespace (#15850)
- lantern: rename lib/dependency-graph to lib/lantern (#15844)
- lantern: add interface for network request (#15845)
- lantern: use rendererStartTime instead of networkRequestTime (#15834)
- navigation-runner: only run
getArtifact
phase once (#15827) - network-request: use rendererStartTime for initiator candidates (#15832)
- responsiveness: remove fallback trace event pre m103 (#15866)
Deps
- upgrade
chrome-launcher
to 1.1.1 (#15871) - upgrade puppeteer to 22.5.0 (#15867)
- bump ip from 1.1.8 to 1.1.9 (#15863)
I18n
- import (#15872)
Tests
v11.6.0
We expect this release to ship in the DevTools of Chrome 124, and to PageSpeed Insights within 2 weeks.
Notable Changes
- trace: disable JS samples (#15819)
Core
- driver: add verbose logs for wait-for page load components (#15818)
Deps
- upgrade puppeteer to 22.1.0 (#15822)
- upgrade trace_engine and drop manually written types (#15810)
- upgrade
axe-core
to 4.8.4 (#15805) - upgrade puppeteer to 22.0.0 (#15803)
I18n
- import (#15821)
Tests
- dbw: revert expectations for unload handler removal (#15802)
Misc
v11.5.0
We expect this release to ship in the DevTools of Chrome 123, and to PageSpeed Insights within 2 weeks.
New Contributors
Thanks to our new contributors 👽🐷🐰🐯🐻!
- EvilKarter @EvilKarter
Notable Changes
- New layout-shifts audit shows estimated root causes for layout shifts. This replaces the layout-shift-elements audit which only shows elements impacted by layout shifts. (#15703, #15730)
- Informative audits now have a score of 1 instead of null (#15689)
- Added a warning for PWA deprecation (#15741)
Core
- bump guidance level of top CWV recommendations (#15695)
- lower guidance level of unused- audits (#15718)
- create separate product savings type (#15726)
- round metric savings to remove false precision (#15721)
- fix mistake preventing gather/audit phases from sharing cache (#15710)
- cumulative-layout-shift: experiment with new shared trace engine (#15702)
- legacy-javascript: detect es-shims polyfills (#15738)
- network-request: consider secondary headers for content encoded check (#15708)
- render-blocking-resources: reduce metric savings if LCP is an image (#15694)
- target-manager: warn on errors while attaching to workers (#15740)
- trace: enable JS samples for advanced workflows (#15542)
- unused-css: exclude header size for estimating wasted bytes (#15671)
- viewport: include meta viewport string in debugDetails (#15727)
Report
- small renderAudit simplification (#15725)
- fix filmstrip wrap (#15693)
- performance: use metric savings for metric filter (#15540)
Deps
Clients
- lr: include flag for ignoring bad page status code (#15764)
Docs
Tests
- check for console errors and warnings in pptr tests (#15516)
- fix ToT chrome install path (#15753)
- ci: stop using xvfb (#15707)
- dbw: update expectations for unload handler removal (#15765)
- dbw: fix server latency flake (#15729)
- mocha: fix snapshot expectations in retries (#15735)
Misc
v11.4.0
We expect this release to ship in the DevTools of Chrome 122, and to PageSpeed Insights within 2 weeks.
New Contributors
Thanks to our new contributors 👽🐷🐰🐯🐻!
- avinash-sd @avinash-sd
New Audits
Chrome plans to remove support for third-party cookies which can be detected using a new Lighthouse audit. Learn more about phasing out third-party cookies. (#15632)
Core
- reintroduce resource-summary as a hidden audit (#15597)
- move transfer ratio estimate to script-helpers.js (#15665)
- set network responseHeadersText from extra info event (#15639)
- fix check for presence of all URL artifact fields (#15648)
- fix worker request expectations for M121 (#15601)
- aria-allowed-role: fix typo in learn more link (#15633)
- bf-cache: add warning and hide when using old headless (#15577)
- bf-cache: change to use binary scoring mode (#15581)
- bootup-time: exclude _lighthouse-eval.js (#15678)
- byte-efficiency: replace pessimistic graph with optimistic (#15651)
- css-usage: exclude empty stylesheets (#15679)
- duplicated-javascript: exclude header size for estimating wasted bytes (#15667)
- emulation: bump chrome UA to m119 (#15661)
- entity-classification: update tldts package to icann subset (#15660)
- entity-classification: integrate public-suffix-list into LH (#15641)
- lantern: refactor fcp graph method signatures (#15572)
- layout-shift-elements: mention windowing in description (#15680)
- layout-shift-elements: aggregate all remaining elements (#15593)
- legacy-javascript: exclude header size for estimating wasted bytes (#15640)
- minification-estimator: add
else
to punctuation (#15624) - mpfid: add list of loaf durations to debugdata (#15685)
- mpfid: add max LoAFs to debugdata (#15684)
- third-party-summary: expands the audit to include all urls (#15611)
- trace-elements: remove element score field (#15677)
- unminified-javascript: exclude header size for estimating wasted bytes (#15670)
- unused-javascript: exclude header size for estimating wasted bytes (#15668)
- uses-http2: include multiplexable assets when 1p is a known 3p origin (#15638)
Report
- blend impact and guidance level to sort audits (#15669)
- fix sticky table if no sticky header (#15666)
- occupy entire viewport (#15664)
- remove accidental console.log() (#15635)
- prevent shift when hovering third party row (#15628)
- add timespan/snapshot mode labels to footer (#15589)
Deps
Clients
- lr: modify puppeteer connector to work with new tab targets (#15674)
I18n
- import (#15682)
Tests
- lower bootup-time threshold in api-test-pptr.js (#15649)
- use bash instead of sh to call test-recipes.sh (#15647)
- ci: resume using ToT chrome (#15655)
- ci: hardcode ToT revision to unblock ci for now (#15653)
- dbw: add unload handler deprecation (#15608)
Misc
v11.3.0
We expect this release to ship in the DevTools of Chrome 121, and to PageSpeed Insights within 2 weeks.
New Contributors
Thanks to our new contributors 👽🐷🐰🐯🐻!
- Max Coplan @vegerot
- Barry Pollard @tunetheweb
Notable Changes
- core: add
clearStorageTypes
option (#15508) - core: create flag to prevent fatal error on bad status code (#15494)
- clients(extension): add locale selector (#15574)
- clients(extension): always show settings, add psi frontend (#15526)
Core
- remove config navigations (#15397)
- accessibility: hide experimental axe rules (#15543)
- inspector-issues: add cookie deprecation issue (#15553)
Report
- use normal gauge if performance score is null (#15554)
Deps
- upgrade puppeteer to 21.5.0 (#15582)
- upgrade
lighthouse-stack-packs
to 1.12.1 (#15566) - upgrade puppeteer to 21.4.0 (#15557)
Clients
- devtools: default to ignore fatal errors (#15558)
I18n
- import (#15579)
Docs
- plugins: add link to GitHub repo template (#15539)
Tests
- use --headless=new for all smoketests (#14419)
- devtools: extend protocol timeout for load (#15555)
- devtools: sync e2e (#15550)
Misc
- update web.dev URLs (#15534)
v11.2.0
We expect this release to ship in the DevTools of Chrome 120, and to PageSpeed Insights within 2 weeks.
Notable Changes
This update includes an overhaul to the performance category. Performance insights are now scored and prioritized based on their estimated impact to the performance metrics. Additionally, the performance score gauge includes more detailed information about how each metric affects the score.
- core: align performance audit score with metric savings (#15447)
- report: sort performance audits based on impact (#15445)
- report: add explodey gauge for performance category (#15396)
Core
- asset-saver: fix handling of undefined trace (#15451)
- csp: use monospace for technical terms in strings (#15511)
- driver: attach to worker targets (#14212)
- inspector-issues: add
propertyRuleIssue
(#15491) - installable-manifest: use monospace for technical terms in strings (#15513)
- long-tasks: compute TBT impact (#15197)
- mainthread-work-breakdown: add TBT savings (#15201)
- tags-blocking-first-paint: ignore malformed link tags (#15489)
CLI
- sentry: set useful tags from resolved config (#15485)
Report
- redefine gauge percentage positioning (#15486)
Deps
- upgrade puppeteer to v21.3.6 (#15490)
- pin puppeteer version (#15458)
- upgrade
axe-core
to 4.8.1 (#15446) - chrome-launcher: upgrade to 1.1.0 (#15517)
Clients
- viewer: fix preload links (#15515)
I18n
- upgrade to latest icu formatter (#13834)
Docs
Tests
- use new headless for puppeteer tests (#15374)
- dbw: increase wasted ms threshold (#15483)
- devtools: remove usage of frontend globals (#15518)
- devtools: ensure Lighthouse starts in smoke tests (#15459)
- devtools: fix viewport in smoke tests (#15454)
- devtools: sync e2e (#15444)
Misc
v11.1.0
We expect this release to ship in the DevTools of Chrome 119, and to PageSpeed Insights within 2 weeks.
New Contributors
Thanks to our new contributors 👽🐷🐰🐯🐻!
- Tortitas @TortitasT
- Ian Kilpatrick @bfgeek
- GLI @tobyglei
Core
- add TBT savings to
bootup-time
(#15431) - add guidance level to performance audits (#15025)
- add TBT impact to third party audits (#15385)
- fix
index.cjs
types (#15387) - asset-saver: use new
DevtoolsLog
andTrace
artifacts (#15345) - crawlable-anchors: consider empty
rawHref
crawlable (#15406) - dom-size: add TBT savings (#15307)
- image-aspect-ratio: loosen aspect ratio threshold (#15328)
- installable-manifest: update available installability errors (#15388)
- largest-contentful-paint-element: add LCP savings (#15178)
- lcp-lazy-loaded: add LCP savings estimate (#15064)
- main-resource: fix protocol error when page is reloaded (#14520)
- redirects: score only on wasted ms (#15401)
- timespan-runner: warn if a navigation is detected (#15407)
- viewport-meta: include initial-scale value condition (#15394)
Report
- fix category highlight in DevTools (#15413)
Deps
- upgrade
third-party-web
to 0.24.0 (#15354) - upgrade
axe-core
to 4.8.0 (#15430) - upgrade puppeteer to 21.1.1 (#15403)
- upgrade puppeteer to 20.0.3 (#15375)
Clients
- extension: update some properties for manifest v3 (#15347)
I18n
- import (#15443)
Docs
- update explainer for devtools build (#15414)
- add a guide to running Lighthouse at scale (#10511)
- readme: fix chrome-launcher import example (#15428)
- readme: add Lighthouse Metrics China to services list (#15256)
- releasing: update cadence section (#15392)
- releasing: remove instructions covered by automated tests (#15353)
Tests
- better error handling when test modules fail to load (#15421)
- do not allow hashes in mock dt log (#15363)
- dbw: remove upper bound for LCP load start/end (#15432)
- dbw: increase threshold for LCP load start/end (#15393)
- devtools: sync e2e (#15389)
- smoke: update installability icon error for ToT (#15422)
- unit: retry failures and upload failure artifacts (#15378)
Misc
- move root.js to shared/ (#15439)
- remove url hash to avoid gtm hang in treemap, viewer (#15425)
- move esm-utils.js to shared/ (#15418)
- move dependabot.yml to correct folder (#15417)
- add dependabot.yml (#15341)
- build: do not minify browser extension (#15381)
- build: output source map when building bundles (#15348)
- readme: use note for Node version callout (#15410)
- treemap: reduce granularity for byte values (#15415)
v11.0.0
We expect this release to ship in the DevTools of Chrome 118, and to PageSpeed Insights within 2 weeks.
New Contributors
Thanks to our new contributors 👽🐷🐰🐯🐻!
- Nakamura Ayahito @penicillin0
- patrick kettner @patrickkettner
- lasseschou @lasseschou
- ZzZzzzxc @ZzZzzzxc
Notable Changes
Removed legacy navigation runner
The --legacy-navigation
flag on the CLI, the legacyNavigation()
function in the Node API, and the "Legacy navigation" checkbox in the DevTools panel have all been removed.
New DevtoolsLog
and Trace
artifacts
For custom audits, the devtoolsLogs['defaultPass']
and traces['defaultPass']
artifacts have been deprecated in favor of DevtoolsLog
and Trace
. See our plugin docs for example usage.
devtoolsLogs
and traces
still exist for compatibility purposes but will be removed in a future breaking release.
🆕 New Audits
- add minor aXe audits and re-weight existing ones (#15298)
💥 Breaking changes
- misc: drop node 16 support (#15290)
- core: remove
resource-summary
audit (#15299) - core: add
DevtoolsLogError
andTraceError
artifacts (#15311) - core: make INP non-experimental (#15285)
- core: remove
service-worker
audit (#15257) - core: remove legacy runner (#15253)
- core: remove
first-contentful-paint-3g
audit (#15252)
Core
- re-weight best practices (#15321)
- single network monitor kept on Driver (#15055)
- do not emit NOT_HTML error if record not ok (#15271)
- report artifact error when collected, add err.extra (#15258)
- remove the "FR" prefix from types (#15274)
- remove legacy artifacts types (#15273)
- duplicated-javascript: use valid granularity (#15275)
- lcp-element: gracefully handle error in phase table (#15329)
- network-analyzer: coarse rtt estimate on per-origin basis (#15103)
- network-request: loosen lightrider timing checksum (#15330)
- render-blocking-resources: add FCP and LCP savings (#15238)
- response-compresson: throw on unexpected error (#15259)
- source-maps: use
Scripts
as a dependency (#15293) - stack-packs: add NitroPack detection (#15314)
- uses-http2: add LCP and FCP savings (#15320)
- uses-rel-preconnect: add FCP and LCP savings (#15281)
CLI
- sentry: mention --enable-error-reporting flag in prompt (#15174)
Report
- re-order manual audits and expand when audits pass (#15310)
- move "View Original Trace" to the topbar dropdown (#15315)
Deps
- upgrade puppeteer to 21.0.1 (#15331)
- upgrade
lighthouse-logger
to 2.0.1 (#15282) - upgrade
chrome-launcher
to 1.0.0 (#15287) - deduplicate yarn.lock (#15269)
- upgrade robots-parser to 3.0.1 (#15268)
Clients
- extension: update to manifest v3 (#15219)
I18n
- import (#15334)
Docs
- remove legacy navigation (#15340)
- remove references to
devtoolsLogs
andtraces
(#15318) - plugins: fix syntax typos (#15264)
- readme: add PageVitals to the list of integrations (#15288)
Tests
- add page functions bundling test (#15280)
- make smokehouse output dir with recursive flag (#15261)
- save smokehouse outputs to .tmp/smokehouse-output (#15251)
- call toString for errors from bundled worker (#15245)
- devtools: remove unused test options (#15260)
- devtools: sync e2e (#15250)
- smoke: allow for decimal in a11y tap target (#15327)
- smoke: drop legacy support (#15249)
Misc
- remove residual references to legacy (#15292)
- fix typo (#15120)
- rename
fraggle-rock
fixtures directory touser-flows
(#15291) - add main path to logger (#15284)
- build: bundle with esbuild minification instead of terser (#15283)
- build: replace rollup with esbuild (#15239)
- ci: update actions using deprecated node12 (#15304)
- logger: add types, remove cjs (#15279)