How to Speed Up Your WordPress LMS Website
Having a fast website is mandatory to grow your audience. This will help you having a better user experience, better SEO, more traffic, and more conversions. In this training we are going to go through the different solutions to make your LifterLMS website faster.
How to Speed Up Your WordPress LMS Website
WP Rocket co-founder Jean-Baptiste Marchand-Arvier joins Chris Badgett to explain how caching, images, and hosting affect WordPress LMS speed. You will learn what caching actually does, why images are usually the biggest slowdown, how to read a Pingdom or GTmetrix report, and which LifterLMS pages should never be cached.
What You’ll Learn
- What caching is, and the difference between browser cache, PHP OPcache, WordPress object cache, and full-page cache
- Why images typically make up 60 percent of a page’s total size, and how lazy loading and compression fix that
- How to read a Pingdom or GTmetrix report instead of chasing a single grade
- Which WordPress LMS pages, like login and the student dashboard, should never be cached
- The difference between what your host handles and what your caching plugin handles
Key Takeaways
- Install a caching plugin first. It is the single biggest speed lever available before anything else is worth doing.
- Compress and lazy load your images. At roughly 60 percent of page weight, images are the fastest way to cut load time.
- Never cache login pages, checkout pages, or the student dashboard. Use logged-in caching or manual exclusions instead.
- Read the detail behind a speed test grade, not just the grade itself. A slow third-party script like Google Analytics can tank your score even though you cannot fix it directly.
- Match your hosting to your traffic. A good caching plugin reduces server load, but it cannot compensate for a host with too few resources.
Frequently Asked Questions
WP Rocket automatically excludes WooCommerce pages like checkout and cart from its cache, and the team works with plugin developers to add similar exclusions. For LifterLMS specifically, use the logged-in cache option and manually exclude any page that must stay fully dynamic, such as login and password reset pages.
Clearing cache rules out two common causes: your browser or server still holding an old, unversioned file, or the caching plugin failing to regenerate its page snapshot after an update. It is a fast way to confirm whether what you are seeing is stale content or a real bug.
No. The student dashboard shows progress bars and account data that change constantly, so caching it would need to be cleared almost immediately and would add extra work instead of saving any. Leave highly dynamic pages like this uncached, and use logged-in caching for pages that change less often.
The admin area is never cached because everything in it is dynamic, and WordPress Heartbeat sends a background request every few seconds to refresh things like comment counts. The free Heartbeat Control plugin from WP Rocket lets you disable or throttle those requests.
Yes. Lazy loading changes how your pages load images on the front end, not the image files themselves, so it applies to every image already in your media library the moment you activate it. No re-upload or bulk process is required.
The video file itself usually is not the slow part. It is the third-party JavaScript the embed loads, which you cannot control once it comes from Wistia’s or Vimeo’s own servers. WP Rocket lazy loads YouTube embeds by default so the script only loads when a visitor reaches that lesson.
WordPress’s native search was not built to query large libraries quickly and gets slow fast. A dedicated search service that indexes your content separately, such as Algolia, returns results instantly without adding load to your database.
Install a caching plugin if you do not already have one. It is the highest-leverage change available and will make a bigger difference than any other single fix, after which you can dig into image optimization, hosting, and the rest.
Full Webinar Transcript
Why LifterLMS Course Creators Should Care About Website Speed
Chris Badgett: Hello and welcome to this webinar training. I’m joined by Jean-Baptiste, JB for short, from a WordPress company called WP Rocket. This presentation is about how to make your website faster. WP Rocket has been in the space for about seven years, focused on the problem of website speed and WordPress. JB, thank you for coming in front of the LifterLMS course building community. We really appreciate it.
Jean-Baptiste Marchand-Arvier: Thank you so much. That’s great to be here. I’m excited about this community. The people on this call are really into learning and getting better as a culture and a community value, but also because the people who build online courses and training-based membership sites, the website is the business. It’s not just a brochure for the business. They’re super focused on making sure the platform is high quality, that their learners have a great user experience, and speed plays a big part in that.
Chris Badgett: There are people in this audience with different levels of technical ability. Some are brand new to WordPress, others are advanced power users building these types of sites for clients. So it’s a broad mix, and we’re looking to learn from you today. We also have a caching expert, a speed expert, with us today, so please ask lots of questions in the chat or the Q&A box. I’ll hand it over to you, JB. Teach us about speed, teach us about WP Rocket, and how we can level up our websites, which are the biggest asset we have as course creators.
Introducing JB And WP Rocket
Jean-Baptiste Marchand-Arvier: Thank you. So the idea is we need to teach about speed, not definitively about specific tools. It’s to tell you what caching is, why speed is important, what information you can get, and basically how you can make your website faster and your users happier. A brief introduction about me, though it’s not that important: I’m the co-founder and CEO of WP Media, and at WP Media we’re focused on helping people have a faster website. We have two main products. The first is WP Rocket, a caching plugin for WordPress used by almost a million websites. The other is Imagify, a tool that optimizes your images, making them smaller without losing quality. We optimize about two million images per day.
A fast website matters for a simple reason: do you like to wait? People don’t like waiting for a slow website, and usually the answer when you have to wait is you close the page and go to another website. So as website owners, it’s really important that our websites load fast, otherwise our visitors go to the competitors. It’s not just our visitors either. Google’s crawlers have a budget for how much time they spend on your website, and even though Google’s budget is big, it isn’t unlimited. If your website is too slow, Google won’t crawl as much of it, which can hurt your SEO.
If you’re selling things on your website, which is usually the case with an LMS, and people wait too long, they’re not going to buy, because they won’t trust you. If it takes ten seconds to load your pricing page, or something feels off when they go to pay, they’ll leave. And even though internet bandwidth keeps getting bigger, websites keep getting bigger too, and people are often on mobile with a poor connection. So it’s important that your website stays fast for everyone, all the time.
What Caching Actually Means
Jean-Baptiste Marchand-Arvier: Let’s start with cache, because that’s usually one of the biggest points of confusion. People always hear “enable cache,” “clear your cache,” but not many people actually know what cache is, even though the concept is simple.
Chris Badgett: For me, a cache is a snapshot of your website that’s not loaded dynamically from the database. That’s my understanding if I had to say it simply.
Jean-Baptiste Marchand-Arvier: That’s a great answer for static cache, which is what caching plugins usually do, but the concept of caching is much bigger than that. We have cache everywhere: in our phones, in our browsers, in servers, in DNS, in everything. Here’s a simple way to think about it. If I ask you what the answer is to a multiplication problem, you don’t know it right now, so you’d open a calculator and work it out. But if I ask you again ten seconds later, you’d just give me the answer, because you already calculated it and it’s still in your memory. That’s basically what cache is: storing information temporarily so it can be reused later without recalculating it.
Because websites hold a lot of dynamic information, cache is usually kept for something small, like a day or a week, and it depends on the information itself. Let’s say you want to display your number of Twitter followers on your website. You’d ask Twitter’s API for that number and store it temporarily, because you don’t need a fresh number every second. You might store it for a day, which means you’re not asking Twitter every single time, and it’s faster for your visitor too.
How Browser Caching Stores Your Static Files
Jean-Baptiste Marchand-Arvier: There are several kinds of cache for your website. The first, and the easiest to understand, is browser cache. Every browser, whether it’s Chrome, Safari, or Firefox, has some memory it uses to display websites faster. With browser cache, we tell the browser to store certain files for a specific amount of time. These are usually static files: CSS, JavaScript, images, and videos.
If I load the same image on a website I’ve already visited, there’s no reason to request it again from the server. It could simply be pulled from the browser’s own memory, which is much faster and puts less load on the server. To do this, we put information on the server telling the browser how long to keep a file. There are two ways to do it. One is “expires,” where we give the browser a specific date, like “keep this file until October 2042.” The other is “cache control,” where we say “keep this file for two hours, one month, six months, ten years,” whatever criteria makes sense.
The browser stores this information tied to the file’s name, which creates a problem. If you update a file, like your style.css, most browsers will still have the old version cached and won’t know to grab the new one. The solution is versioning: adding something like a version number to the end of a filename, so the browser sees it as a different file and knows to fetch the fresh copy. This is why people sometimes ask “have you cleared your cache,” when what actually should have happened is the developer updating the file name. With a good caching plugin, this is handled automatically, so you won’t need to do it by hand. One important rule: you should never cache the HTML itself in the browser, because the file name for HTML never changes, so there’s no way to signal an update, and your visitors would never see new content.
Why PHP And WordPress Have Their Own Caching Layers
Jean-Baptiste Marchand-Arvier: WordPress and LifterLMS are both coded in PHP, which is an interpreted language. That means every time a PHP file is requested, the server reads it and rewrites it into another language the machine can actually run, and that takes time. PHP cache, known as OPcache, solves this by storing that rewritten version so the server doesn’t have to regenerate it on every request. OPcache has been automatic and enabled by default since PHP 5.5, which is old at this point, so it’s always worth making sure your host keeps PHP updated. When we look at customer websites, we still sometimes see very old PHP versions, and that alone can make a site slow.
WordPress also has its own object cache and transients, which are more relevant to developers. These are PHP functions built into WordPress that let you store information temporarily in the database. Going back to the Twitter follower example: instead of requesting the count from Twitter’s API on every single page load, you can store it using a transient for a couple of hours, so it only gets requested occasionally. WP Rocket does something similar internally. For example, counting the number of websites using our plugin requires a long database query, so we store that number in WordPress cache and refresh it only every six hours, since we don’t need an exact count in real time.
How Page Caching Turns WordPress Into A Screenshot
Jean-Baptiste Marchand-Arvier: This is usually the type of caching with the biggest impact on performance: static or full-page cache. Here’s what happens without it. When a visitor loads a page, WordPress has to run a lot of requests: figure out what page it is, pull the content from the database, check whether the visitor is logged in, and so on. That’s a lot of PHP and MySQL work, and it gets slower the more traffic or dynamic content you have.
Since most pages don’t change on every single visit, there’s no reason to rebuild that content from the database every time. Instead, we ask WordPress to generate the page once, save it as a plain HTML file, and serve that file to every visitor after that. It’s essentially a screenshot of the page. The tricky part is that WordPress content is still dynamic. If you publish a new blog post, your homepage or blog page needs to reflect that. So a caching plugin like WP Rocket automatically deletes the old screenshot and generates a fresh one whenever something changes on your site, which is why it’s worth using a proper caching plugin rather than trying to build this yourself.
Performance isn’t just one thing. It’s a combination of static cache, correctly configured browser cache, and a handful of other good practices bundled together. That’s the idea behind WP Rocket: take everything a performance expert would do manually and make it automatic, so by default, enabling the plugin turns on browser cache, static cache, and everything else we can safely set up for you. There are other solid options too, like WP Super Cache or W3 Total Cache, and it’s worth testing a few to see what you prefer.
Always Update Your Server, PHP, And WordPress
Jean-Baptiste Marchand-Arvier: The first piece of general advice, and it’s mostly common sense, is to update everything you can: your web server, your version of PHP, your version of WordPress, and your plugins whenever updates are available. Developers are usually focused on making their plugins and themes faster with every release, so staying current is almost always a speed win on its own.
Why Good Hosting Matters More Than Any Plugin
Jean-Baptiste Marchand-Arvier: You can follow every good practice on caching and updates, but if you’re on a poor hosting plan with limited resources, none of it will work as well as it should. Make sure you’re on hosting that’s trustworthy and recommended, because that alone can make a big difference.
What Minification Does To Your CSS And JavaScript
Jean-Baptiste Marchand-Arvier: Another thing WP Rocket and similar plugins do is minification. If you look at a raw CSS file, it’s full of comments, blank lines, and extra formatting that helps humans read it but that a browser doesn’t need. Minifying removes all of that to make the file smaller. It’s not a massive change on its own, but plugins like WP Rocket or Autoptimize automatically pull in your CSS and JavaScript files and strip out everything unnecessary, and smaller files load faster.
Why Images Are 60 Percent Of Your Page Weight
Jean-Baptiste Marchand-Arvier: Roughly 60 percent of the size of a typical website comes from images alone, which is huge. Reducing the number and size of images you display helps a lot, but the good news is you don’t have to remove images to get there.
How Lazy Loading Cuts What The Browser Has To Load
Jean-Baptiste Marchand-Arvier: The first solution is lazy loading. If I land on a homepage and haven’t scrolled yet, there’s no reason for the browser to load every image on that page, including the ones further down that I haven’t seen. Lazy loading holds off on loading images until you actually scroll to them, and visually you won’t notice a difference, because the image loads just before it comes into view. Across a whole page, that adds up to a real change. We released a free plugin for this called Lazy Load by WP Rocket, and it’s available in the WordPress plugin repository.
How Image Compression Shrinks Files Without Losing Quality
Jean-Baptiste Marchand-Arvier: The second solution is compression. An image can often be made 20 to 80 percent smaller in file size with no visible difference in quality. If a page is carrying ten megabytes of images and you can bring that down to five, that’s a huge change, especially for a visitor on mobile with a poor connection. This is what our other plugin, Imagify, does: it optimizes your images in one click. If you already have a large media library, there’s a bulk optimization option that runs through everything at once, and after that, every new image you upload gets optimized automatically.
What The WebP Image Format Does And Its Safari Problem
Jean-Baptiste Marchand-Arvier: There’s also a newer image format called WebP, created by Google, which produces much smaller file sizes than JPEG. The catch is that not every browser can display it. Chrome can, but older Safari versions could not. So what Imagify and similar plugins do is generate a WebP version of every image and serve it to browsers that support it, while automatically falling back to the original JPEG or PNG for browsers that don’t, so nothing ever breaks for a visitor on the wrong browser.
Why You Should Disable Plugins You Are Not Using
Jean-Baptiste Marchand-Arvier: This is common sense too, but it’s easy to overlook. If you’re not using a plugin, disable it and remove it. Most plugins load their own CSS and JavaScript files, and if that plugin isn’t providing any value, there’s no reason to make your visitors’ browsers load those files. If you’re unsure which of two similar plugins to use, it’s worth testing both and comparing the performance impact.
How A CDN Puts Your Website Closer To Every Visitor
Jean-Baptiste Marchand-Arvier: Another thing that can have a big impact is a CDN, a content delivery network. The idea is simple: your static files, CSS, JavaScript, images, get replicated across many servers around the world, so a visitor’s browser can pull them from a location close to them instead of all the way from your original server. If your website is hosted in the United States and I’m visiting from France, even with fast internet, that round trip takes longer than pulling the same files from a server in Europe. If you have visitors spread across different regions, or even just across a country as large as the US, a CDN can make a real difference.
Three Tools For Measuring Your Website Speed
Jean-Baptiste Marchand-Arvier: Performance is something you need to measure, not just eyeball. There are three tools we typically recommend for beginners and intermediate users. The first is Pingdom, which is great for getting a straightforward loading time. The second is GTmetrix, which gives you a breakdown of specific things you can improve. The third is a tool that also gives performance recommendations, though its exact name did not come through clearly in this recording; we’ve flagged it as an open item below rather than guess.
One important note: be careful how you read a performance grade and a loading time number. Most people use Google PageSpeed to measure their site, and even though it’s a great tool, its advice can be hard to interpret and hard to act on. You need to understand what a report is actually telling you before you try to fix everything it flags.
Why Page Size Matters As Much As Load Time
Jean-Baptiste Marchand-Arvier: Here’s an example from a Pingdom test on a client website. The loading time looked reasonably good, under two seconds, which we’d generally call okay, ideally under one second. But the page size was almost 14 megabytes, which is far too big. We usually recommend staying under two to three megabytes, five at the most. Pingdom itself tests over a fast connection, so the load time looked fine in the report, but on a connection closer to one megabit per second, 14 megabytes could take 14 seconds just to load. Numbers on their own can be misleading, so it’s worth digging into what’s actually driving them.
How To Read A Pingdom Waterfall Report
Jean-Baptiste Marchand-Arvier: If you look at the size breakdown by content type on that same test, images made up about 95 percent of the total page size. If that site simply added lazy loading and compressed its images, it could cut that down dramatically and get much faster with very little effort.
Another thing worth understanding is the request waterfall these tools generate, which shows every request your page makes. On this example, there were a lot of repeated requests going out to Facebook and Instagram, each one adding its own connection overhead, like opening a new connection and doing a DNS lookup. One of those requests, just to display something like a lightbox, took around 500 milliseconds on its own, which is a long time for one small feature. Performance is always a balance. You can still use something like that, but it’s worth knowing the cost and considering whether a lighter alternative would serve your users better.
Why Third-Party Scripts Like Google Analytics Hurt Your Grade
Jean-Baptiste Marchand-Arvier: GTmetrix works a bit differently. It gives you a grade, but more importantly, it gives you specific recommendations you can click into for more detail. A common one is “leverage browser caching,” which means a resource being loaded doesn’t have browser cache headers set, so the browser isn’t being told to save it. If you look at the details, some of those flagged files belong to your own website and you can fix them directly. But others, like Google Analytics, are loaded from someone else’s server, and you have no control over how they’re cached. Google Analytics typically ships with a two-hour browser cache window, and if you run a speed test with analytics enabled, it will show up as a bad grade even though there’s nothing you can do about it. So when you read one of these reports, focus first on fixing what’s actually on your own server, since that’s what you can control.
How WP Rocket Handles Caching For LifterLMS And WooCommerce
Chris Badgett: A question from the audience: do you have a caching standard, specific installation parameters, to implement for a LifterLMS website? I’ll share a link in the chat to our documentation on caching FAQs. The biggest issue our users run into is around dynamic content, where customers say they can’t log in, or their login is going to weird places, or password reset is broken. Can you speak to that? Is that more common on cheaper, more economical hosting that caches everything, or is it more likely an improperly configured caching plugin?
Jean-Baptiste Marchand-Arvier: Most of the time it’s the caching plugin. A caching plugin serves a screenshot of a page, and if it’s not configured correctly, or not coded to know that certain pages, like a login page, should never be cached, you’ll run into exactly this kind of problem, because those pages need to stay dynamic. We don’t know the exact compatibility details for every plugin out there, but we try to work closely with plugin developers so we can automatically exclude pages that shouldn’t be cached. For example, all WooCommerce pages are automatically excluded from WP Rocket’s cache, so there’s nothing to configure there. When we’re not automatically compatible with something, there are two solutions: enable logged-in cache, which serves a separate cache to logged-in visitors, or manually exclude specific pages from caching entirely.
Chris Badgett: LifterLMS has its own e-commerce system, but it also integrates with WooCommerce if people want to use that. What parts of WooCommerce should never be cached beyond checkout?
Jean-Baptiste Marchand-Arvier: The checkout flow and anything related to order confirmation. If your order just went through, but the page shows a previous order’s confirmation because it was cached, that obviously won’t work, so those pages are automatically excluded. A good thing about WooCommerce is that the cart and order details are usually rendered dynamically by default, so even on a cached page, that content stays live and there’s nothing to worry about there.
Why Support Teams Ask You To Clear Your Cache
Chris Badgett: What’s actually happening when a support team, whether it’s LifterLMS or someone else, tells you to clear your cache and see if the issue goes away?
Jean-Baptiste Marchand-Arvier: It’s partly because sometimes an update doesn’t get picked up through file versioning the way it should, and sometimes a caching plugin, including WP Rocket, has a bug where the cache doesn’t get properly cleared after a change. Asking someone to clear their cache is a fast way to rule out stale content as the cause before digging further.
Chris Badgett: With LifterLMS, a website can look very different depending on whether you’re a visitor, a logged-in user, or someone enrolled in a course or membership. We often tell people to test in an incognito window, or even a different browser, so they can see what the site looks like for different types of users. Does incognito mode disable caching entirely?
Jean-Baptiste Marchand-Arvier: It depends, for two reasons. First, in incognito mode you won’t be logged in, and most caching plugins, including WP Rocket, don’t serve the logged-in cache to a logged-out visitor, so you’ll see the standard cached version. Second, since it’s a fresh browser session, there’s no browser cache either, so all your CSS and JavaScript get pulled fresh. That’s exactly why we recommend testing in incognito: you can be confident you’re seeing the current, un-cached version of the site.
Should The LifterLMS Student Dashboard Be Cached
Chris Badgett: If there’s highly dynamic content, like WooCommerce’s My Account page, or LifterLMS’s student dashboard, should those pages never be cached, or is there some kind of user-specific caching that works for them? A student dashboard has a lot of dynamic content: progress bars that are constantly changing and so on.
Jean-Baptiste Marchand-Arvier: A user-level cache would be the ideal setup, but if a page changes constantly, caching doesn’t really pay off, because you’d be regenerating it almost as often as you’d be serving it, and generating the cache itself takes extra work. For something as dynamic as a student dashboard, it usually doesn’t make sense to cache it at all. But if it’s more like a standard account page that doesn’t change that often, logged-in caching works fine.
Why WP Rocket Turns On Most Settings By Default
Chris Badgett: With something like an SEO plugin, installing and activating it is only the first step, there’s more work to actually get results. How does that compare with WP Rocket? If I install and activate it, what do I get automatically, and if there’s more to do, where should I focus first for the most value?
Jean-Baptiste Marchand-Arvier: We took the opposite approach on purpose. SEO requires you to take action, it can’t really be automated. With WP Rocket, we followed WordPress’s own philosophy of “decisions, not options.” The more settings you hand a user, the more likely they are to feel unsure and afraid to break their website, so they end up not using a feature at all even though it could have helped. We made the call to reduce the number of decisions as much as possible, so about 70 to 80 percent of good performance practices are already turned on the moment you activate WP Rocket. There are a few extra settings we can’t safely enable by default because they could cause conflicts on some sites, but if you’re not sure or you’re nervous about breaking something, simply activating the plugin gets you most of the benefit right away.
Who Is Responsible For Speed, Your Host Or Your Caching Plugin
Chris Badgett: Help people understand the difference between what a hosting company does for caching versus what a plugin like WP Rocket does. Some people are on managed WordPress hosting, like WP Engine or Kinsta, which is popular in this community, and others are on more economical shared hosting. How should they think about whose responsibility speed is: the host, the caching plugin, or the tools they choose to use?
Jean-Baptiste Marchand-Arvier: Most hosting companies don’t do much page caching themselves, because they can’t easily tell when a WordPress page has actually changed and needs to be regenerated. What we usually see instead is something like micro-caching, where all content is cached for a short window, ten to thirty seconds, which still has a real impact. Some hosts, like WP Engine, run their own static caching layer, and we’ve worked directly with them to make sure WP Rocket is fully compatible. In fact, we’re the only caching plugin approved to run on their platform. When we detect a site is on WP Engine, we automatically disable our own static cache feature so the site benefits from their built-in caching plus all of WP Rocket’s other optimizations, without the two systems conflicting. As a general rule, if your host has built-in caching, use it, and let your caching plugin focus on the other optimizations instead of fighting over the same job.
Chris Badgett: How does a more expensive hosting plan actually help with speed? When a host tells you that you need to upgrade because of traffic or concurrent users, what are you really getting?
Jean-Baptiste Marchand-Arvier: It’s hard to generalize because hosting companies vary so much in what they offer. Most hosts don’t include caching at all, they just host your site, and it’s up to you to optimize it. What they usually bill you for is your server’s ability to handle PHP requests. If you reduce the number of PHP requests your site generates by using a good caching plugin, you can often handle more traffic without needing to upgrade to a bigger, more expensive plan, because most of your visitors are being served cached pages instead of hitting PHP directly.
Why The WordPress Admin Feels Slower Than Your Front End
Chris Badgett: Can you help us understand why the WordPress admin area is sometimes slow, even when that doesn’t mean the front end of the site is slow?
Jean-Baptiste Marchand-Arvier: There’s no caching on the admin area, and for good reason: everything there is highly dynamic, since you’re creating or reading fresh content. The admin also loads a lot at once, all of your plugin settings, database information, and so on, which is part of why it can feel slow. On top of that, WordPress runs something called Heartbeat, which sends a request to the server every several seconds to refresh things like new comments in real time. That’s useful if you want to see updates appear automatically, but it also adds ongoing server load, and it’s not always necessary.
Chris Badgett: I just put a link in the chat. WP Rocket has a free plugin called Heartbeat Control. What does that do?
Jean-Baptiste Marchand-Arvier: It’s a feature we also include inside WP Rocket, similar to Lazy Load, that we broke out as its own free plugin. It lets you disable or throttle Heartbeat, since those repeated requests can affect your site’s performance, especially if you don’t actually need real-time updates in the admin.
Does Lazy Load By WP Rocket Fix Images You Already Uploaded
Chris Badgett: I want to make sure I understood you correctly on the Lazy Load plugin, which is also linked in the chat. Does it retroactively fix images you’ve already uploaded?
Jean-Baptiste Marchand-Arvier: Yes. It works on your front end, changing how your pages load images that are already there, so we don’t touch or replace the actual image files. As soon as you activate it, it applies across every page on your site, no re-upload needed.
How To Speed Up Wistia Vimeo And YouTube Course Videos
Chris Badgett: Course creators host a lot of video: lesson videos on Wistia, Vimeo Pro, or YouTube. If I pull up a speed report for lifterlms.com, one of the flagged items is Wistia. What can we do when we’re relying on that much video?
Jean-Baptiste Marchand-Arvier: We already lazy load YouTube embeds by default, so the video’s script doesn’t load until a visitor actually reaches that part of the page, which helps a lot. We’re not yet compatible with Wistia in the same automated way.
Chris Badgett: Just so people understand: we generally recommend not self-hosting your own video files, so using Vimeo Pro, Wistia, or YouTube is the right call. But even an embed comes with a cost.
Jean-Baptiste Marchand-Arvier: Right, and what’s actually slow usually isn’t the video file itself, it’s the JavaScript that a service like Wistia loads to run the player, and that’s something we can’t directly control since it comes from their server. We do have a feature in WP Rocket that lets you pull certain external JavaScript files and serve them from your own server instead, which is much faster, and we already do that for things like Facebook and Google Analytics. I’ll check with our team about doing the same for live chat widgets and similar tools, since that could genuinely help.
Why WordPress Native Search Is The Wrong Tool For Big Course Libraries
Chris Badgett: Some course creators, especially ones with bigger membership sites, want more advanced search so people can find courses and lessons on specific topics. Searching means querying the database, which can get heavy. Any tips there?
Jean-Baptiste Marchand-Arvier: Honestly, don’t use WordPress’s built-in search for that. I don’t have deep experience with the WordPress search internals specifically, but WordPress itself isn’t an efficient tool for search. On our own site, we use a dedicated service called Algolia, which lets you implement genuinely fast search. It indexes your content and lets you query it instantly, which isn’t something WordPress can do well on its own, since it wasn’t built as a search technology in the first place. You’ll need to load their JavaScript to use it, but the search experience itself will be fast and efficient.
Getting Lazy Load And Heartbeat Control For Free
Chris Badgett: Can the Lazy Load plugin be used without also using WP Rocket? Can people just install it and get started on its own?
Jean-Baptiste Marchand-Arvier: Yes, for free, just install it on its own. Same with Heartbeat Control. We took some of WP Rocket’s core features and released them as standalone free plugins, so people can get some of the benefit even if they want to keep using a different caching plugin, and if they want more later, they can look at WP Rocket itself.
What The Data Says About Speed And Conversion Rates
Chris Badgett: Do you know of any studies or general rules of thumb around speed and conversion rate, the kind of thing where a delay of a certain number of milliseconds correlates with a drop in sales?
Jean-Baptiste Marchand-Arvier: There’s research out there, including some well-known tests from companies like Amazon around how small delays affect sales, and there are a lot of numbers floating around on this. We think those studies matter, though we haven’t run that kind of test ourselves. What we do know from working directly with users is simple: people don’t want to wait, and if a site is too slow, visitors leave and don’t come back to buy.
Designing For Learners On Slow Or Mobile Connections
Chris Badgett: One thing that gets this audience in particular is that course creators are often building and testing on a laptop with great office internet, but a student taking the course on a cellular connection, or somewhere with slower internet, has a completely different experience of the same website.
Jean-Baptiste Marchand-Arvier: Exactly, and it’s easy to forget that when everything looks fast from your own office. For someone on a genuinely poor connection, a slow site doesn’t just feel slow, it can fail to load at all, and they’ll go somewhere else instead.
Chris Badgett: Is there anything that can automatically adjust based on connection speed, the way some video platforms lower video quality on a weaker connection?
Jean-Baptiste Marchand-Arvier: That’s mostly out of our control since it happens at the server and hosting level rather than in a caching plugin, though it’s technically possible and would be genuinely useful, especially for large files like video. For something like a single image, it wouldn’t make much difference either way.
Chris Badgett: I also see people run into trouble with page builders, once they get excited about animations, background images, and parallax effects. One thing I do, even though I’m not always great about it myself, is remove an entire row on mobile, or drop a background image on mobile, in tools like Beaver Builder, just to keep that in mind.
Jean-Baptiste Marchand-Arvier: Exactly right.
The One Change That Will Make The Biggest Speed Difference
Chris Badgett: What are your top low-hanging-fruit tips? If someone is just getting started with speed and isn’t especially technical, what should they do first?
Jean-Baptiste Marchand-Arvier: I might be biased, but install a caching plugin if you don’t already have one. That alone will be a huge change for your website, and from there you can dig into the finer points of performance.
Chris Badgett: Should people get into the habit of running images through something like TinyPNG before uploading, or is that extra work if you’re already using a plugin like Lazy Load?
Jean-Baptiste Marchand-Arvier: Those are two different things. A tool like TinyPNG reduces the size of an image file, and lazy loading controls when that image gets loaded. We’d recommend doing both. Imagify does the same kind of compression automatically through the plugin, so if you’re already using it, you don’t need to run images through a separate tool by hand.
Chris Badgett: Just to be clear, WP Rocket and Imagify are two separate plugins from the same company. What’s different about the paid version of Imagify versus the free one?
Jean-Baptiste Marchand-Arvier: It’s the same optimization, the difference is just the monthly quota for how many images you can process. The free plan includes 25 megabytes, which works out to about 250 images a month, plenty for a smaller site without a lot of images. If you’re uploading a large volume of images every month, you’d need a paid plan for more quota.
Chris Badgett: And that works retroactively too, in one click, on images already in the media library?
Jean-Baptiste Marchand-Arvier: Yes, the bulk optimization runs through your entire existing media library and optimizes everything, and if you enable WebP, it converts and serves that format automatically. If a visitor is on Safari and can’t display WebP, we detect that and serve the optimized JPEG instead, so nothing ever breaks.
Chris Badgett: Do you have any community resources, like a Facebook group, for people who want to go deeper on speed?
Jean-Baptiste Marchand-Arvier: We do. We have a Facebook group with around 7,000 members where people share a lot about performance, and we publish content on our own blog focused on making websites faster.


