We came across a weird situation at work which we hadn’t seen before where changes to CSS files weren’t being reflected on our Apache served website. Why? The Apache module: Page Speed.
This isn’t a criticism of that - in fact, it’s often said that using that module can sometimes increase the speed of your site 4x. This is a warning, however, and some tips on how to get round the fact that it will aggressively cache your files, and might catch you out!
Assuming you do have Page Speed installed in your Apache website, you can turn off the whole module and instantly see whether caching is causing your issue.
In my installation, I can find the Apache configuration files at this location:
/etc/apache2/ but on other distros, it might be:
/etc/httpd, so experiment with your site.
Starting from the location of your Apache installation, we want to look into the
mods-available folder and if you see the Page Speed configuration file, you have it installed.
$ cd mods-available
Assuming it is, let’s switch it off.
$ sudo nano pagespeed.conf
Now look for the line which will probably say
ModPagespeed on and replace
off. Save the file.
Lastly, restart Apache
$ sudo service apache2 restart
If you visit your site, should Page Speed have been the cause of caching your files, it shouldn’t be now.
Still inside the
mods-available folder mentioned above, you can quickly find out which folder is being used to cache files with this command:
/etc/apache2/mods-available$ grep ModPagespeedFileCachePath pagespeed.conf
Make a note of that folder because you can use it to empty the cache, later.
This is a handy URL you can use to switch off Page Speed. From what I can tell, it doesn’t empty the cache, but stops some of the bundling that Page Speed does. Try it and see; visit:
Once you know where the files are being cached (see Determining the Cache Folder), there is an easy way to tell Page Speed to empty the cache. Either create or refresh a named file in that location, which you can do like this:
$ sudo touch /var/cache/mod_pagespeed/cache.flush
Remember to replace the folder path with your cache folder, if necessary.
touch, if you wasn’t aware, is a useful command that will either make a file or reset its timestamp to the current date and time.
Assuming Page Speed is running, a short while later (under a minute), and the whole cache should be emptied ready for your to test your website again.
Hi! Did you find this useful or interesting? I have an email list coming soon, but in the meantime, if you ready anything you fancy chatting about, I would love to hear from you. You can contact me here or at stephen ‘at’ logicalmoon.com