Server Setup

Do what PageSpeed module does, without PageSpeed module

by ,


We have by far the largest RPM repository with dynamic stable NGINX modules and VMODs for Varnish 4.1 and 6.0 LTS. If you want to install nginx, Varnish and lots of useful modules for them, this is your one stop repository to get all performance related software.
You have to maintain an active subscription in order to be able to use the repository!

The PageSpeed module (ngx_pagespeed, for NGINX) is there to optimize your website client-side performance automatically.

However, it does make a burden on your CPU and RAM with every request. By its nature, it always does stat calls to cache extended and optimized resources. So if in case of PHP OPCache you can do revalidate_timestamps set to Off, there is no such magical switch for PageSpeed’s cache.

Why PageSpeed module is good

The primary benefits of PageSpeed module are those things that can not be easily configured in NGINX:

  • Optimize images and serve WebP images for supporting browsers
  • Minifying CSS and Javascript files
  • Concatenating assets (no longer needed, really in an HTTP/2 world)

In this (now stub) post, I will give an overview of methods to achieve what PageSpeed module does, all without using it and even better 🙂

Ideally, you implement a git workflow for your website and optimizing client-side performance is done:

  • once at the very beginning
  • upon every deployment

Optimize images

You can optimize website images automatically.

Minify CSS and Javascript files

You can use Closure Compiler for Javascript files. To install it in CentOS 7:

yum install https://extras.getpagespeed.com/release-el7-latest.rpm
yum install closure-compiler
  1. NearlyNormal

    It would be good to have some more info on how to use this. Will CSS/JS be auto-minified and combined? Will WebP work automatically?

    Reply

Leave a Reply

This site uses Akismet to reduce spam. Learn how your comment data is processed.