Repository navigation
mod_pagespeed 2.8.2
Release date: 2026-11-13
Status: Stable
Packages: the module packages for Apache, nginx and IIS and the cPanel package
are 2.8.2, on the same platforms and channels as 2.8.1. pagespeed-optimizer stays at
2.8.1: the 2.8.2 Apache and nginx deb and rpm packages depend on it, so upgrading them
keeps or installs optimizer 2.8.1. The container images, the NuGet packages and the
Helm chart are not part of this release and stay at 2.8.1.
Highlights
- Critical CSS is now inlined for HTML pages whose stylesheet contains a "<".
Stylesheets that use@propertysyntax descriptors such as"<length>"(Tailwind
CSS 4 emits these) or range media queries such as@media (width < 600px)were
never inlined byprioritize_critical_cssorinline_css. XHTML pages keep the
previous behaviour. - The admin console Overview answers first. It opens with one sentence on whether
the console is working, then headline tiles for savings, fetch failures and the
optimizer's state, and, when a finding needs action, a badge on the findings count
that links to the findings. - Inspect a URL in the admin console. Paste a URL on Overview or URLs to see what
the module holds for it and the usual reasons it is not optimized. Findings whose
fix is a setting show that setting for Apache, nginx or IIS, ready to copy. - The admin console no longer looks healthy while the server is down, and a page
that fails to load says why and offers "Try again". - New in the admin console: a diagnostics bundle to copy or download on the
Support page, a "Not optimized, by reason" list on Savings, a summary of what
changed since your last visit, search and compare on Configuration, and Statistics
grouped by what each counter measures, with a description for every counter. - The admin console is easier to use with a keyboard and a screen reader, and it
reads better in dark mode and Windows high-contrast mode.
Action required when upgrading
- None. Upgrade the module packages as usual;
pagespeed-optimizer2.8.1 stays
installed and does not need an upgrade.
Fixed
Module (all ports unless named)
- Critical CSS is now inlined for HTML pages whose stylesheet contains a "<".
On HTML pages, a stylesheet with@propertysyntax descriptors such as
"<length>"(Tailwind CSS 4 emits these) or range media queries such as
@media (width < 600px)was never inlined byprioritize_critical_cssor
inline_css, and an inline<style>with such rules was not minified. A
stylesheet that could end the inline<style>element early is still kept
external, and the debug message says why. XHTML pages keep the previous
behaviour. Affected: 2.8.1 and earlier.
Admin console
- The console no longer looks healthy while the server is down. Overview says
"Status unknown" with the time of the last answer instead of a green verdict, and
the optimizer's state is marked "last known". The "updated N s ago" stamp counts up
on every page and says "refresh overdue" once three refreshes have been missed. With
auto-refresh off the top bar reads "Paused" instead of "Connected". - A page that fails to load explains why: what could not be read, the likely
cause, a docs link and a "Try again" button, with the original message under
"Technical details". - Optimizer status and Overview agree. Without an optimizer configured the page
shows one explanation with a docs link, and an optimizer that is running but missed
one refresh is no longer reported as stopped. - Savings no longer shows a negative "Not yet attributed" amount. It shows 0 B
instead, and says how much larger the rest came out when the difference is more
than 1% of the original bytes. - View controls no longer reload the page. Changing the Logs source, "Group
repeats" or the Rule packs log selection keeps the filter text, levels, expanded
rows, scroll position and focus. - Rule packs no longer shows one pack selected while the table shows another
after a failed read. - Keyboard and screen-reader fixes: every control shows a complete focus ring,
also in Windows high-contrast mode; at phone width and high zoom the menu behaves
like a drawer; filter result counts are announced; tables carry header scope and
names; small controls meet the 24 px target size; at 320 px wide the pages no
longer scroll sideways; the layout holds with a wider system font.
Changed
Admin console
- Overview answers first, with one status sentence, headline tiles, a findings
badge that links to the findings, and next steps on a fresh install. A log warning
that already has its own finding is no longer listed twice. - One vocabulary and one look. Each figure has one name on every page ("Saved by
rewriting", "Saved by the optimizer's cache", "Served optimized"), the host control
is called "Host filter", Logs moved to the top of the menu, and tables, cards and
badges are styled the same everywhere. The About page maps the old page names to
the new ones. - The top bar shows connection and scope ("Connected" or "Reconnecting…", whole
server or host), and the auto-refresh control says whether it is on, remembers a
pause and reports the result of a manual refresh. - Savings reads at a glance, with named shares and a legend, a separate per-host
card, and a note instead of a dash while the optimizer is still warming up. - Statistics are grouped by what they measure (about twenty named groups, most
useful first), and every counter has its own description. - Charts use their own palette and a second channel: a second series is dashed,
the latest value is shown in the card header, and charts follow light, dark and
forced-colour modes. - Keyboard shortcuts can be turned off from the shortcuts dialog, which lists only
the pages the open console has;g popens Rule packs. - Dark mode separates the page, sidebar, cards and rows with their own shades, and
Windows high-contrast mode keeps the current page, selected tab and pressed toggles
visible.
Added
Admin console
- Inspect a URL on Overview or URLs: what the module holds for it, the usual
reasons it is not optimized with a documentation link each, and, on the whole-server
console, the optimizer's record. Each URL in Logs has an "inspect" link, and Logs can
be filtered by URL. URL detail opens with a one-line verdict and a "Back to …" link. - Findings come with the setting to paste for Apache, nginx or IIS, with a copy
button; the tab follows the web server named in the response's Server header. - A diagnostics bundle on the Support page, to copy or download. By default query
strings are removed, public client addresses in log lines are masked, and cookie
and authorization header values, bearer tokens and passwords in addresses are
replaced. The
configuration text is included only when you turn it on, with secret-looking values
replaced. Review the bundle before you share it. - "Not optimized, by reason" on Savings, naming each reason the module counted
with a fix for each; image work dropped under load is also an Overview finding while
it keeps happening. - "Since your last visit" on Overview: a restart or reload, a configuration change
or a version change. The record is kept only in your browser. - Search and compare on Configuration: a filter box with a match count, Copy, and
lines that differ between the server's configuration and the one in effect for the
request marked "differs".
Downloads
The native pair of the ASP.NET Core sidecar (nginx, the module built against it and the launch shim, per architecture) is in pagespeed-sidecar-native-2.8.2-linux-*.tar.gz, described by sidecar-pair.json, and is for the WeAmp.PageSpeed.Sidecar NuGet packages.
Source commit: 66d2bfa
Verify a download
Download the files and run sha256sum -c SHA256SUMS. SHA256SUMS.asc is a
detached signature of SHA256SUMS. manifest.json lists every file with its
kind, distribution and architecture, and is covered by SHA256SUMS. The
Windows installer and the binaries in it are Authenticode signed.