Skip to main content
ModPageSpeed 2.0: AVIF, WebP, and critical CSS — up to 69% less page weight on the live demo

mod_pagespeed 1.15

mod_pagespeed, maintained again.

Google open-sourced mod_pagespeed; its last open-source release shipped in 2020. We picked it up. mod_pagespeed 1.15 is a drop-in replacement — same config, same filters, same behavior — with ongoing security patches, the new Cyclone Cache, and support from the people who know the codebase best.

New: the ASP.NET Core sidecar is now GA — one dotnet add package WeAmp.PageSpeed.Sidecar. See the guide →

Five web servers and ASP.NET Core. One optimized codebase.

mod_pagespeed 1.15 runs as a native in-process module on Apache, nginx, and IIS, and ships an ASP.NET Core sidecar for .NET apps. Envoy and Apache Traffic Server are experimental.

Apache

Apache

GA

Drop-in replacement for the Google/Apache module

nginx

nginx

GA

Dynamic module — prebuilt apt/dnf package for Debian 11/12/13, Ubuntu 22.04/24.04, AlmaLinux/RHEL/Rocky 9 (x86_64 + aarch64) and 10 (x86_64)

IIS

IIS

GA

Native Windows Server support

ASP.NET Core

ASP.NET Core

GA

Middleware for .NET apps — the bundled-nginx Sidecar (NuGet)

Envoy

Envoy

Experimental

HTTP filter for Envoy proxy

Apache Traffic Server

Apache Traffic Server

Experimental

Plugin for the Apache Traffic Server proxy cache

Install on Debian, Ubuntu, or AlmaLinux/RHEL/Rocky 9 or 10

curl -fsSL https://packages.modpagespeed.com/install.sh | sudo sh

# nginx
sudo apt install nginx-module-pagespeed   # Debian / Ubuntu
sudo dnf install nginx-module-pagespeed   # AlmaLinux/RHEL/Rocky 9 or 10

# Apache
sudo apt install mod-pagespeed            # Debian / Ubuntu
sudo dnf install mod-pagespeed            # AlmaLinux/RHEL/Rocky 9 or 10

Prebuilt and signed for Debian 11/12/13 and Ubuntu 22.04/24.04 (amd64 + arm64), plus AlmaLinux/RHEL/Rocky 9 (x86_64 + aarch64) and 10 (x86_64) — no compiling. Each nginx module is pinned to its distro's stock nginx, so if you run a different nginx version, contact us for a matching build.

Related reading: ngx_pagespeed won't build on modern nginx? and the nginx image optimization module.

ASP.NET Core

Add it with one NuGet package.

WeAmp.PageSpeed.Sidecar adds mod_pagespeed 1.15 to your ASP.NET Core app as middleware, with a bundled nginx optimizer on loopback behind it — no separate nginx to install or configure. Linux, and now GA.

dotnet add package WeAmp.PageSpeed.Sidecar

Read the ASP.NET Core guide →

What's changed since Google's last release

We picked up where Google left off. Everything below ships in 1.15 — see how it stacks up against the original open-source mod_pagespeed.

Maintained and supported

Regular updates, security patches, and direct support from the team that knows the codebase best.

Drop-in replacement

Same configuration directives, same filters, same behavior. Swap the binary and you're done.

Cyclone Cache

New cache backend shared with ModPageSpeed 2.0. Fixed-size file, lock-free reads, memory-mapped I/O.

Bazel build system

Rebuilt with Bazel for reproducible builds. Prebuilt, signed packages for Apache and nginx across Debian, Ubuntu, and AlmaLinux — no more recompiling the nginx module against each upstream release.

Security fixes

All known CVEs from the open-source project patched. Ongoing security maintenance included.

Multi-platform

One source tree, five ports. Apache, nginx, and IIS ship today; Envoy and Apache Traffic Server are experimental. ASP.NET Core gets the bundled-nginx Sidecar.

Two products. Both maintained.

Chosen by deployment fit, not recency. Pick the one that matches how you serve your site.

In-process module

mod_pagespeed 1.15

Best for teams already running mod_pagespeed who want a supported, maintained release without changing their setup.

  • Drop-in compatible with open-source config
  • Apache, nginx & IIS today; Envoy & Apache Traffic Server experimental
  • In-process — no sidecar needed
Install mod_pagespeed 1.15

See the live admin console →

Out-of-process worker

ModPageSpeed 2.0

Ground-up rewrite in C++23. An async worker behind an nginx reverse proxy. Best for new deployments and teams that want the reverse-proxy or middleware model.

  • AVIF, SVG, and Jpegli image pipeline
  • ASP.NET Core middleware + Docker / nginx reverse proxy
  • Worker process + web console
Explore 2.0

Frequently asked questions

1.15-specific questions below. For the 2.0 architecture and integrations, see the 2.0 FAQ →

What counts as a site?
A site is one registrable domain — the name you registered, like example.com — together with all of its subdomains. www.example.com and shop.example.com are the same site; example.co.uk is a different one. Licensing is per site on every tier and every engine — mod_pagespeed 1.15 and ModPageSpeed 2.0 share one ladder. A multi-domain storefront or a white-label setup serving many customer domains needs one license per registrable domain; if your setup doesn't map cleanly onto domains, talk to us about Enterprise terms.
What happens if I run unlicensed?
It keeps optimizing — it never locks you out. Unlicensed installs add an X-PageSpeed-Warn: unlicensed response header, show a notice in the admin console, and write a warning to the startup log. Production use requires a commercial license.
Does the unlicensed warning escalate over time?
No, never. Day 1000 looks exactly like day 1: the same X-PageSpeed-Warn: unlicensed response header, the same admin-console notice, the same startup-log line. Nothing throttles and nothing expires. Production use requires a commercial license — but the software never locks you out.
If it never locks me out, what does a license actually buy?
Four things. The right to run it in production — the license terms permit production use only under a license. A clean response: the X-PageSpeed-Warn header, admin-console notice, and startup-log warning all clear. Support: community-level on Starter, priority email on Business, an SLA and a direct line on Enterprise. And security patches and version upgrades, which every paid subscription includes. The software itself is identical on every tier — we sell the license, not the features.
Do I need a license for development, staging, or CI?
No. The Unlicensed tier covers evaluation, development, and testing on any number of servers — no key, no signup, fully functional. A license is needed when a site goes to production: commercial sites pick a paid tier, and non-commercial or not-for-profit sites qualify for a $0 Community key.
What happens after I cancel?
It keeps optimizing after your license expires — it never locks you out. The installation returns to the unlicensed state (the X-PageSpeed-Warn: unlicensed header, an admin-console notice, and a startup-log warning). Re-activate any time — your cache contents and configuration aren't touched.
Is there a $0 tier?
Yes. Community is a $0 license for non-commercial sites: you self-attest that the site qualifies and receive a license token for that one site. Even with no license at all, the software optimizes fully and adds only the X-PageSpeed-Warn: unlicensed header. Production use requires a commercial license. Starter, Business, and Enterprise license a site, not a server; Hoster is priced per host for multi-tenant platforms. See the pricing ladder.
How does the Community tier work?
Community is a $0 license for non-commercial sites. You enter your email and the site's domain, attest that the site qualifies (the licensing terms define what counts as non-commercial; we don't audit, but the attestation is binding), and receive a license token for that one site. A key lasts 365 days and renews by re-attesting — the same one step, still $0. The Community grant is part of the license text that ships inside each release, so it covers releases published after the grant landed; it is not retroactive to earlier releases.
Do containers, replicas, or autoscaling count against my license?
No. A license covers the site, not the machines serving it. On Business, run the licensed site on as many servers, containers, or autoscaled replicas as you need — the count never changes what you pay. Starter has one fence: up to two servers per site. That fence is an honor-system boundary, not something the software meters; if a site outgrows two servers, move it to Business.
How does the license key work?
You receive an Ed25519-signed token via email. Set it as an environment variable. Signature validation runs offline at startup — no internet dependency in the request path. The product refreshes subscription state with our API every 12 hours; see Terms of Service for details.
How do I attach my site domain to a paid license?
The key emailed at checkout works immediately. To bind your site domain(s) to the license — one per purchased site — use the claim page with your order reference and purchase email, any time. Claiming again re-issues that site's key, and the same page lists all keys on your order.
The original mod_pagespeed costs nothing. Why should I pay?
The original mod_pagespeed and ngx_pagespeed are no longer actively developed. We-Amp maintains both mod_pagespeed 1.15 (the drop-in continuation of the open-source project — CVE patches, modern nginx, IIS support) and ModPageSpeed 2.0 (the ground-up rewrite with zero-copy serving, variant-aware caching, and an out-of-process worker). Both come with direct email support.
What's your refund policy?
Subscriptions are billed immediately on purchase via FastSpring (our Merchant of Record). Cancel anytime through the FastSpring customer portal — billing stops at the end of the current period. Refund requests are handled by FastSpring under their standard refund policy. EU/EEA consumers have a 14-day right of withdrawal under EU Directive 2011/83/EU; see Terms of Service for details.
Where do the license terms live?
At we-amp.com/licensing/. That document governs every tier; pricing pages and this FAQ summarize it. If a summary and the terms ever disagree, the terms win.
Is mod_pagespeed still maintained?
Yes. The last upstream release shipped in 2020 and the GitHub repository was archived in 2025. Active development continued at We-Amp B.V. — the Dutch company that helped build ngx_pagespeed, maintained mod_pagespeed, and drove the project's Apache incubation. mod_pagespeed 1.15 is the maintained continuation: drop-in compatible with the open-source release, with ongoing CVE patches, reproducible Bazel builds, and direct support.
Are the known CVEs against Google's last release patched?
Yes. mod_pagespeed 1.15 ships with patches for the known CVEs that accumulated against the archived upstream. Security maintenance is included with every license; if your security team needs a current CVE statement for procurement, contact us.
Will my existing pagespeed.conf keep working?
Yes. mod_pagespeed 1.15 is a drop-in continuation of the open-source project. All existing pagespeed directives work unchanged — swap the binary, keep your config.
How is 1.15 different from Google's last open-source release?
Same filters, same directives, same in-process architecture. What's added: ongoing CVE patches, a native IIS module, a GA nginx dynamic module (signed apt packages for Debian 11/12/13 and Ubuntu 22.04/24.04 on amd64 and arm64, plus AlmaLinux/RHEL/Rocky 9 on x86_64 + aarch64 and 10 on x86_64 via yum), the Cyclone shared-memory cache (replacing the old file cache, no config change), and direct email support. The last upstream release shipped in 2020 and the GitHub repository was archived in 2025; 1.15 is the actively maintained branch.
Which web servers does 1.15 support?
Apache (drop-in replacement), nginx (dynamic module), and IIS (native Windows Server module) all ship as GA packages today. The signed apt packages cover nginx and Apache on Debian 11, 12, and 13 and Ubuntu 22.04 and 24.04, on both amd64 and arm64; the yum packages cover AlmaLinux/RHEL/Rocky 9 on x86_64 and aarch64, and 10 on x86_64. Each module is built against its distro's stock nginx, so if you run a different nginx version — for example nginx.org's stable or mainline — contact us for a matching build. Envoy (HTTP filter) is experimental.
What happens when my license expires?
mod_pagespeed keeps optimizing — it never locks you out. The installation returns to the unlicensed state and adds an X-PageSpeed-Warn: unlicensed response header (plus an admin-console notice and a startup-log warning). Your web server continues to function normally — no downtime, no data loss. Production use requires a commercial license.
Should I run 1.15 or ModPageSpeed 2.0?
Pick by deployment fit. Run 1.15 when you want a native in-process module inside Apache, nginx, or IIS with no separate worker and no added proxy hop, drop-in config compatibility, and the classic combine/sprite/IPRO filters with a built-in admin UI. Run ModPageSpeed 2.0 when you want an out-of-process worker behind an nginx reverse proxy fronting any HTTP origin (or ASP.NET Core middleware), with zero-copy serving, variant-aware caching, and a web console. Both are actively maintained, both build on the Cyclone cache, and cost the same. 2.0 is an independent rebuild, not a newer 1.15.
Is the license heartbeat the same as 2.0?
Yes. Both products share the same offline-validated Ed25519 license token and the same 12-hour heartbeat that refreshes subscription state with our API. No internet dependency in the request path; one license format works across both products.
Can I run mod_pagespeed 1.15 under ASP.NET Core?
Yes, on Linux. The WeAmp.PageSpeed.Sidecar NuGet package adds mod_pagespeed 1.15 to your Kestrel app via middleware, with a bundled nginx + ngx_pagespeed optimizer running on loopback behind it — AddPageSpeed() / UsePageSpeed() wire it in, and a single dotnet add package pulls the bundled native binaries. It is Linux-only (linux-x64, linux-arm64). See the ASP.NET Core sidecar guide. For cross-platform, in-process optimization with WebP and AVIF, use the ModPageSpeed 2.0 middleware instead.

Your mod_pagespeed. Maintained again.

Install and run it unlicensed — it fully optimizes and adds an X-PageSpeed-Warn: unlicensed header. Same config, same filters — swap the binary and you're optimizing again. Production use requires a commercial license — but the software never locks you out.