My updated 2022 review and configuration guide for FlyingPress.
A freaken beloved plugin by superstar dev Gijo Varghese. I love this dude and everything he does. As has been mentioned only in 100 different ways in my original: Totally biased review of FlyingPress cache plugin
But let’s get an update today, shall we?
- What’s changed?
- What configuration is best?
Still haven’t purchase it? Get FlyingPress now.
Balanced Feature-sets
FlyingPress has one of the best feature-sets of any cache plugin. This is because all the right features AND NOTHING MORE. I’m not talking about a mediocre Goldilocks solution where it lacks advanced stuff. It has all the basic, intermediate, AND advanced features that you’d need. All the best and most essential ones…and I’d even say unique or uncommon in other cache plugins.
I’ll list my favorites:
- Caching and granular purging – for when content changes affect more than one page.
- Cache lifespan options (from 2hrs to 24hrs) – instead of silly “1 week” options.
- Ignore query strings – to speed up referral clicks from Google, Facebook, etc.
- Critical CSS (force include selectors) – to negate issues with broken CSS when using CCSS feature.
- Lazy render HTML elements – freaken awesome for lazy loading entire page sections
- Load scripts on user interaction – to prevent external asset loads from impacting your page load.
- Self-host Google fonts – locally hosts your Google fonts…freaken awesome!!!!
- Preload Critical Images – to keep ATF images loading faster so your site appears faster for users.
- Placeholder Image for YouTube iFrames – love this feature and also that you can cache these images locally. Would’ve been nice if this feature worked for Vimeo as well….which is highly common for membership sites nowadays.
- FlyingCDN – I don’t know how good/aggressive this is. I never tried it.
In case it isn’t obvious. You can tell Gijo’s cache plugin is a combination of the top cache plugins out there….the features and settings layout is very obviously a combination of LiteSpeed Cache, Swift, and WP Rocket. Basically, the 3 best cache plugins out there.
And his plugin very tastefully cherrypicks all the best features and discards the superfluous ones. I applaud him for that cuz it seems nowadays everyone wants to stuff their plugin full of features to justify charging more for it!
Best settings UI
Super easy to use. You don’t have to scroll endless or read through overly technical instructions. I do feel some settings could have benefitted from a link to a guide with settings recommendations or slightly more explanation for newbies. But really, it’s great. I love it.
Recommended configuration settings:
CACHE:
- Cache Pages – enable this unless you’re diagnosing/developing.
- Additional Auto Purge – default option “NONE” is fine unless you need to also clear other pages.
- Cache Lifespan – most sites should have it on “NEVER”. Otherwise use an interval that matches your update intervals. For example if you update your site every day, then use the 24-hour option.
- Exclude Pages from Caching – list any pages that have dynamic info based on different user or user session. For example…cart, account, checkout, or any page that you don’t want cached.
- Ignore Query Strings – useful to avoid unnecessary page-caching for query strings. Some query strings cause content changes (e.g. language, currency, etc) and should be treated or cached as separate pages. Other query strings don’t cause content changes (e.g. FB/Google trackers, affiliate cookies) and are only used for tracking, so these should be ignored. I recommend placing these 3 on separate lines: fbclid, gclid, utm*, _ga.
- Optimize for Logged in Users – caches logged-in users. I recommend leaving this off. I suppose you could use if your backend is sooooo slow but it’s likely to cause problems. Your best option in this case is to get better webhosting or get rid of slow plugins.
CSS:
- Minify & Optimize CSS Files – I always prefer OFF but you can enable it safely if you really want. I would only use it on lean sites and not for heavy sites with tons of pages and CSS. Although it’s more impactful for larger sites with heavy CSS, it would also slow down your cache build.
- Generate Critical and Used CSS – I hate CCSS and never use it. But nonetheless it’s here if you want to test and see if it makes your site feel faster. Or for pages core purposes.
- Load Unused CSS – in order of least aggressive to more aggressive… async > on user interact > remove. Obviously, the first option is safest and best for newbie users. But if you got skills and time, I recommend testing each option starting from most aggressive to least aggressive. Start with “REMOVE” and then step down from it if you see things break.
- Force Include Selectors – awesome feature to manually specify CSS selectors that were missing from CCSS. Useful complementary feature for those doing aggressive CCSS work.
- Lazy Render HTML Elements – absolutely love this. Use this to lazy load entire slow-loading page sections. I’m not a fan of lazy-loading but will admit this can do wonders for page scores and overall page load times when working with super bloated sites. But you have to choose the right CSS selectors!
JS:
- Minify JavaScript – I always prefer OFF but you can enable it safely if you really want. I would only use it on lean sites and not for heavy sites with tons of pages and JS. Although it’s more impactful for larger sites with heavy JS, it would also slow down your cache build.
- Preload links – I prefer OFF. It’s fun when it works but can be troublesome for many sites. The function preloads links when users hover over it. But can cause high server usage if users hover over many links before clicking. This function may also mess with your cookie tracking (affiliates, etc).
- Defer Javascript – IMO only useful for providing better page scores. But stupid for real-world use if it blocks essential JS from loading on-page items. Basically…you’d be improving page scores at the cost of making your site load slower. (Like I said, stupid.)
- Defer Inline Javascript – useful if it doesn’t affect your visual page load. IMO, it’s safe…but be careful with it breaking ATF items/animations.
- Exclude Scripts from Defer – very useful for big sites where you want some JS deferred but not all. Definitely what I would use for extreme-tuning.
- Load Scripts on User Interaction – wonderful idea to delay loading of external scripts (that are likely not required for your visual page load). List the external request domains here.
FONT:
- Optimize Google Fonts – hell yeah. Awesome feature to locally-load Google Fonts. I don’t know how Gijo automates all this as it’s common for a site to load fonts from many places…theme, pagebuilder, plugin, another plugin, etc. If I were you, I’d try to help this mechanism by loading fonts only from your theme…and then choosing “inherit” from all plugin font settings.
- Display Fallback Fonts – not a fan of this as this would create the ugly FOUT effect.
- Preload Fonts – only needed if your site loads a ton of fonts…which it shouldn’t be.
IMAGE:
- Lazy Load Images – I prefer never lazy loading images because it makes your site appear to load slower.
- Lazy Loading Method – try BROWSER NATIVE first and see if it’s good enough (visually and page score wise). The USING JAVASCRIPT method is more aggressive but also requires an extra JS request.
- Exclude Above Fold Images from Lazy Load – clever feature. Set it to whatever you need. I noticed the default is “2” which makes sense. I assume he intended to exclude the logo and first image in the page/post. But other folks might have more.
- Exclude Images from Lazy Load – also very clever. Useful for header images or any other images that noticeably impact your site’s visual load.
- Add Responsive Images – you can use Gijo’s FlyingCDN or also do this through other plugins…like image optimization plugin. Or maybe your theme already does this as well.
- Add Width and Height Attributes – very useful. Should ENABLE if you’re lazy-loading images.
- Preload Critical Images – ENABLED!
- Disable Emoji – can be ENABLED, since all browsers display emoji’s natively already.
IFRAME:
- Lazy Load iFrames – I absolutely love this. But don’t use if your site auto-plays an important YouTube video right at the top of the page.
- Use Placeholder Image for YouTube iFrames – absolutely useful for YouTube embeds that aren’t auto-played. ENABLED!
- Self-host YouTube Placeholder – great idea, ENABLED!
CDN:
- FlyingCDN > Get Started – I haven’t tried FlyingCDN to know how good it is. You tell me.
- Enable CDN – enable it if you use a traditional CDN that comes with a CDN sub-domain. Do NOT use this if you only have Cloudflare.
DATABASE:
Not really useful IMO. I never mess with database stuff.
- Post Revisions – I personally never delete revisions. But can be useful for big content sites.
- Post Auto Drafts – I personally never delete drafts. But can be useful for big content sites.
- Trashed Posts – delete if you know you don’t need them.
- Spam Comments – saves you a click.
- Trashed Comments – saves you a click.
- Expired Transients – safe to do.
- All Transients – safe to do.
- Optimize Tables – safe to do.
- Automatic Cleaning – I recommend leaving it on NEVER.
Gijo Varghese
Thanks Johnny!
Johnny
You got it, man! It was very fun to see how you laid out the advanced stuff. Clever clever. Next year’s top cache plugin list is gonna have you in the mix.
Eric Embacher
> Cache Lifespan – most sites should have it on “NEVER”
Any plugins that properly implement NONCE (for example WS Forms) require that the cache lifespan is set to less than 10 hours. Given that forms are often used on every page (ex. newsletter subscribe) people should be aware that setting it to never could cause form submissions to not get sent. This was my experience, and the recommendation to always set cache lifespan to < 10 hours came from the WS Forms developer.
Johnny
IMO, you never cache forms. Put them on a page that is never cached. That’s the safest way. That 10-hr lifespan might still give you problems if you have multiple people checking out within that interval.
Torsten Wagner
Hi Johnny,
i’m actually facing the problem, having some forms permanently available from all sites in a popup, so technically i couldn’t cache any site.
Any ideas for that. (Except for not to make such PopUps 😉
Best
Torsten
Johnny
It’s been a while but I think FlyingPress does have hacky workarounds for it. If not, then I’d say Swift has a work-around for sure. But otherwise…I’d suggest maybe just doing with an image of the form or a button that takes them to the (uncached) page with the form.
Torsten Wagner
Thanks. 🙂
Tony
Hey Johny,
I have used your guide to set up FlyingPress.
My website loads faster even on shared hosting.
Johnny
Great news. Thanks for sharing, Tony.
adrian
Hi Johnny, will you update this article for 2023/2024? flyingpress has new features
Johnny
Yes, I do plan to update everything.
joseph B Teolis
I use Perfmatters on my Elementor/REA site. I was excited to add Flyingpress to my site for the full page caching. As discussed in many WordPress site performance optimizing articles, I wanted to avoid the issues associated with two or more plugins/themes trying to optimize the same feature (i.e. removing unused CSS, js, Lazy loading etc.).
Since I am very familiar with using Perfmatters with Elementor, I chose to use it for optimizing and Flyingpress for caching. Unfortunately, every time I did updates on the site Flyingpress resest the optimization settings in Perfmatters. This happened many times and sometimes happened when I wasn’t doing updates, leaving my site very slow and unstable.
I understand the value in having the plugin automatically audit the site for duplicate optimizations but it’s unacceptable for it to automatically alter other plugin’s settings without concurrence from an admin. I believe Flyingpress needs a switch to disable the feature. I am sorry to say that I am removing the plugin.