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

PageSpeed Optimization Libraries (PSOL)

PSOL was Google's server-independent C++ optimization engine — the core inside mod_pagespeed that rewrote HTML, CSS, JavaScript, and images. Google archived it in 2020. The engine kept working, and it's still maintained. Here's how to run it today.

What PSOL was

A set of C++ classes that optimized web pages and the resources they load, independent of any one web server. The same core powered mod_pagespeed on Apache and ngx_pagespeed on nginx. It ran on Linux, and building it meant building mod_pagespeed first.

What happened to it

Google released its final open-source version in 2020 and archived the project. Development continued at We-Amp B.V., founded by a former mod_pagespeed maintainer. The optimization algorithms PSOL proved across billions of pages still ship today — patched for CVEs, built on modern toolchains, and supported.

Run the optimization engine today

PSOL is no longer a standalone build target. The same core now ships three ways. Pick the one that matches where your HTML lives.

In your web server — mod_pagespeed 1.1

A drop-in module for Apache, nginx, IIS, and Envoy. Your existing mod_pagespeed configuration keeps working.

Read the 1.1 docs →

In front of any origin — ModPageSpeed 2.0

A separate worker process optimizes any HTTP origin and is driven by an HTTP API. Nothing to compile into your server.

Read the 2.0 docs → · Worker HTTP API →

Inside ASP.NET Core — WeAmp.PageSpeed

A NuGet package runs the native C/C++ core inside your .NET request pipeline via P/Invoke. No reverse proxy, no sidecar.

Install via NuGet →

Looking for the old API docs?

The Doxygen class reference that lived at /psol/hierarchy.html is gone, and we don't publish PSOL as a standalone library to link against. If you came here for programmatic access to the optimization engine, the 2.0 worker HTTP API is the maintained equivalent — every endpoint the web console uses is open to your own scripts.

Worker HTTP API →