Releases: GoogleChrome/lighthouse
v7.0.0
7.0.0 (2020-12-17)
Lighthouse 7.0 includes a number of programmatic breaking changes and new audits in the Accessibility and PWA categories. There were some improvements in the accuracy of metric calculations, but it is not expected that Performance scores will change significantly for almost all sites. There may be larger changes in Accessibility and PWA scores due to the new audits.
This release is expected to ship in the DevTools of Chrome 89. It went live on PageSpeed Insights on Feb 19, 2021.
Notable changes
- A full-page screenshot is taken and used to improve the experience of viewing DOM element details. Now a thumbnail will be shown and clicking reveals a lightbox showing where in the page the DOM node lived. This screenshot increases the size of the Lighthouse JSON by ~33%. (#11769, #11768, #11829, #11846, #11852)
- The PWA Category changed fairly significantly.
- The Installable group is powered entirely by the capability checks that enable Chrome's installable criteria. These are the same signals seen in the Manifest pane in Chrome DevTools. As such, the "Registers a service worker…" audit moves to the PWA Optimized group, and the "Uses HTTPS" audit is now included as part of the key "installability requirements" audit.
- The Fast and reliable group has evaporated into thin air. 🌬 Now that revamped "installability requirements" audit includes offline-capability checking, we've removed the dedicated audits for checking if the current page and
start_url
respond with 200 when offline. Separately, the "Page load is fast enough on mobile network" audit was removed—while it's no longer part of the PWA section, we encourage folks building a PWA to consult the Performance category to ensure their web app is speedy and delightful.
- A nightly Lighthouse build is now available as
lighthouse@next
on npm. Note that while automated tests pass before publishing, it's expected that this version will be more unstable than the regular releases (#11792, #11805, #11810) - The accessibility-testing library
axe-core
has been updated to the latest 4.1.1 release. The accessibility audits are now faster, more robust, and include multiple new checks (#11661) - Lighthouse runs a small benchmark at startup, and will now include a warning if the test machine appears underpowered and may be affecting the accuracy of the Lighthouse metrics (#11350)
- Joomla and October CMS detection has been added, so pages on those platforms will now get customized advice on some Lighthouse audits (#11788)
New contributors
Thanks to Kohta Ito (@koh110) and Sam Stoelinga (@samos123) for their first contributions!
🆕 New audits
- The new
installable-manifest
PWA audit, mentioned above, uses Chrome's own installability criteria so it will always stay in sync with installability requirements (#11745) third-party-facades
looks for third-party embeds in the test page that can be lazy loaded with a static "facade". If the embed isn't necessary for immediate interaction by a user, consider using one of the facades to speed up page load (#11290)- With the axe version upgrade comes new audits ensuring accessible naming:
aria-treeitem-name
,aria-command-name
,aria-tooltip-name
,aria-meter-name
, andaria-progressbar-name
(#11661)
♻️ Removed audits
- The update to latest
axe-core
also removes two audits that weren't checking much:layout-table
andvideo-description
(#11661) works-offline
andoffline-start-url
audits were removed as their checks are now covered by the newinstallable-manifest
implementation (#11806)- The
load-fast-enough-for-pwa
audit has also been removed since Lighthouse's existing performance metrics more than cover the needs there (#11764) without-javascript
has been removed (#11711)
💥 Breaking changes
- Device-emulation config settings and CLI flags have changed to be clearer and have less overlap. If you've used
--emulated-form-factor
or other emulation-related configuration, you'll need to make changes. The new settings should be considerably simpler to use with custom Lighthouse runners using real devices, Puppeteer, or system-level throttling. See the emulation docs for migration guidance. (#11779) - When waiting for the page to be fully loaded, Lighthouse will now wait if there are active high-priority network requests. In rare cases, like where the app initialization is dependent on a single, slow-returning XHR, some performance metrics may worsen; however, the new measurements are now accurate. (#11738, #11851)
- Support for Node 10 has been dropped. The minimum required Node version is now 12 (#11656)
🤖💥 Breaking changes for programmatic users
These changes are unlikely to affect end users, but may be important if you are writing custom configs, plugins, or processing the Lighthouse JSON output.
ConsoleMessages
is a new artifact that is a combination of the oldConsoleMessages
andRuntimeExceptions
artifacts, with some expanded data on items logged to the console.RuntimeExceptions
has been removed (#11663)- DOM "node details" data formerly spread throughout existing artifacts are now gathered in a
NodeDetails
property on each element (#11474, #11695, #11752) - The
ImageElements
artifact has been streamlined to better represent the data collected and how it's used (#11703, #11707, #11733) - Previously,
extends: true
was allowed as an alias forextends: 'lighthouse:default'
to extend a config from the default Lighthouse config file. The boolean option has been removed to prepare the way for extending from any valid config file (#11835) - A never-used feature to pass options from the config to gatherers has been removed to be compatible with future changes (#11743)
🧱 Core
Improvements, bug fixes, clarifications
- lantern: allow non-XHRs to depend on CPU Nodes (#11767)
- lantern: maximize throughput under HTTP/2 (#11666)
- properly split node labels in the report around unicode surrogate pairs (#11698)
- move the
service-worker
audit to the pwa-optimized group; its path in the JSON and metadata on scope URLs are unchanged (#11798) - support local plugins from a globally-installed Lighthouse (#11696)
Internal refactors and improvements
v6.5.0
We expect this release to ship in the DevTools of Chrome 89, and to PageSpeed Insights within 2 weeks.
New Contributors
Thanks to our new contributors 👽🐷🐰🐯🐻!
- Ashley Claymore @acutmore
- Brad Frost @bradfrosty
- Daniel Arthur Gallagher @DanArthurGallagher
- Stephen @stephenyu
- Vladimir Makhaev @vmakhaev
New Audits
- preload an image if it is the LCP element (#11486)
- issues logged in the Devtools Issues panel (#11409, #11710)
Core
- metrics: support CLS for all frames (#11713)
- metrics: support LCP in all frames for devtools throttling (#11701)
- stacks: update to support october cms and joomla (#11729)
- artifacts: encapsulate node details in an object (#11474)
- critical-requests: refactor to use lantern graph (#11533)
- hidpr-images: never recommend more than 2x (#11518)
- driver: resume on debugger statements (#11727)
- is-crawlable: always ignore mailto anchors (#11554)
- error: add dedicated error string for NO_FCP (#11579)
- dom-size: remove formatNumber (#11563)
- gather-runner: use final document when reporting non-HTML error (#11620)
- preload-lcp-image: properly calculate the potential savings (#11612)
- tracehouse: improve CPU profiler timing refinement (#11608)
- add devtools path to DOMStats (#11578)
- tracehouse: split timeOrigin determination out of computeTraceOfTab (#11253)
- tracehouse: use tasks to improve profiler timing data (#11446)
- unsized-images: respect CSS rules from stylesheets (#11590)
- runner: abstract gather phase out of runner (#11623)
- driver: extract waitFor methods (#11685)
- driver: extract evaluateAsync logic for FR driver (#11633)
- lantern: traverse generator method (#11636)
- js-bundles: return error object when sizes cannot be determined (#10449)
- add timing instrumentation for base artifacts (#11672)
Experimental
- full-page-screenshot: resolve node rects during emulation (#11536)
- full-page-screenshot: drop max datauri size constraints (#11689)
- full-page-screenshot: use dpr 1 (#11688)
- full-page-screenshot: use layoutViewport width (#11402)
- do not show element screenshot if out of bounds (#11538)
- add script-treemap-data to experimental (#11271)
- treemap: initialize app structure (#11635)
- treemap opener, ?dev for localhost viewer and treemap (#11667)
Deps
- remove cz-customizable as local dep (#11719)
- update to typescript 4.1.2 (#11690)
- bump various dependencies to quiet security alerts (#11693)
- update brfs to fix build in node 15 (#11676)
- upgrade lighthouse-plugin-publisher-ads to 1.3.0 (#11660)
- add @types/yargs-parser (#11517)
Clients
- viewer: extract the LHR from PSI json (#11650)
I18n
Docs
- readme: add Apdex to integrations (#11655)
- update throttling reference (#11645)
- configuration: update description of
extends
property (#11488) - releasing: update release process (#11502)
Tests
- rebaseline devtools test, print each .lh-audit id (#11702)
- smoke: attempt to fix cls-elements flake (#11426)
- update github actions to use env files (#11674)
- remove unnecessary jest babel transform (#11664)
- use setup-protoc bugfix branch (#11665)
- update static content shell version (#11634)
- limit LCP element audit to m87 and earlier (#11625)
- update MixedContent test to match ToT (#11584)
- add devtools test for important data warning (#11544)
- reset smoke transferSize expectations to reality (#11534)
- add tests for networkRecordsToDevtoolsLog (#11523)
- mock saveLhr and assert no unit test source changes (#11519)
Misc
v6.4.1
6.4.1 (2020-10-02)
This is a minor release to fix an issue in the npm package where v6.4.0 was published with a lot of unncessary files.
New Contributors
Thanks to our new contributor 👽🐷🐰🐯🐻!
- Csaba Palfi @csabapalfi
Core
Tests
- run every smoke test (except forms) for bundle (#11493)
Misc
- add chromium webtests to npmignore (#11512)
v6.4.0
6.4.0 (2020-09-30)
We expect this release to ship in the DevTools of Chrome 87, and to PageSpeed Insights within 2 weeks.
New Contributors
Thanks to our new contributors 👽🐷🐰🐯🐻!
- Denis Seleznev @hcodes
- Irfan Maulana @mazipan
- James Garbutt @43081j
- Matt Hobbs @Nooshu
- Mohammed J. Razem @moerazem
- Pujitha.E @pujitha7
- Quentin @qwright10
- andreizet @andreizet
Notable Changes
- large-javascript-libraries: move to experimental (#11484)
- driver: don't clear indexedb, websql, or localstorage before run (#11438)
New Audits
- unsized-images reland (#11340): This audit confirms users' images are explicitly sized; ultimately preventing layout shift and improving CLS.
Core
- tracehouse: add CPU trace profiler model (#11072)
- stack-packs: add Drupal pack (#10522)
- stack-packs: move to lighthouse-stack-packs npm package (#11370)
- axe: use our html snippet rather than axe's (#11362)
- benchmarkindex: add workaround for Intel microcode fixes (#11483)
- config: correct typo on throttling profile name (#11355)
- image-elements: do not set untrusted natural dimensions (#11457)
- installable-manifest: expose app manifest url (#11330)
- is-on-https: add missing space in description (#11466)
- is-on-https: remove <M84 codepaths (#11373)
- js-usage: normalize url key (#11302)
- password-inputs-can-be-pasted-into: add devtoolsNodePath (#11416)
- normalize node information in gathering (#11405)
- traverse shadow hosts in getNodePath (#10956)
- minification-estimator: minify nested template literals in JavaScript (#11395)
- expose service worker url on service worker audit (#11329)
- preconnect: ignore unimportant origins (#11306)
- autocomplete: add chrome suggestions, invalid warning (#11342)
Report
- let fireworks eligibility ignore PWA category (#11200)
- csv: add overall category scores (#11404)
- normalize -0 to 0 (#11353)
- set min-width on code table column (#11359)
Deps
- lighthouse-stack-packs: update (#11492)
- update third-party-web (#11469)
- chrome-launcher to v0.13.4 (#11434)
- update transitive lodash (#11448)
- inquirer: upgrade to 7.3.3 (#11441)
- snyk: update snyk snapshot (#11347)
Clients
- devtools: update report-generator.js to match DevTools changes (#11411)
- lr: enable uses-http2, add protocol override header (#11439)
I18n
- import (#11494)
- remove incorrect aliases (#11487)
- use placeholders more for html terms (#11406)
- use IcuMessage objects instead of string IDs (#10630)
- code-escape in preconnect and preload (#11401)
- accept array of locales in lookupLocale (#11349)
- add more translator strings to font-size (#11338)
Docs
- auth: add setCookie example (#11473)
- variability: expand on lighthouse-ci usage (#11377)
- remove PageSpeed Green from integrations (#11390)
- add microlink to integrations (#11048)
- releasing: align 2 days before branch. update managers (#11333)
- add CPU throttling guide (#11325)
Tests
- page-functions: add test for getNodePath (#11433)
- check for dependencies when setting up blink tools (#11437)
- hash more files for devtools test cache (#11417)
- smoke: fix preconnect flake w/ a non-locally installed font (#11425)
- add markdown link checker (#11358)
- webtests: test pub ads plugin (#11364)
- rebaseline webtests (#11351)
- devtools: fail on unset/unbound env variable (#11331)
Misc
- build: fix mangling for tap-targets gatherer (#11463)
- script for analyzing results from gcp data collection (#11296)
- make FormElements not a public artifact (#11476)
- yarn open-devtools (#11445)
- build: use terser on inline assets (#11461)
- tweak typescript jsdoc for list format (#11447)
- build: minify bundles with terser (#9605)
- add score shapes to legend (#11440)
- axe: rename axe types (#11432)
- update stack packs, remove duplicated stack pack files (#11396)
- build: fix devtools tests by making empty type files (#11418)
- hide locale files by default in PRs (#11363)
- fix typos in jsdoc types (#11367)
- build: include publisher ads plugin in lightrider bundle (#11366)
- flatten new service-worker audit details (#11361)
- fix run-web-tests.sh (#11346)
v6.3.0
6.3.0 (2020-08-26)
We expect this release to ship in the DevTools of Chrome 87, and to PageSpeed Insights within 2 weeks.
New Contributors
Thanks to our new contributors 👽🐷🐰🐯🐻!
- Adriana Ixba @adrianaixba
- Daniel Hollas @danielhollas
- Danilo Velasquez Urrutia @dvelasquez
- Jivthesh M R @jivthesh
- Pete Nykänen @petetnt
- Radu Micu @radum
- ryo @ryoAccount
- Saavan Nanavati @SaavanNanavati
- Stanislav Popov @popstas
- Wicked @Wicked7000
Notable Changes
- revert: move unsized-images to experimental due to perf impact (#11317)
New Audits
- add preload-fonts audit (#11255)
- add large-javascript-libraries audit (#11096)
- add valid-source-maps audit (#11236)
- add autocomplete to experimental config (#11186)
Core
- global-listeners: dedupe duplicate events in GlobalListener gatherer (#11303)
- module-duplication: ignore smaller modules (#11277)
- non-composited-animations: add unsupported css properties (#11246)
- non-composited-animations: add more actionable failure reasons (#11268)
- non-composited-animations: update the "learn more" link (#11258)
- renderer: improve the unknown timezone checks in util.js (#9822)
- response-time: add time spent to details (#11307)
- trace-elements: do not break on unresolvable node id (#11298)
- font-size: remove deprecated DOM.getFlattenedDocument (#11248)
Report
- third-party-summary: show resources for entity (#11219)
- handle invalid urls for source location items (#11299)
- show axe version in runtime settings (#10729)
- use dash gauge for categories with entirely n/a audits (#11024)
Deps
- update lighthouse-plugin-publisher-ads to 1.2.0 (#11301)
I18n
- import (#11324)
- translate remaining strings in font-size (#11327)
- make double dollar validation less strict (#10299)
Docs
- add Code of Conduct to project (#11212)
- add audit naming guide (#11308)
- throttling: replace comcast with throttle and add more windows options (#11143)
- readme: add related projects: site-audit-seo (#11305, #11250)
- readme: align headings with table of contents (#11288)
Tests
Misc
- benchmark: update BenchmarkIndex for m86 changes (#11304)
- add benchmark script with octane and speedometer (#11247)
- add gcp fleet creation scripts (#11257, #11233)
- rephrase comments to be more inclusive (#11228)
- fix types in duplicated-javascript (#11278)
- fix typo in method name (#11239)
- move doc link (#11300)
v6.2.0
6.2.0 (2020-08-06)
We expect this release to ship in the DevTools of Chrome 86, and to PageSpeed
Insights within 2 weeks.
New Contributors
Thanks to our new contributors 👽🐷🐰🐯🐻!
- Adam Raine @adamraine
- Saavan Nanavati @SaavanNanavati
- lemcardenas @lemcardenas
- George Makunde Martin @gMakunde
- David Gilman @dgilman
- Emilio Garza @emiliogarza
- LukasAuerMstage @LukasAuerMstage
- Mustafa Aydemir @mstfydmr
- Pramod Mali @malipramod
- Robin Tom @robintom
- Stacey Tay @staceytay
- Wojciech Maj @wojtekmaj
- moli @phpmoli
- Муравьёв Семён @Zulcom
New Audits
- move duplicated-javascript and legacy-javascript audits to default config (#10881, #11103)
- report animations not run on compositor (#11138, #11168, #11105)
- add unsized-images audit (#11188, #11115, #11217)
- add no-unload-listeners audit (#11085)
Core
- uses-http2: convert into opportunity (#10626)
- lantern: fallback to FCP in 0-weight SI situations (#11174)
- stacks: timeout stack detection (#11172)
- add FormElements gatherer (#11062)
- cls: add back early shift events if they were ignored (#11079)
- critical-request-chains: prune requests without an initiator (#11151)
- error if chrome version does not support lcp metric (#11016)
- font-display: dedupe warnings by font origin (#11068)
- gather-runner: error on non-HTML (#11042)
- hreflang: assert that the href is fully qualified (#11022)
- image-elements: gather correct natural size for srcset (#11101)
- is-on-https: add mixed-content resolution (#10975)
- lantern: ignore circular initiators (#11148)
- link-elements: add devtoolsNodePath (#11061)
- link-text: removing inicio from blocklist resolves #11026 (#11073)
- page-functions: expose simulated throttling requestIdleCallback shim (#11032)
- redirects: surface client-side redirects (#11027)
- tracehouse: expose navigationStart only as timeOrigin (#11034)
- add cap to amp stylesheet links for simulated throttling (#11069)
- remove uses of deprecated extendedInfo field (#10779)
- config: remove typo in a11y tables lists group (#11099)
CLI
Report
- correctly display CLS in budget table (#11209)
- add full-page-screenshot to experimental config (#10716)
- vertically center thumbnails (#11220)
- truncate long attribute values in HTML snippets (#10984)
- unused-javascript: update "learn more" link (#10985)
Deps
- snyk: update script to prune <0.0.0 and update snapshot (#11223)
- snyk: update snyk snapshot (#11046)
- update dot-prop secondary dependency (#11198)
- update jpeg-js to 0.4.x (#11167)
- update third-party-web (#11137)
I18n
- import strings (#11082, #11225)
- disallow invalid text outside complex ICU arguments (#11135)
- update AMP Optimizer URLs (#11088)
- log the percentage of translated messages (#11149)
Docs
- configuration: updates and tweaks (#11141)
- update architecture.md (#11040, #11089)
- readme: add Screpy to list of integrations (#11126)
- readme: fix logging in programmatic use code example (#11116)
- update devtools screenshot (#11092)
- fix typo in viewer readme for loading json from url (#11080)
- readme: update Foo integration (#11050)
Tests
- istanbul ignore inpage function (#11229)
- update chromestatus expecatations (#11221)
- minification-est: add testcase with pre-minified bundle (#11191)
- update to typescript 3.9.7 (#11158)
- smoke: skip expectation with _chromeMajorVersion (#10976)
- smoke: use caltrainschedule instead of polymer shop (#11052)
- relax requestIdleCallback smoke expectation (#11041)
- parallelize all the tests (#11009)
- upgrade codecov to 3.7.0 (#11039)
- update minor version of angular fixture redux (#11192)
- run GitHub Actions on master and PRs (#11035)
- run test-viewer in github actions (#11195)
- add windows to GitHub actions CI (#11087)
- use latest windows image on appveyor (#11083)
- remove appveyor (#11171)
Misc
- remove last extendedInfo in LH.Audit.Product (#11067)
- add GCP collection scripts (#11189)
- tighten RecursivePartial type (#11175)
- release: tweaks (#11021)
- compare-runs: fix error when no lh-flags arg passed (#11015)
- annotate version-specific logic with COMPAT comments (#11019)
- add tools to track issue response time (#11020)
- tweak naming in element-screenshot renderer (#11152)
- ignore coverage of page-functions (#11136)
v6.1.1
6.1.1 (2020-07-07)
This is a patch release to fix an issue that only occurred in 6.1.0 for Node environments. It will only be released to npm.
Core
- fetcher: ensure fetch doesn't cause unhandled promise (#11036)
v6.1.0
6.1.0 (2020-06-25)
We expect this release to ship to DevTools in Chrome 85 86, and to PageSpeed Insights within 2 weeks.
New Contributors
Thanks to our new contributors 👽🐷🐰🐯🐻!
- Loftie Ellis @lpellis
- Marvin Frachet @mfrachet
- Matt Hobbs @Nooshu
- Peter Marshall @psmarshall
Notable Changes
- If a page has publicly-accessible JavaScript source maps, Lighthouse will collect them to enhance the
unused-javascript
audit. In future versions of Lighthouse, source maps will be used for entirely new audits (#10990). - The report now uses
KiB
instead ofKB
. This is simply a label change; the value was and still is equal to1024 bytes
(#10870).
New Audits
- long-tasks: a new performance diagnostic that shows the longest main-thread-blocking tasks during load (#10736)
- crawlable-anchors: a new SEO audit that checks that anchors link to resolvable URLs (#10662)
Core
- unused-javascript: increase threshold to 20KiB (#10906)
- layout-shift-elements: surface CLS contribution per shifted element (#10968)
- emulation: bump chrome versions (#10787)
- image-size-responsive: quantize DPRs (#10801)
- long-tasks: add startTime property (#10942)
- improve resilience of nodeId-dependent gatherers (#10877)
- median-run: add computeMedianRun to lib (#10859)
- preload: ignore cross-frame requests (#10847)
- new inspector issues gatherer for Audit.IssueAdded events (#10664)
- subRow refactor, rename to subItem (#10867, #10978)
Experimental
Features hidden behind the --preset=experimental
flag.
- legacy-javascript: reduce polyfills, fix core-js import in test (#10937)
- legacy-javascript: use prescriptive language in title (#10850)
- legacy-javascript: fix core-js 3 detection (#10852)
- legacy-javascript: use third-party-web for scoring (#10849)
- duplicated-javascript: display transfer size (#10701)
Deps
- axe-core: upgrade to 3.5.5 (#10986)
- upgrade [email protected] (#10911)
- snyk: update snyk snapshot (#10840, #10940, #10980, #11010)
- remove bundlesize (#10999)
- update to lhci 0.4.0 (#10828)
Report
- metrics: use css grid so metrics are aligned (#10789)
- don't dim disclaimer anchor links (#10981)
- use acronyms and round metrics for shorter calc url (#10954)
- update link for budgets audit (#10944)
- add trailing slash to web.dev links (#10967)
- fix the width of the 3-dots menu in topbar (#10855)
- updated method signature typing to remove focusevent cast (#10858)
- adjust LCP element description (#11018)
- renderer: fix null Util.i18n in PSI renderer (#10822)
- psi: show disclaimer and calclink (#10936)
Docs
- add note about git repo required for @lhci/cli usage (#11006)
- contributing: add tips for audit and gatherer PRs (#10690)
- readme: update programmatic usage recipe (#10878)
- readme: add new and updated integrations (#10838, #10901, #10826, #10818)
Tests
- move proto roundtrip json to .tmp/ (#10995)
- add heading key tests (#10746)
- run ToT and stable Chrome for smoke tests in github workflow (#10989)
- legacy-javascript: exit code 1 on failure (#10946)
- smoke: use --debug in github action (#10919)
- smokehouse: do not assert on flaky node path (#10827)
Misc
v6.0.0
We expect this release to ship in the DevTools of Chrome 84.
Notable changes
So many! See the Lighthouse 6.0: What's New blog post for an in-depth look.
🆕 New audits
- Largest Contentful Paint (LCP) is a new metric that measures the time from navigation until the largest content element in the viewport is rendered (#9905, #10213, #10452, #10529).
- Cumulative Layout Shift (CLS) is a new metric that measures the amount of unexpected movement of content as a page loads (#9037, #10427, #10495, #10570, #10728).
layout-shift-elements
is another companion diagnostic that gives information about the elements that shifted as the page loaded (#10702).
unused-javascript
is an audit that has been kicking around for some time but is only now turned on by default. It accounts for what JavaScript was loaded but never executed during page load and estimates the load time that could be saved via code splitting, dead code elimination, or judicious use of the delete key (#9854).- A PWA
maskable-icon
just looks better on your homescreen, so this new audit encourages you to have at least one available in your manifest (#10370). timing-budget
expands budget assertions to now be settable on all the performance metrics (#9901, #9925).- The new
charset
audit ensures a proper character encoding for page content (#10284, #10389, #10689). image-size-responsive
checks that images have an aspect ratio and resolution that match well with how they are displayed on a page (#10460).- Updating to the latest version of
axe-core
has unlocked a number of new accessibility audits:aria-hidden-body
,aria-hidden-focus
,aria-input-field-name
,aria-toggle-field-name
,duplicate-id-active
,duplicate-id-aria
,form-field-multiple-labels
,heading-order
(#9798).
⚗️ Experimental audits
These audits are not yet part of the default Lighthouse experience, but they will provide performance advice based on analysis of a page's JavaScript bundles. They can be tested today on the command line with the --preset=experimental
flag.
legacy-javascript
rummages through your bundles looking for polyfills and bundler transforms that aren't necessary or are outdated (#10303, #10568, #10564).duplicated-javascript
also takes a dive through a page's JavaScript looking for code that has ended up duplicated within bundles or across multiple bundles (#10314).unused-javascript
now runs by default (as mentioned above), but when run underexperimental
, the audit can use source maps to show what original source code was never run and could be postponed or eliminated (#10090).
New contributors!
Thanks to @TGiles, @roelfjan, @chruxin, @warrengm, @alexgreencode, @mikedijkstra, @egsweeny, @johnsampson, @jazyan, @B3none, @mattjared, @Malvoz, @Beytoven, @Munter, @jayaddison, @msomji, @piotrzarycki, @awdltd, @mathiasbynens, @Carr1005, @staabm, @SphinxKnight, @sk-, @AndreasKubasa, @jantimon, @kmanuel, @Kikobeats, @RolandBurrows, @nxqamar, @catalinred, and @baseeee for their first contributions! So many!
💥 Breaking changes
- Performance metric scores have been reweighted to better reflect a user's loading experience (#9949).
- Metric score curves have been updated when running a desktop Lighthouse test to account for the faster connection and CPU (#9911, #10756).
frameNavigated
events are now used to track redirects, which means JS redirects are now accounted for when determining the run'sfinalUrl
(#10339).- The emulated mobile device has moved from the Nexus 5x to the Moto G4 (but the existing DPR has been left unchanged) (#10191, #10749).
- The
mixed-content
preset has been removed as it was not widely used and takes too long to be added to the default Lighthouse experience (#10159, #10750). - The
full
preset has been renamedexperimental
to signify that the code there may not be ready for running by default (#9930, #10311, #10333, #10585). - The emulated Chrome UA string has been updated to Chrome 80 (#9967).
installable-manifest
: icons in the Web app manifest must be fetchable to be considered installable (#10168, #10320)
🤖💥 Breaking changes for programmatic users
These changes are unlikely to affect end users, but may be important if you are writing custom configs, plugins, or processing the Lighthouse JSON output.
LH.Audit.Context
passed into audits is now treated as immutable. If code previously pushed tocontext.LighthouseRunWarnings
to get a top-level warning, it should now pass that back inrunWarnings
on the audit's product (#10555).Audit.computeLogNormalScore
has been redefined to specify log-normal curves with median and p10 points (dropping the "point of diminishing returns"). Existing audits have been moved to this new definition so that no score changes should occur (#10715).- A
loadFailureMode
setting has been added toConfig
passes to control behavior in case of page load failure. Previously this was implicitly controlled (e.g. no offline page available did not cause an error) (#9987) time-to-first-byte
has been renamedserver-response-time
to better reflect what is being measured by the audit (#10735).resource-summary
:details.items.size
has been renamed totransferSize
for clarity (#10700, #10743).
🧱 Core
Improvements, bug fixes, clarifications
The following changes are considered to be bug fixes or updates to better match what was intended to be audited, but the changes may cause adjustments in audit scores or behavior.
- add top-level warning if Lighthouse hit a timeout before load was complete (#10538)
- add top-level warning if tested URL was redirected (#10157)
- FCP + 5 seconds is now included as a minimum time that must be reached before the test page is considered loaded (#10505, #10516)
- load simulation: add edges from
initiatorRequest
when there are duplicate records (#10097) - load simulation: keep first layout/paint/parse events regardless of duration (#9922)
- load simulation: do not create self-dependencies via timers ([#10280...
6.0.0-beta.0 (2020-03-11)
This beta release will not ship in Chrome DevTools, but we'll ship the final 6.0 release.