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
.