This is our on going series on Apache optimization and performance tuning, here we are introducing a new Google‘s product called mod_pagespeed module for Apache or Nginx that makes the web site load much faster than ever.

I have personally tested this module on our Live (tecmint.com) server and results are amazing, now the site loads much faster than before. I recommend you all to install it and see the results.
Don’t Miss: 5 Tips to Boost the Performance of Your Apache Web Server
In this article we will show you how to install and configure Google‘s mod_pagespeed module for Apache and Nginx web servers in RHEL/CentOS/Fedora and Debian/Ubuntu systems using official binary packages, so that your system will get regular updates automatically and stays up to date.
What Is Mod_PageSpeed
mod_pagespeed is an open source module for Apache and Nginx web server that automatically optimize Web Pages to improve better performance while serving web pages using HTTP Server.
It has several filters that automatically optimize files like HTML, CSS, JavaScript, JPEG, PNG and other resources.
mod_pagespeed is developed on PageSpeed Optimization Libraries, deployed over 100K+ websites, and provided by most popular CDN and Hosting providers such as GoDaddy, EdgeCast, DreamHost and few to name.
It offers more than 40+ optimization filters, which includes:
- Image optimization, compression, and resizing
- CSS & JavaScript concatenation, minification, and inlining
- Cache extension, domain sharding and rewriting
- Deferred loading of JS and image resources
- and many others…
Currently mod_pagespeed module supported Linux platforms are RHEL/CentOS/Fedora and Debian/Ubuntu for 32 bit and 64 bit distributions.
Installing Mod_Pagespeed Module in Linux
As I discussed above that we are using Google‘s official binary packages to install it for future updates, so let’s go ahead and install it on your systems based on your OS architecture.
On RHEL/CentOS and Fedora
----------- On 32-bit Systems ----------------- # wget https://dl-ssl.google.com/dl/linux/direct/mod-pagespeed-stable_current_i386.rpm # yum install at [# if you don't already have 'at' installed] # rpm -Uvh mod-pagespeed-stable_current_i386.rpm ----------- On 64-bit Systems ----------------- # wget https://dl-ssl.google.com/dl/linux/direct/mod-pagespeed-stable_current_x86_64.rpm # yum install at [# if you don't already have 'at' installed] # rpm -Uvh mod-pagespeed-stable_current_x86_64.rpm
On Debian and Ubuntu
----------- On 32-bit Systems ----------------- $ wget https://dl-ssl.google.com/dl/linux/direct/mod-pagespeed-stable_current_i386.deb $ sudo dpkg -i mod-pagespeed-stable_current_i386.deb $ sudo apt-get -f install ----------- On 64-bit Systems ----------------- $ wget https://dl-ssl.google.com/dl/linux/direct/mod-pagespeed-stable_current_amd64.deb $ sudo dpkg -i mod-pagespeed-stable_current_amd64.deb $ sudo apt-get -f install
Installing mod_pagespeed from binary packages will add a Google’s official repository to your system, so that you can update the mod_pagespeed automatically using package manager called yum or apt.
What Mode_Pagespeed is Installed
Let’s see what packages mod_pagespeed installed on the system:
- It will install two modules, mod_pagespeed.so for Apache 2.2 and mod_pagespeed_ap24.so for Apache 2.4.
- It will install two main configuration files: pagespeed.conf and pagespeed_libraries.conf (for Debian pagespeed.load). If you change one of these configuration files, you will no longer receive future updates automatically.
- A standalone JavaScript minifier pagespeed_js_minify used to minify JS and create metadata for library canonicalization.
About Mod_Pagespeed Configuration and Directories
The module enables following configuration files and directories itself automatically during installation.
- /etc/cron.daily/mod-pagespeed : mod_pagespeed cron script for checking and installing latest updates.
- /etc/httpd/conf.d/pagespeed.conf : The main configuration file for Apache in RPM based distributions.
- /etc/apache2/mods-enabled/pagespeed.conf : The main configuration file for Apache2 in DEB based distributions.
- pagespeed_libraries.conf : The default set of libraries for Apache, loads at Apache startup.
- /usr/lib{lib64}/httpd/modules/mod_pagespeed.so : mod_pagespeed module for Apache.
- /var/cache/mod_pagespeed : File caching directory for web sites.
Important: In Nginx the configuration files of mod_pagespeed typically found under /usr/local/nginx/conf/ directory.
Configuring Mod_Pagespeed Module
In Apache, mod_pagespeed automatically Turn On when installed, while in Nginx you need to place following lines to your nginx.conf file and in every server block where PageSpeed is enabled:
pagespeed on; # Needs to exist and be writable by nginx. Use tmpfs for best performance. pagespeed FileCachePath /var/ngx_pagespeed_cache; # Ensure requests for pagespeed optimized resources go to the pagespeed handler # and no extraneous headers get set. location ~ "\.pagespeed\.([a-z]\.)?[a-z]{2}\.[^.]{10}\.[^.]+" { add_header "" ""; } location ~ "^/pagespeed_static/" { } location ~ "^/ngx_pagespeed_beacon$" { }
Finally, don’t forget to restart your Apache or Nginx server to start mod_pagespeed working properly.
Step 4: Verifying Mod_Pagespeed Module
To verify mod_pagespeed module, we will use curl command to test in on domain or IP as shown:
# curl -D- http://192.168.0.15/ | less
Apache
HTTP/1.1 200 OK Date: Fri, 04 Mar 2016 07:37:57 GMT Server: Apache/2.4.6 (CentOS) PHP/5.4.16 ... X-Mod-Pagespeed: 1.9.32.13-0 ---
Nginx
HTTP/1.1 200 OK Date: Fri, 04 Mar 2016 07:37:57 GMT Server: nginx/1.4.0 ... X-Page-Speed: 1.5.27.1-2845 ...
If you don’t see an X-Mod-Pagespeed header, that means mod_pagespeed isn’t actually installed.
Step 5: Turning the Module On and Off
If you don’t want to use mod_pagespeed completely, you can Turn Off by inserting the following line to pagespeed.conf file at the top.
ModPagespeed off
Similarly, to Turn On module, insert the following line to pagespeed.conf file at the top.
ModPagespeed on
As I said above after installing mod_pagespeed our website loads 40%-50% faster. We would really like to know about your website speed after installing it on your systems via comments.
For more details about configuration, you can check out the official mod_pagespeed page at https://developers.google.com/speed/pagespeed/module/.
What are the changes in results of pagespeed insights test?
@Andre,
Do a pagespeed test at https://developers.google.com/speed/pagespeed/ and see the difference after and before installing mod_pagespeed..
Hi Ravi,
I am facing some issue mod pagespeed. I have installed nginx via rpm and version is
Name : nginx
Arch : x86_64
Version : 1.0.15
can i install in my server …?
@Inderpal,
There isn’t any problem with nginx version, you can install mod_pagespeed on any nginx or apache version..
When installing packages I almost always use yum install (package name) in this way I get all dependencies also included into the install
Hello Ravi!
Thanks for this but ran into an issue. I get the following error:
# rpm -Uvh mod-pagespeed-stable_current_x86_64.rpm
warning: mod-pagespeed-stable_current_x86_64.rpm: Header V4 DSA/SHA1 Signature, key ID 7fac5991: NOKEY
error: Failed dependencies:
httpd >= 2.2 is needed by mod-pagespeed-stable-1.9.32.13-0.x86_64
Centos 6.7
# httpd -v
Server version: Apache/2.4.18
# nginx -v
nginx version: nginx/1.8.0
@Scott,
Have you installed
'at'
package? if yes, then it could be other reason like how did you installed Apache? and mod_pagespeed is asking for httpd >= 2.2, but seems not installed on the system. Could you run the following command and check what it gives output?yum install at
Thank you, Ravi for sharing this info..
Just curious to know what if I’ve latest version of Apache e.g 2.4.18 does this module still supports ?? OS – RHEL 6.0
@Satish,
Thanks for finding my article useful, yes it’s do supports Apache 2.2 and Apache 2.4 as stated in the article..
@Ravi,
Thanks for this valuable post. But seems mod_pagespeed module need to be add nginx while build from source, No dynamic module available for nginx like Apache.
Is your post nginx ?
@Venkat,
Thanks for finding this post valuable, yes you need to add mod_pagespeed module to nginx configuration manually as stated in the article, this article supports both Apache and Nginx, but while installing mod_pagespeed the module auto loaded into Apache, whereas in nginx you need to add manually..
You can follow the guide made by the rtcamp folks to install a version of nginx that already has the module.
Hi, I have installed mod_pagespeed on Centos 7, but if I seek in phpinfo.php not find it. Help me please. Thank you.
@AlbertM,
Have you restarted Apache after installing mod_pagespeed on CentOS 7?
thanks for learning
but i got this error:
# rpm -ivh mod-pagespeed-stable_current_x86_64.rpm
error: Failed dependencies:
httpd >= 2.2 is needed by mod-pagespeed-stable-1.9.32.4-7251.x86_64
my apache version is:
# httpd -v
Server version: Apache/2.2.31 (Unix)
@Reza,
On which version of Linux distribution you’re trying?
Hi Ravi, I got the same. I’ve Centos 6
Thank Ravi Saive so much. I installed in CentOS :)
Hi,
I have installed mod_pagespeed on ubuntu. But could not configure admin console. Please provide me the steps to configure to pagespeed admin console.
Regards,
Krishnaprasad PB
@Krishna,
Surely, will update the article with admin configuration..give a day or two to update the howto…