About This File
Afterburner - S3 Advanced Caching (Lite) is a plug-in which helps improve cache performance on compressed, cacheable IPS Community CSS and JS files (Theme Resources) stored remotely on Amazon S3.
Afterburner - S3 Advanced Caching (Lite) provides:
- Increased Caching Performance - Helps reduce page loading times.
- Increased Caching Efficiency - Helps reduce server load, bandwidth costs.
- Potential to boost SEO performance, since Google favours faster loading websites.
- Low cost provides a high Cost to Benefit Ratio.
- One off price, includes free compatibility updates for current major version of IPS.
- Easy to install. Starts working immediately in conjunction with IPS background tasks.
- Lite version requires no additional configuration in AdminCP. After installer/updater completes, just run the Support Tool to rebuild your theme cache at S3.
- Works on all installed themes JS/CSS resources, both official and third party themes, with no limit on number of themes.
- Just leave Enabled. Can be removed at any time, but of course you would instantly lose the extra headers & related benefits if disabled or uninstalled.
- Adds additional Request Headers automatically to each relevant, publicly cacheable, compressible IPS theme JS/CSS file.
- Works silently in the background, whenever IPS Community Suite exports theme resources to AWS S3. Even if you install a new theme.
- Improves the individual Vary: Accept Encoding PageSpeed test score at GTMetrix, and overall GTMetrix scores.
- Improves the Add Expires related YSlow test score at GTMetrix.
- Helps maintain an A(100) GTMetrix Pagespeed score on your Amazon S3-hosted IPS Theme JS and CSS theme files in the background. (If you also have other third party compressed files hosted elsewhere, such as Google APIs etc, they are beyond our control but Afterburner will still boost the test rating for your relevant IPS Theme Resource files that you host at S3).
- Requires working AWS S3 or S3 compatible storage bucket.
- Works either with or without an optional CDN such as Cloudfront, Cloudflare etc.
What's it for?
This plugin was created for IPS Community admins who in particular seek the benefits and efficiency of increased caching performance. After a lot of research, trial and error trying to resolve the problem of Amazon S3 hosted, compressible IPS4 theme resource not passing the GTMetrix.com Vary: Accept Headers and YSlow Add Expires tests, which effectively means lower GTMetrix scoring.
After finally confirming the additional caching headers needed for compressed, cacheable files to pass the Vary: Accept Encoding PageSpeed and YSlow Expires tests, it quickly became clear that if you want to maintain persistent higher score ratings and the associated performance and efficiency benefits there was a slight caveat.
Due to the frequency that those resource files get regenerated, re-cached and re-uploaded in the background to your S3 bucket, it can quickly become a time-consuming, frustrating and repetitive task as it requires the admin to keep manually replacing the additional headers via the Amazon S3 Management Console (sometimes multiple times a day depending upon the circumstances).
When AWS S3 hosted Gzipped/Brotli-encoded JS and CSS theme files change, either manually by the admin such as installing or updating a theme, plug-in or app, running the Support Tool or following various automated system tasks, the additional manually added headers are lost.
Therefore, a plug-in to automate the process of adding the additional headers would seem an ideal, easy to use alternative solution compared to say, writing and maintaining an Amazon Lambda script to inject the necessary headers.
So how does it work?
IPS 4.4 has a lot of great performance improvements already, but if you opt to use Amazon S3 to store your IPS Community theme files, Afterburner S3 Advanced Caching (Lite) will automatically add additional caching headers to each of the relevant publicly cacheable, compressible theme JS and CSS files, whenever IPS Community Suite exports them to S3.
Afterburner Lite automatically adds Expires headers to each .gz file which are set in this Lite version to automatically expire after 8 days, sufficiently long enough to pass the relevant GTMetrix Vary: Accept Encoding test. See the attached screenshots on the download page for more.
Afterburner automatically works via Curl or Socket IPS file transfers by hooking into both, depending upon how your server is configured.
Afterburner therefore helps improve caching performance on those S3 hosted theme files, which in turn helps reduce page loading times throughout IPS Community Suite, whichever apps or third party add-ons or themes you have installed it doesn't matter.
Thanks to BFarber for suggesting alternative HTTP hook-points.
How do I use it? Does it have any adjustable settings?
This is the 'Lite' version which requires no further configuration after installing. I recommend running the Support Tool afterwards, see TIPS section below. The necessary caching headers it creates are pre-set to expire after 8 days. Afterburner (Lite) doesn't alter anything else but S3-hosted theme JS and CSS files in transit to your S3 bucket.
This is my first plugin for IPS. If there is enough interest, I'm hoping to create a more fully featured app version with additional features, stats and admin configurable Settings etc, so you can tweak the caching performance to suit your individual needs.
- Compatible with latest IPS Community Suite 4.4 series. Developed on 4.3 and tested on all current versions of 4.4, including 4.4.4, 4.4.3, 4.3.6.
- Requires a pre-configured and properly working Amazon AWS S3 storage bucket (Versioning mode recommended), correctly set up in IPS Community AdminCP to host your Theme Resources (Files > Storage Settings under Theme Resources). See the IPS Help Guide for more.
How do I install Afterburner?
This is an IPS plugin, so after downloading it, install the Afterburner XML file via the AdminCP > System > Plugins > Install New Plugin facility.
IPS Community will install the plugin and enable it, and Afterburner will then inject the relevant additional caching headers to your js.gz and css.gz files as they next upload to your pre-configured S3 bucket used for Theme Resources.
I do recommend running the AdminCP Support Tool after installing/updating the plugin to re-cache and upload ALL relevant files rather than waiting for the next scheduled task or manual action that will update them.
If you are also using a CDN such as Cloudfront, Cloudflare etc, I also found it useful in testing to clear/invalidate Cloudfront/Cloudflare afterwards, instead of waiting for them to next update themselves when they check for updated files and send to their respective Edge locations.
How to update to a newer version of Afterburner?
To upload a newer version, just use the usual Upload New Version button next to Afterburner in your list of plugins.
Does it work on cloud hosted IPS Communities (CiC)?
I don't see why not, as long as you have S3 hosted theme resource files. I only have self hosted IPS sites myself.
How do I know it's working?
There are a few ways to test.
You can benchtest your site at GTMetrix before and afterwards. Look out for the Vary: Accept Encoding Pagespeed test score.
You should see a A(100%) score for the test after installing Afterburner (unless your site also uses other external cacheable compressed files etc which you don't have control over such as at Google APIs etc).
If you then look at the Waterfall tab, and choose a gzipped JS or CSS theme file hosted in your S3 bucket, you should see similar to this:
Alternatively, you can use the Amazon S3 Management console to view the Meta headers on the actual stored gz files as seen in the screenshot below:
Another way to see if the Expires headers have been added to S3 hosted cacheable JS/CSS files is to use the developer console in your Chrome or Firefox browser (hit F12 and reload the page):
What's New in Version 1.0.1 See changelog
Fixed transparent screenshot only. No changes to xml file.