mod_pagespeed¶
Warning
Mod_pagespeed may cause stability issues! Enable mod_pagespeed AT YOUR OWN RISK! Enabling mod_pagespeed may cause random server crashes due to bugs in mod_pagespeed. Please disable mod_pagespeed if that happens. There is no other way to fix it. Please do NOT contact support about mod_pagespeed issues.
Note
For WordPress site optimization, LiteSpeed WordPress Cache Plugin is recommended to perform the PageSpeed optimization instead of using the mod_pagespeed module.
mod_pagespeed
is a web server module developed by Google. It automatically applies chosen filters to pages and associated assets (stylesheets, JavaScript, and HTML files), as well as to images and website cache requirements. It does not require modifications to existing content or workflow, meaning that all internal optimizations and changes to files are made on the server side, presenting modified files directly to the user.
Since version 5.2, LiteSpeed Web Server provides PageSpeed support. It is possible to enable both PageSpeed and LSCache together in theory, but we don't recommend it.
Note
PageSpeed and LSCache/LiteMage (and all other full page caches) should never be used together in a real production environment.
LSCache is recommended to boost your site performance. When a page is cached, it can no longer be run through PageSpeed for HTML improvements, though the PageSpeed optimizations to CSS, JS, and image files will be in effect. Most importantly, when PageSpeed is used, it generates different output for different browsers, which means that the output is not cache friendly.
Requirements¶
- LiteSpeed Web Server v5.2+
- 64-bit Linux
Note
PageSpeed must be enabled via LiteSpeed Web Server native configuration.
Enable mod_pagespeed support¶
- Navigate to WebAdmin Console > Configuration > Server > PageSpeed
- Set Activate PageSpeed to
Yes
(the main switch to turn onmod_pagespeed
) - Set Enable PageSpeed to
No
(do not turn it on at server level) - Set PageSpeed Settings to
pagespeed FileCachePath /tmp/lshttpd/pagespeed;
and add any additional rule settings on separate lines
For a control-panel server, PageSpeed must be enabled through Apache configuration. Enabling through LSWS Web Admin will only impact the virtual hosts that were created through the LSWS native configuration. By design, it will not affect any virtual hosts set up through Apache configuration.
To enable PageSpeed, loadModule
and FileCachePath
are required at the server level. ModPagespeedFileCachePath
should not be set at the virtual host level. Enabling independent PageSpeed file cache for each vhost is very costly. It takes a lot of resources and should be avoided in shared hosting environments. ModPageSpeed On
at the server level will turn on PageSpeed server wide. This is not recommended for shared servers, as PageSpeed can be resource heavy and may negatively impact performance.
Tip
We recommend setting ModPageSpeed unplugged|off
at the server level, and ModPageSpeed on
for the vhosts or directories which need it.
ModPageSpeed unplugged
bypassesmod_pagespeed
hooks.ModPageSpeed off
goes throughmod_pagespeed
hooks with PageSpeed turned off.
You can set ModPagespeed off
in the Apache main configuration and you can use ModPageSpeed On
to turn it on via virtual host configuration or a .htaccess
file.
Install PageSpeed¶
Use EA4 Experimental Repo¶
The ea-apache24-mod_pagespeed
package is in the EA4 Experimental repo at the time of this writing so you will need to enable EA4 Experimental repo first. Some servers may not have EA4-experimental.repo
installed on the server, but you can create one.
cd /etc/yum.repos.d
vi EA4-experimental.repo
[EA4-experimental]
name=EA4 Experimental ( EasyApache 4 )
mirrorlist=http://httpupdate.cpanel.net/ea4-experimental-c$releasever-$basearch-mirrorlist
gpgcheck=1
gpgkey=https://securedownloads.cpanel.net/cPanelPublicRPMKey.asc
enabled=1
cost=50
yum install ea-apache24-mod_pagespeed
Check the PageSpeed File¶
The package includes the PageSpeed binary for Apache modules/mod_pagespeed.so
and conf files such as conf.modules.d/456_pagespeed.conf
.
vi /etc/apache2/conf.modules.d/456_pagespeed.conf
Make sure pagespeed_module
is loaded and On
and also ModPagespeedFileCachePath
is set.
LoadModule pagespeed_module modules/mod_pagespeed_ap24.so
ModPagespeed on
ModPagespeedFileCachePath "/var/mod_pagespeed/cache/"
Restart LSWS.
service lsws restart
Note
Turning on PageSpeed through 456_pagespeed.conf
will turn on PageSpeed globally, which is not recommended for a shared hosting environment. We recommend turning off PageSpeed on a global level and only enabling it for the virtual hosts that need it.
Verify PageSpeed is Enabled¶
Once you have enabled mod_pagespeed
optimization, you can verify it works by browser developer tools, page source, or third party tools.
Method 1: Dev Tool¶
After enabling the PageSpeed module, you can verify that it is enabled by reviewing the response headers though your browser's developer tools:
You can also check the headers by curl command:
curl -s --head http://example.com | grep -i pagespeed
>>> X-LS-Pagespeed: 2.1-1.11.33.4
curl -s --insecure --head https://example.com | grep -i pagespeed
>>> X-LS-Pagespeed: 2.1-1.11.33.4
Method 2: Page source¶
View page source by opening the browser and then pressing Ctrl+U.
Without PageSpeed, an image filename in HTML will look like this: wordpress/wp-content/uploads/2017/09/hero.jpg
With PageSpeed, an image filename in HTML will look like this: wordpress/wp-content/uploads/2017/09/hero.jpg.pagespeed.ce.xzcpK71Gsf.jpg
Locate the Config File¶
If you see the PageSpeed header and want to locate where PageSpeed was enabled, try the case-insensitive grep from the Apache configuration.
For example, under cPanel environment, go to /etc/apache2/
, and run the following command:
grep -r -i --exclude-dir=logs pagespeed *
root@uniform [/usr/local/apache/conf]# grep -r -i pagespeed *
httpd.conf:Include "/usr/local/apache/conf/pagespeed.conf"
httpd.conf.bak:Include "/usr/local/apache/conf/pagespeed.conf"
httpd.conf.ea-make-install:Include "/usr/local/apache/conf/pagespeed.conf"
httpd.conf.ea-make-install,v:Include "/usr/local/apache/conf/pagespeed.conf"
httpd.conf.ea-make-install,v:Include "/usr/local/apache/conf/pagespeed.conf"
httpd.conf.ea-make-install,v:Include "/usr/local/apache/conf/pagespeed.conf"
httpd.conf.ea-make-install,v:Include "/usr/local/apache/conf/pagespeed.conf"
httpd.conf.ea-make-install,v:Include "/usr/local/apache/conf/pagespeed.conf"
httpd.conf.ea-make-install,v:Include "/usr/local/apache/conf/pagespeed.conf"
httpd.conf.ea-orig:Include "/usr/local/apache/conf/pagespeed.conf"
httpd.conf.easyapache_save:Include "/usr/local/apache/conf/pagespeed.conf"
httpd.conf,v:Include "/usr/local/apache/conf/pagespeed.conf"
httpd.conf,v:Include "/usr/local/apache/conf/pagespeed.conf"
httpd.conf,v:Include "/usr/local/apache/conf/pagespeed.conf"
httpd.conf,v:Include "/usr/local/apache/conf/pagespeed.conf"
httpd.conf,v:Include "/usr/local/apache/conf/pagespeed.conf"
httpd.conf,v:Include "/usr/local/apache/conf/pagespeed.conf"
httpd.conf,v:Include "/usr/local/apache/conf/pagespeed.conf"
httpd.conf,v:Include "/usr/local/apache/conf/pagespeed.conf"
httpd.conf,v:Include "/usr/local/apache/conf/pagespeed.conf"
httpd.conf,v:Include "/usr/local/apache/conf/pagespeed.conf"
pagespeed.conf: LoadModule pagespeed_module modules/mod_pagespeed.so
pagespeed.conf: LoadModule pagespeed_module modules/mod_pagespeed_ap24.so
pagespeed.conf:<IfModule pagespeed_module>
pagespeed.conf: # Turn on mod_pagespeed. To completely disable mod_pagespeed, you
pagespeed.conf: ModPagespeed off
pagespeed.conf: # Direct Apache to send all HTML output to the mod_pagespeed
pagespeed.conf: AddOutputFilterByType mod_pagespeed_OUTPUT_FILTER text/html
pagespeed.conf: # The ModPagespeedFileCachePath and
pagespeed.conf: # ModPagespeedGeneratedFilePrefix directories must exist and be
pagespeed.conf: ModPagespeedFileCachePath "/var/mod_pagespeed/cache/"
pagespeed.conf: # Override the mod_pagespeed 'rewrite level'. The default level
pagespeed.conf: # ModPagespeedDisableFilters and ModPagespeedEnableFilters
pagespeed.conf: # directives, below. Valid values for ModPagespeedRewriteLevel are
pagespeed.conf: # ModPagespeedRewriteLevel PassThrough
pagespeed.conf: # conjuction with ModPagespeedRewriteLevel. For instance, if one
pagespeed.conf: # ModPagespeedDisableFilters. This directive contains a
pagespeed.conf: # ModPagespeedDisableFilters rewrite_images
pagespeed.conf: # conjuction with ModPagespeedRewriteLevel. For instance, filters
pagespeed.conf: # ModPagespeedEnableFilters rewrite_javascript,rewrite_css
pagespeed.conf: # ModPagespeedEnableFilters collapse_whitespace,elide_attributes
pagespeed.conf: # ModPagespeedDomain
pagespeed.conf: # ModPagespeedDomain cdn.myhost.com
pagespeed.conf: # ModPagespeedFileCacheSizeKb 102400
pagespeed.conf: # ModPagespeedFileCacheCleanIntervalMs 3600000
pagespeed.conf: # ModPagespeedLRUCacheKbPerProcess 1024
pagespeed.conf: # ModPagespeedLRUCacheByteLimit 16384
pagespeed.conf: # ModPagespeedCssInlineMaxBytes 2048
pagespeed.conf: # ModPagespeedImgInlineMaxBytes 2048
pagespeed.conf: # ModPagespeedJsInlineMaxBytes 2048
pagespeed.conf: # ModPagespeedCssOutlineMinBytes 3000
pagespeed.conf: # ModPagespeedJsOutlineMinBytes 3000
pagespeed.conf: # ModPagespeedImgMaxRewritesAtOnce 8
pagespeed.conf: # When Apache is set up as a browser proxy, mod_pagespeed can record
pagespeed.conf: # ModPagespeedSlurpDirectory ...
pagespeed.conf: # ModPagespeedSlurpReadOnly on
pagespeed.conf: # mod_pagespeed circumvents this limitation, but if you employ
pagespeed.conf: # ModPagespeedMaxSegmentLength 250
pagespeed.conf: # Uncomment this if you want to prevent mod_pagespeed from combining files
pagespeed.conf: # ModPagespeedCombineAcrossPaths off
pagespeed.conf: # ModPagespeedLogRewriteTiming on
pagespeed.conf: # added that sends latency beacons to /mod_pagespeed_beacon. These
pagespeed.conf: # statistics can be accessed at /mod_pagespeed_statistics. You must also
pagespeed.conf: # enable the mod_pagespeed_statistics and mod_pagespeed_beacon handlers
pagespeed.conf: # ModPagespeedEnableFilters add_instrumentation
pagespeed.conf: # You can use a different location by adding the ModPagespeedBeaconUrl
pagespeed.conf: <Location /mod_pagespeed_beacon>
pagespeed.conf: SetHandler mod_pagespeed_beacon
pagespeed.conf: # ModPagespeedStatistics off
pagespeed.conf: # This page lets you view statistics about the mod_pagespeed module.
pagespeed.conf: <Location /mod_pagespeed_statistics>
pagespeed.conf: SetHandler mod_pagespeed_statistics
From this output, you should be able to locate /usr/local/apache/pagespeed.conf
.