Interview with Gijo Varghese: Mastermind Behind the FlyingPress WordPress Performance Plugin
FlyingPress is a young, yet extremely impressive, WordPress performance plugin that is steadily growing in popularity among website performance enthusiasts throughout the community. This premium plugin was officially launched in July of 2020. So something good DID actually come out of that dumpster fire of a year. #Rona
At the time of writing this post, March 8th 2022, FlyingPress isn’t even two years old yet. Nevertheless, it is giving the bigger players in the WordPress performance plugin space a run for their money.
WP Rocket, one of the biggest players in the space, has been on the market since July 2013. And even with a lead time of nearly 10 years on FlyingPress, WP Rocket has “adopted” (that’s the nice way of saying it) features pioneered by Gijo Varghese, the Mastermind behind FlyingPress. We touch on that in the interview. Point being – FlyingPress is not a plugin to sleep on.
If you want the best performance possible out of your WordPress site, you need to give FlyingPress a good look. The feature set and ease of configuration makes it one of the absolute best performance plugins of its kind.
If you want to try it out, there’s no free option. But there is a 14-day money back guarantee. So if you’re not blown away by your website’s performance with FlyingPress dialed-in, you can get a refund. No questions asked. That’s how confident the FlyingPress team is about their product.
On to the interview!
How did you decide to make this premium plugin?
Jon: You’ve had several extremely popular free plugins on the WordPress repository for a few years. What convinced you it was time to combine some of the functionality of the free plugins and some previously unseen features into a premium product? I know it was well past time for you to get paid for all that work!
Gijo: When I started building FlyingPress, a few of them asked “why not create more small plugins as you did before, that does one functionality well, as modules. So we can choose accordingly…”
More number of plugins creates more conflicts. If you’re in our Facebook group, you might see posts every day where one of my plugins conflicted with some other cache plugin.
For example, when using Flying Images and Flying Scripts together, we have to parse the HTML twice, which is slightly resource intensive. If it’s a single plugin that does both of them, we’ve to parse HTML only once.
Another example is when you have the Cache Enabler plugin activated, it starts capturing HTML before Flying Scripts (since ‘C’ starts before ‘F’ in plugins order). So it creates conflicts!
We need a single solution that will take care of everything, without creating conflicts, without eating too many resources, without needing a speed optimization expert.
Auto-excluding lazy loading for above the fold images
Jon: This is one of my favorite features of FlyingPress! Automatically excluding a number of images above the fold is a great way to ensure lazy loading doesn’t negatively impact the performance/ visuals of the page load.
What is the primary benefit of this feature as it relates to Core Web Vitals? And at this time, are above the fold images automatically pre-loaded on their respective pages? If not, is that a feature you think is worth incorporating in the future?
Gijo: Lazy loading images is a double-edged sword. It can improve the performance or make it worse!
There were days where the performance of a website was usually measured in “fully loaded time”. Lazy loading all images made that loading time look small.
However, we should always focus on user experience instead of these metrics. For the same reason, Google introduced Core Web Vitals, because they know having a very low “fully loaded time” isn’t always the fastest website for humans.
Core Web Vitals are more focused on real user experience. Metrics like FCP and LCP tells how quick the webpage is “ready” or “visible” for a user. So excluding the above fold images is crucial to improve FCP and LCP.
FlyingPress can automatically detect common above fold images like a featured image of a blog post or manually specify the images and exclude those images from lazy loading
FlyingPress also automatically preload above fold images or any image excluded from lazy loading. Preloading tells the browser to load them on high priority.
FlyingCDN
Jon: I’m a huge fan of the EWWW Image Optimizer plugin. I know it uses BunnyCDN similar to your paid add-on for FlyingCDN. How do you approach using FlyingCDN with FlyingPress?
And is it different from the way EWWW utilizes BunnyCDN? Is there anything unique/custom about your BunnyCDN configuration that other plugins might not be doing?
Are there additional features you have in mind for FlyingCDN in the future? What would you like to incorporate into that functionality?
Gijo: A CDN copy the files to the nearest PoPs (edge servers) to serve them quickly to the users.
FlyingCDN does the same with two key differences, geo-replication and image optimization.
Geo-replication
Normal CDNs only copy the file to the nearest PoP only on request. This is can result in a cache miss and higher latency. FlyingCDN automatically copies your files across different regions giving an unparalleled performance on accessing uncached files.
Image optimization – FlyingCDN take care of all ways to optimize images, like compression, converting to WebP, responsive images, etc.
BunnyCDN vs FlyingCDN
FlyingCDN is built on top of Bunny. However, to get image optimization and other similar features, you’ve subscribe to their “Optimizer” plans which costs $9.5/m. You’ll also need to configure the right headers, cache policy, rues, geo-replication etc. You get all these preconfigured in FlyingCDN for $3/100GB.
Delaying Javascript
Jon: Your FlyingScripts plugin may have been the very first plugin I ever came across that introduced me to the concept of delaying Javascript.
And you’ve even found a way to delay some inline Javascript such as jQuery which is normally not something you can safely defer/delay, right? How did you pull off that magic?? It’s honestly a very impressive feature!
Gijo: This was something we struggled in our website, flying-press.com, when we first designed our site with Oxygen Builder. Oxygen was using some jQuery dependent code for mobile menu.
I wasn’t ready to exclude jQuery from defer, just for this mobile menu. After a lot of trial and error, we figured out the magic trick, “Inline Defer”.
Jon: Many other performance plugins have copied/“adopted” this kind of functionality along with other performance techniques that you have come out within recent years. How do you feel about that? I personally think you deserve more credit for pioneering some of these performance tricks!
Gijo: Some these other paid performance plugins have reached out to me and asked whether I’m willing to sell these plugins. I denied and the next day I see GitHub issues in their repos saying “Copy feature X from plugin Flying Y”. I knew this would happen. My WordPress plugins are open source, anyone can reuse and distribute it. But I wish they put some credit.
Jon: What are your thoughts on delaying all JS by default like WP Rocket has done since versions after 3.8.8? I know it has generated a lot of support tickets for them. And they’re gradually adding to their exclusions list for plugins/themes that aren’t compatible with that functionality.
Gijo: I’m not fan on delaying all JS. We’re a small team, I knew this is going to create a lot of support tickets and frustrated customers. We still do provide an option for advanced customers who wish to delay all JS, just add “script” keyword to the list.
Jon: Is there a better way of approaching this bulk JS delaying without breaking things? Or is that approach the best way, though it’s imperfect?
Gijo: We’re running several experiments internally. We might be able to come up with a better solution sometime in future.
Locally Hosting Fonts
Jon: FlyingPress takes the hassle out of doing the manual work of self-hosting/locally hosting Google Fonts. Thank you for that! Why did you decide to add this feature to the plugin? I think I know, but I want readers to hear it from you! Where do people get themselves in trouble with fonts on their websites?
Gijo: With modern HTTP/2, browser implementation of “Cache Partitioning” and finally the GDPR, it is obvious that we’ve to self-host Google Fonts, both for performance and privacy.
Even though there were 1 or 2 free plugins and some tutorials for self-hosting Google Fonts, they were difficult. Optimizing WordPress shouldn’t be that hard!
FlyingPress self-host Google Fonts with one click, automatically in the background, even when you change the fonts.
The Future of FlyingPress
Jon: Are there any upcoming features you’re excited about releasing? You don’t have to give away any secrets. But I’m curious what the future holds for this great plugin.
Gijo: Currently, I’m working on v4, a major rewrite. It will introduce an improved UI, better performance, integrations and some cool features focusing on dynamic page caching. For example improved caching for WooCommerce, logged-in users, etc.
*End of Interview*