By the Edwiser Team.
Fed up with the slow loading times of your Moodle site? Then it is imperative that you boost your Moodle performance. Despite common beliefs, Moodle is not slow, but unfortunately low-performing Moodle-based LMS are abundant. The reason is simple: Poorly set up and manages installations. Yes, expert support will dramatically improve your site’s performance. Moodle has shown time and again to be able to provide fast, efficient and highly reliable experiences to hundreds of thousands of users concurrently.
But you don’t need an expert to take advantage of the essential performance tools Moodle has available for you.
The learners of our fast-paced times are smart and tech-savvy. Yet, there is a downside: Lack of patience. For them, a slow website is as good as no website. You cannot afford to have slow-loading e-learning. This is true for all internet: Research indicates that 40% of people will leave a website if it takes longer than 3 seconds to load.
With the dwindling attention span of students, it is advisable to optimize and “boost” your Moodle site load time to prevent unnecessary drop-offs.
Higher load times = needless complexity
Moodle is a boon for all our e-learning folks, speed-crazed IT admins included. Pretty much everything about Moodle is meant to be tweaked and fit your specific needs. But you know it and we all know it too: The process is not always flawless. It is easier said than done. It takes a lot of time and technical know-how to get your Moodle LMS up and running.
Who will linger around a website that takes forever to load? I won’t. It is annoying and we get that. But hang in there because we are about to sort things out for you. it won’t be a surprise when I say that Moodle is complex and requires fine-tuning on the part of educators, system administrators, and developers to deal with slow load times.
5 simple ways to reduce Moodle load times
Making changes to the server may not be possible every time, at least at the educator’s end. Not every teacher has the technical understanding of tweaking servers to fix the high load time issue.
This is true especially when the site is hosted on a third-party server. However, there are some non-technical fixes that the teachers could perform on their site without tampering with the server.
Here’s what teachers could do.
1. Only use necessary filters and features
Multiple active filters could impact server load. Therefore, it is wise to disable all those filters and features that are not frequently used by you and your students.
For instance, the Multi-Embed filter in Moodle is a great plugin to embed third-party content by simply copy-pasting the URLs into the Moodle content. This plugin converts URLs from supported services (Google Docs, YouTube, Quizlet etc.) into embedded content, without any user input. Sounds awesome to me!
But the bad news is: While it works wonders for your Moodle site, it eventually slows down page load. Thinking of the solution, you could use Lazy Loading to deal with this where only a part of the web page that is on high demand or is requested, loads first. Something along the lines of ‘infinity scroll’ – you won’t see the content unless you need it or scroll down to see it!
2. Resize images before uploading
No doubt, images help with improving appeal, navigation, and clarity. But images, especially the high-resolution ones can directly affect the page loading time. Image loading takes up a lot of bandwidth. This makes accessing the course difficult for your students and they are less likely to stay engaged or motivated.
Hence, we recommend resizing images before uploading them. You could use the Image optimizer filter plugin to prevent images from becoming a site load drag. You can even add a link to the images without uploading them, it serves the same purpose and helps reduce overall load time.
3. Remove the recent activity block
The recent activity block gives teachers an insight into the activities done by the students as part of any course. It gives them a clear idea as to who is doing what with respect to activities involved in the course. But this too affects the site loading time. It is recommended to remove this block to improve the page load speed.
We do agree that it is a crucial block on your Moodle site. So, if you wish to retain the recent activity block without slowing down your site speed, you could opt for themes such as Edwiser RemUI. This theme displays “Recent Courses” as a drop-down menu. It displays the recently accessed pages with the least amount of disruption to page load time.
4. Reduce the number of sections on your course settings
You might want to consider this one if your server is drastically slowing down. You could have one section per page in the course layout, instead of all sections in one single page. Let your server take it easy and this also could work to bring down the page generation time.
5. Keep the number of blocks to minimum
In case you need another reminder: Less is more! Course pages with all the blocks displayed will take more load time as well as more RAM. We would advise you to only retain the required blocks on your course pages.
Avoid irrelevant blocks to prevent futile overcrowding of blocks. This does nothing except for putting an extra burden on the server. Therefore, it is best to only add those blocks that support your courses and teaching.
Having limited yet relevant blocks for learning is more likely to keep confusion for students at bay. A nice way to increase engagement, isn’t it? Too many irrelevant blocks can cause too much confusion. Eventually, clear beats clever. Instead of displaying all the blocks, displaying only the absolutely beneficial ones is recommended as it would provide more clarity.
Bonus: Consider cutting down on the number of resources, and activities
You might not be willing to mess with the default structure of your course. Many times it simply is not possible for you. But if you can, just consider this. More compact courses have several productivity and psychological benefits. Think about the activities that you are using, as there might be a simpler alternative right within the LMS.
The more the number of activities and resources, the more time and RAM the site consumes. Instead, it’s a good idea to use folders or experiment with various Moodle tools such as Wiki, Database or the Book module to tackle this issue.
If the above basic to-do list doesn’t make any difference, it’s time for the technical guys to chip in and dig deeper.
Checks on the Technical or Server Elements
1. Hardware Configuration
The system administrator should attempt to increase the amount of RAM/primary memory. This will enable the server to handle more users.
Your RAM on the web server plays a pivotal role here. It’s the core that is ultimately connected to your site speed and overall performance. Moodle is huge and it could sometimes take up a lot of memory per process, sometimes as high as 50MB or even more! So the more RAM, the better. You could also buy cheap web servers and instead invest in more RAM. RAM Using SCSI disks instead of SATA drives is recommended.
As per Moodle guidelines, it is a good idea to have 1 GB RAM for 50 concurrent users (minimum 256 MB) and a minimum free disk space of 160 MB or more to store your teaching material. This is the norm. However, it makes sense to consider the entire combination of your hardware and software elements, to make a well thought-out plan for your Moodle site, especially if it is going to be a large and exhaustive one.
Again, here’s the catch! When we say 50 concurrent users, you must analyze what kind of users they are going to be or what activities they will be doing on your Moodle site. Figure that out because users simply reading from the website won’t create a burden on the server. However, different users performing different activities would definitely exert pressure on the server. So, it is best to do your homework on – the type of courses, type of user activities, your DB server etc.
Also, you could install a RAID controller.
A RAID controller can be a hardware device, something like a RAID card or it could even be a software program. It primarily manages the HDDs (Hard Disk Drives) and SSDs (Solid State Drives) in a PC. The operating system and swap drive could be set up on one set of disks configured as RAID 1. Whereas Moodle, the web and the database server could be set up on another set of disks configured as RAID 5. These steps could effectively help to optimize your Moodle site load time.
2. PHP performance
Use a PHP accelerator to reduce the load on the CPU, for example, APC, WinCache, etc. You need to ensure that the accelerator is compatible with your PHP version.
3. Apache performance
A struggling Apache server can slow down a Moodle site or even cause the Moodle site to crash if the load shoots up. Hence, use the latest Apache version to avoid this.
4. MySQL performance
First things first, calculate how much storage space is used by your Moodle database. Moodle generates website pages as and when they are requested by the users as these pages are not pre-stored on the disk.
When a page loads in response to a specific user request, Moodle reads data from the database and also writes to it. But, the Moodle database is stored on the disk. Therefore, the higher the speed of the read/write process to or from the storage, the better.
The key here is – the faster the storage, the faster your site will be. RAM is faster than disks, so use as much RAM as possible.
System administrators could also use the OPcache extension of Moodle for increased performance, high speed, and low memory usage.
These were some key technical aspects to inspect for optimizing your Moodle site to reduce the load time. However, you may refer to the detailed documentation by Moodle for a step-by-step guide.
5. Set up a Content Delivery Network (CDN)
A CDN is a network of geographically distributed web servers. The primary server holding the main website content is connected to a bunch of surrogate servers. A CDN helps speeds up the site load time. You could implement a CDN for your Moodle website if affordability is not a problem.
The surrogate servers carry the replica of the original server content. On user request, the nearest server responds and provides the user with the requested content. The load on the main server gets distributed on multiple other secondary servers at different locations, delivering content much faster. This process automatically reduces page load time and could improve many other performance indicators.
These were some of the tips you could use to better boost Moodle e-learning site and decrease the load time. An integrated and holistic effort of educators, system administrators, and Moodle administrators can help with effective optimization.
Another tip before signing off…
What if you had prior knowledge of what could happen on your Moodle site? This would be valuable and help you take proactive decisions. Edwiser Site Monitor does exactly that for you. It helps you track your performance parameters and stay on top to cut down on embarrassing student drop offs.
So team up and let this process not overwhelm you. Also, we’d love to know your tips. Tell us how you would prefer to fix your slow Moodle. Got anything on your mind? Enlighten us! Let us know in the comments section below. We are here to hear you out.
Edwiser is a sponsor of LMSPulse.