13.6.0 (2026-10-27)
We expect this release to ship in the DevTools of Chrome 159, and to PageSpeed Insights within a week.
New contributors
Thanks to our new contributors 👽🐷🐰🐯🐻!
- Nikolay Vitkov @Lightning00Blade
- MohammadHossein Jahanbakhsh @MHJahanbakhsh
- Rafe Blandford @rafeblandford
- Roman @gameroman
- Ivan Akulov @iamakulov
- Francesco Marinoni Moretto @frmoretto
Notable Changes
- CLI bulk URL auditing: The CLI now supports auditing multiple URLs sequentially in a single command—either by passing multiple URL arguments or via
--url-file(with--fail-fastto abort on the first failure) (#17404). Default report filenames now include the URL pathname (<hostname>-<pathname>_<date>) to avoid collisions across pages on the same host (#17405, #17423). - Lantern simulation improvements: Upgraded
trace_engine(0.0.66and0.0.67) and updated request/graph modeling to improve simulation accuracy (#17307, #17379):- Network & protocol modeling: Treated HTTP/3 connections as multiplexed, credited consumed H2 overflow bytes across simulation steps, excluded connectionless requests from active connection counts, and improved origin RTT/throughput estimation and redirect handling (#17415).
- Dependency graph & metrics: Added
v8.compileModuleandv8.evaluateModuletrace event attribution, used protocolrenderBlockingstatus for render-blocking priority (#16869), used FCP graphs when text LCP occurs in the same frame as FCP, and fixed simulated LCP breakdown calculations (#17269) and trace-mode navigation/URL handling (#17431, #17433).
- Agentic Resource Discovery (ARD) v0.91: Updated the
ard-schemaaudit and gatherer to the ARD v0.91 specification (ard.jsonreplacingai-catalog.json), supporting discovery viaLinkHTTP headers,<link rel="ard">, and/.well-known/ard.json, warning on legacyai-cataloglocations, and displaying the ARD spec version in the report footer (#17258, #17259, #17260, #17448, #17452). - Performance insight
numericValue: Performance insight audits now populatenumericValueandnumericUnitfrom estimated time or byte savings (#17346), and select the correct navigation when traces contain multiple navigations (#17174). - Memory and gathering optimizations: Reduced peak memory usage during runs by streaming traces (
ReturnAsStream), reusing script sources from trace events, evicting decoded frame buffers inspeedline, and releasing intermediate gatherer and trace engine state (#17286, #17289, #17290, #17407).
Core
- fix cycle tracking and built-in type checks in deep-equals (#17422)
- release retained gatherer and trace engine intermediate state (#17290)
- populate numericValue on performance insight audits (#17346)
- do not throw when robots.txt or llms.txt content is null (#17294)
- fail robots-txt and llms-txt on HTTP 429 (#17295)
- fix insight audits picking the wrong navigation's data (#17174)
- ard: include ARD spec version in LHR credits and report footer (#17452)
- ard: sync port with upstream f073b1e (#17448)
- ard: make upstream sync check content-based (#17261)
- ard: report legacy and unreachable discovery sources (#17260)
- ard: discover manifests per spec §5.1 (#17259)
- ard: port conformance test to ARD v0.91 (#17258)
- baseline: link to developer.chrome.com docs (#17177)
- baseline: show baseline_low_date for Widely Available features (#17337)
- baseline: fix getLowDate for high features, move web-features to devDeps (#17283)
- cdt: convert core/lib/cdt to ESM (#17340)
- config: throw when module is missing from bundledModules in bundled env (#17398)
- driver: skip clearDataForOrigin when origin is null (#17347)
- full-page-screenshot: preserve emulated width during resize (#17330)
- image-elements: skip source rules when HTML dimensions are explicit (#17287)
- lantern-metric: use last main-frame navigation in trace mode (#17433)
- lcp-network-record: rename artifact, include Media requests (#17324)
- legacy-javascript: fix es-shims regex matching (#17421)
- legacy-javascript: update core-js data, detect newly baseline polyfills (#17304)
- legacy-javascript: optimize pattern matching and source map lookup (#17301)
- legacy-javascript: fix CRLF and multi-line line/column tracking (#17300)
- legacy-javascript: skip newly baseline features (#17299)
- minification-estimator: avoid per-character substring allocations (#17288)
- network-request: update Lightrider protocol, size, and timings on redirects (#17415)
- network-request: set renderBlocking from protocol (#16869)
- page-dependency-graph: strip #hash fragments from trace request URLs (#17431)
- page-functions: clone element into template document (#17273)
- predictive-perf: fix simulated LCP breakdown (#17269)
- robots-txt: add
Licensedirective (#17160) - script-treemap-data: pass deduplicated scripts to module duplication (#17427)
- script-treemap-data: deduplicate scripts sharing a network record (#17382)
- scripts: remove leftover _scriptContents reset (#17377)
- scripts: reuse script sources from trace rundown events (#17289)
- speedline: evict decoded RGBA buffers from frame closures (#17286)
- trace: use ReturnAsStream transferMode for Tracing.start (#17407)
- unused-css: merge overlapping and duplicate rule usage ranges (#17412)
CLI
- follow symlinks when checking directory paths (#17416)
- support auditing multiple URLs in bulk (#17404)
Report
- validate image and screenshot URLs before rendering (#17446)
- add rel=noopener to target=_blank links (#17449)
- render performance diagnostics when insights group is missing (#17406)
- file-namer: truncate name in generated filename prefix (#17423)
- file-namer: include pathname in generated filename prefix (#17405)
Deps
- upgrade deps (#17445)
- remove csv-validator (#17399)
- replace conventional-changelog-cli with conventional-changelog (#17394)
- bump idb-keyval to v6 (#17393)
- bump web-features to v3.43.0 (#17391)
- bump acorn to v8.19.0 (#17390)
- bump @testing-library/preact and remove @testing-library/preact-hooks (#17389)
- bump pako to v3 (#17387)
- bump devDependencies and move ajv to devDependencies (#17386)
- bump runtime dependencies (#17385)
- replace rollup-plugin-polyfill-node with native Web API shims (#17375)
- remove angular devDependency (#17373)
- replace @typescript-eslint packages with typescript-eslint (#17372)
- bump jest and expect packages to v30 (#17371)
- remove eslint-formatter-codeframe (#17370)
- remove lookup-closest-locale (#17369)
- upgrade trace_engine to 0.0.67 (#17379)
- replace @esbuild-kit/esm-loader with tsx (#17367)
- upgrade mocha to 12.0.3 (#17360)
- inline eslint-config-google and remove eslint compat packages (#17359)
- migrate Node.js helper packages to native APIs (#17358)
- bump jsdom to v29 (#17357)
- bump eslint-plugin-import to v2.32 and remove @eslint/compat (#17356)
- replace chalk and colors with util.styleText (#17354)
- remove unused and redundant devDependencies (#17353)
- upgrade yargs to 18.2.0 and yargs-parser to 22.0.0 (#17351)
- remove unused ws and @types/ws (#17352)
- remove lodash-es (#17350)
- upgrade minor/patch dependencies (#17325)
- upgrade archiver to 8.0.0 (#17154)
- upgrade handlebars to 4.7.10 (#17308)
- upgrade trace_engine to 0.0.66 (#17307)
- pin to specific axe-core (#17279)
- upgrade deps (#17256)
Clients
Docs
- remove outdated related projects from readme (#17410)
- convert agentic-web issue template to GitHub issue form (#17366)
- quote name in agentic-web issue template front matter (#17272)
- cli: mention directory support in --output-path description (#17413)
Tests
- add regression tests for CommonJS support (#17339)
- remove mocha worker isolation and fix cross-test state contamination (#17329)
- restore jest-mock spies in afterEach (#17328)
- assert expectations for INTERNAL_LANTERN_USE_TRACE (#17314)
- update expectations for M157 favicon cache clearing (#17311)
- cli: update expected filename prefix in run-test (#17409)
- devtools: stringify to avoid V8 returnByValue limit (#17429)
- devtools: sync e2e tests (#17335)
- devtools: speed up devtools CI workflow (#17313)
- lantern: update golden trace dataset for 2026 (#17411)
- lantern: check all keys, run on trace-engine/package.json changes (#17322)
- lantern: restore test-lantern in CI using GitHub release assets (#17316)
- legacy-javascript: declare core-js in package.json, dedupe lockfile (#17302)
- legacy-javascript: fix build cache, rollup resolution, test assertions (#17296)
- network-request: add renderBlocking roundtrip (#17263)
- package-test: use local static server URL and retry fast run (#17430)
- package-test: run smoke subset and drop redundant build-report (#17317)
- smoke: exhaustively assert expected baseline features (#17326)
- smoke: use WebRTC instead of unload to trigger bf-cache failure in dbw (#17348)
- smoke: update flags required for WebMCP smoke tests (#17270)
- smoke: disable webmcp (#17278)
- smokehouse: log runner output on non-timeout runner errors (#17424)
- smokehouse: fix static-server reuse and runner error logging (#17284)
- smokehouse: fix retry state, timeout cleanup, and error logging (#17276)
- smokehouse: fix assertion and version check bugs (#17275)
- tbt-impact-tasks: pass networkRecords to createTestTrace (#16870)
Misc
- sanitize header URL links in treemap and flow-report (#17443)
- add skill for updating trace_engine (#17380)
- replace getModuleDirectory with import.meta.dirname (#17341)
- build: convert changelog-generator and commitlint configs to ESM (#17343)
- build: escape non-ASCII characters in bundle (#17345)
- ci: enable yarn cache on setup-node across workflows (#17319)
- ci: remove duplicate unit-lantern-trace and deduplicate test-viewer (#17318)
- ci: cancel superseded PR runs and balance smoke shards (#17321)
- ci: remove broken buildtracker, dead dogfood-lhci, and unused docs install (#17320)
- ci: pin actions to shas, fix zizmor findings, and add zizmor script (#17315)
- lint: remove obsolete eslint-local-rules.cjs (#17342)
- release: fix empty contributors check and null commit headers (#17420)
- release: simplify changelog generation (#17249)
- scripts: remove dead fallback in pptr-run-devtools (#17453)
- scripts: use timers/promises for sleeps (#17440)
- sentry: add browser version context (#17381)
- treemap: sanitize JSON in injectOptions (#17444)
- viewer: validate gist ID in getGistFileContentAsJson (#17447)
- viewer: prevent web crawlers from triggering PSI runs (#17384)