How ModPageSpeed 2.0 shares one memory-mapped cache between nginx and the worker, serving large cache hits zero-copy with kernel sendfile and small ones with a single copy, while staying correct under concurrent writes.
Head-to-head cache benchmark: Cyclone (memory-mapped, in-process RAM tier) vs. the classic file-per-entry cache, across concurrency, realistic traffic, latency tails, and eviction, on fast and realistic storage.
mod_pagespeed 1.15 ships an experimental, off-by-default RSL-CAP gate for nginx: validate Authorization: License capability tokens and refuse unauthorized AI-crawler access at your origin. Preview, not GA.
ModPageSpeed detects C2PA / Content Credentials manifests and preserves image provenance instead of stripping it during optimization — on by default in both engines.
ModPageSpeed 2.0 serves a clean markdown variant on Accept: text/markdown and synthesizes an /llms.txt index from your sitemap, generated at your own origin. Experimental, 2.0-only, license-gated, off by default.
mod_pagespeed 1.15 ships an nginx Web Bot Auth verifier that checks RFC 9421 signatures and labels each request in $x_verified_bot. Observe-only, default off.
SSRF protection for headless browser rendering: ModPageSpeed 2.0 forces Chrome offline, routing subresources through an IP-pinned fetch re-checked per redirect.
Default cache TTL when no Cache-Control: per-content-type heuristic TTLs, RFC 9111 Age adjustment, and the shared-vs-private cache split in ModPageSpeed 2.0.
Headless LCP and CLS measurement in ModPageSpeed 2.0: injected PerformanceObservers capture the real LCP element and layout shifts to drive preload hints.
How ModPageSpeed 2.0 warms hot-URL caches: nginx flags a hot URL and the worker pre-builds the whole image variant matrix — format, viewport, density, Save-Data — instead of encoding one variant per request.
How a headless Chrome V8 coverage pass measures which JavaScript actually executes before first paint, so ModPageSpeed 2.0 can safely defer the scripts that never run on load.
To minify JavaScript safely you have to parse it, not strip whitespace. How ModPageSpeed 2.0's tokenizer handles automatic semicolon insertion, regex-vs-divide, and a parse-error fail-safe that ships the original untouched.
How to serve markdown to AI crawlers on the same URL via Accept: text/markdown, synthesize /llms.txt from the sitemap, and honor AI opt-out directives.
How a proxy generates server-injected resource hints: speculation-rules prefetch derived from real traffic, priority-bucketed preconnect, font preload.
How ModPageSpeed 2.0 scores encoded images against a SSIMULACRA2 image quality target and re-encodes until the result clears tolerance, not a quality knob.
How cache key derivation in ModPageSpeed 2.0 hashes host plus URL into one key and scores stored variants in one selector pass instead of probing many keys.
Cache-Control safety in ModPageSpeed 2.0: why must-revalidate, not max-age, is the real safety net, and when aggressive TTLs with stale-if-error and stale-while-revalidate are the right call.
Conditional revalidation vs purge: when a 304 ETag round-trip beats PURGE and preserves optimized AVIF/WebP variants on an HTML-only deploy with no rebuild.
How critical CSS extraction works without a build step: the original beacon model, why CDNs broke it, and how 2.0 moved to heuristics + headless Chrome.
How ModPageSpeed 2.0 feeds the Chrome Coverage API critical CSS: inline cached stylesheets into a network-blocked sandbox so it reports real used vs unused CSS.
ModPageSpeed 2.0 keeps optimization work off the nginx request path with fire-and-forget IPC to the worker: a small notification, no reply, so a cache miss stays cheap and requests never wait on an encode.
Content-aware image optimization classifies decoded images and denoises noisy sources before encoding, so photos, screenshots, and logos get the right codec.
Does mod_pagespeed break a strict Content-Security-Policy? Where automatic rewriting collides with a CSP, feature by feature, and how the HonorCsp directive keeps optimized pages policy-compliant.
How ModPageSpeed 2.0 precomputes 103 Early Hints preloads and lets nginx serve them from cache, using sentinel cache keys — the reserved Viewport=3 trick — to store them alongside per-URL content variants.
Purging one URL in ModPageSpeed touches more than one cache entry. The fan-out problem, the lookup-time design 1.x used, and why 2.0 deletes immediately.
Raster to SVG auto-vectorization in ModPageSpeed 2.0 traces qualifying logos and icons with VTracer, collapsing the @1x/@2x/viewport matrix into one variant.
How ModPageSpeed 2.0 hashes a page template so critical CSS is computed once and reused across every URL sharing that template, with analysis-queue dedup to skip redundant renders.
ModPageSpeed 2.0 pixel-diffs the rendered above-fold before caching a headless critical-CSS variant. If the optimized page looks different, the gate discards it and keeps the heuristic version.
How a WordPress server-side page cache plugin sets Cache-Control on anonymous pages and purges the ModPageSpeed cache on publish, instead of caching in PHP.
Google's new Search Console AI performance report measures your visibility in AI Overviews and AI Mode, not how fast your pages load. The difference, explained.
AVIF beats WebP on size but is slower to encode. In 2026, serve AVIF, WebP, or the original per request off the Accept header instead of picking one format for everyone.
One perception-based quality knob; a trained model predicts the right JPEG, WebP, and AVIF encoding parameters per image in microseconds. No per-codec tuning, self-hosted.
A native nginx module that transcodes images to WebP on serve, content-negotiates on Accept, and caches the variant. Install from signed apt/yum, no compiling.
Image SaaS bills per transformation and per GB of egress. Self-hosted optimization transcodes WebP/AVIF on your servers at a flat per-site cost — no third party.
A content hash in a .pagespeed. URL gives mod_pagespeed year-long caching with automatic cache busting — the same idea webpack contenthash and Cache-Control: immutable landed on later. Plus what data-pagespeed-url-hash actually is.
40% of the top 1,000 sites serve almost nothing to non-JavaScript AI crawlers — ChatGPT, Perplexity, and Claude see an empty page. The data, and how to fix it.
Serve WebP and AVIF from ASP.NET Core with no controller or Razor changes. WeAmp.PageSpeed middleware does Accept-header content negotiation, viewport sizing, and LCP preload.
How to fix INP on ASP.NET Core: Razor + jQuery responds well to bundling and the WeAmp.PageSpeed middleware; Blazor Server INP is architectural and needs WASM.
The dl-ssl.google.com mod_pagespeed .deb is Google's last stable build, 1.13.35.2 (2018), with years of unpatched CVEs. Get the maintained download for Apache, nginx, and IIS instead.
Yes, mod_pagespeed is deprecated: the 1.13.35.2 binaries run but haven't had security updates in years. What to use instead on Apache, nginx, IIS, and ASP.NET Core.
A working docker-compose.yml for ModPageSpeed 2.0 on nginx: worker + interceptor + shared Cyclone cache volume. Verify with curl, apply a license, done.
Extract and inline critical CSS at the nginx layer for any backend (PHP, Rails, Django, ASP.NET, Go). No WordPress plugin. No headless browser. No Node build step.
Fix Largest Contentful Paint on ASP.NET Core: async view components, immutable cache headers, deferred JS, and the WeAmp.PageSpeed middleware — for Razor Pages, MVC, and Blazor Server.
mod_pagespeed 1.15 ships 765 merges since 1.13.35.2: image-decoder hardening, a full sanitizer matrix, a current dependency graph, and the IIS port in the C++ tree.
How to fix INP on nginx: a CMS-agnostic guide. Server-layer JS minification helps if your JS is bloated; if your stack is already lean, the wins are upstream.
Fix Cumulative Layout Shift on nginx-served sites: rewrite img tags to add width/height with ngx_pagespeed (mod_pagespeed 1.15), add a CSS aspect-ratio backstop, and ship dimensions at build time.
How to fix LCP on nginx: HTTP/2, gzip_static, TLS resumption, and the mod_pagespeed rewriter. Stack-agnostic LCP fixes that work behind any backend in 2026.
Fixing INP on Magento 2: the interaction cost lives in KnockoutJS and RequireJS, so theme architecture (Hyvä) moves it, not a server rewriter — plus exactly what mod_pagespeed can and cannot do.
Fix Cumulative Layout Shift on Magento 2 product pages: stop Fotorama gallery jumps, pre-size the mini-cart and private-content blocks, and write img dimensions at the server layer.
How to fix LCP on Magento: tame the RequireJS waterfall, regenerate catalog images, inline critical CSS at the server. Step-by-step for Magento 2 in 2026.
Fix LCP on WooCommerce: shrink the product gallery, drop cart-fragments on non-shop pages, and rewrite catalog images at the server with mod_pagespeed.
How to fix LCP on WordPress: diagnose the hero, inline critical CSS at the server, convert JPEG to WebP, and verify in Search Console. Step-by-step, 2026.
Google mod_pagespeed and ngx_pagespeed are no longer actively developed. Two maintained successors — mod_pagespeed 1.15 and ModPageSpeed 2.0 — exist. Here is how to choose.
Run the ModPageSpeed 2.0 optimization pipeline as ASP.NET Core middleware via NuGet — image transcoding, critical CSS, and cache serving in two lines of C#, no nginx reverse proxy required.
Migrate from Google's mod_pagespeed 1.13.x or ngx_pagespeed to ModPageSpeed 2.0: directive mapping, Docker Compose setup, image-format checks, and a verification checklist.
How ModPageSpeed 2.0 extracts and inlines critical CSS two ways: static heuristics in under 5ms on every page, plus an optional headless-Chrome path for true above-the-fold rules at First Contentful Paint.
Image CDNs run $35–$3,500/mo as traffic grows; self-hosted ModPageSpeed stays flat. Break-even is ~300–500K requests/mo. Full 2026 cost model, no bandwidth fees.
How ModPageSpeed 2.0 reads the Save-Data request header to serve lighter image variants -- a 30-50% bandwidth cut stacked on top of format and viewport optimization.
Measured ModPageSpeed 2.0 results on e-commerce, blog, news, and portfolio sites: WebP/AVIF image savings and real LCP, FCP, CLS, and Lighthouse gains on 3G, 4G, and broadband.
Serve WebP and AVIF automatically on nginx, self-hosted. ModPageSpeed 2.0 decodes each image once and generates up to 37 responsive variants across format, viewport, and pixel density.
The story behind ModPageSpeed 2.0 — why mod_pagespeed is no longer actively developed, what was kept from PSOL, and how a new architecture replaced the RewriteDriver.