The Uncanny Owl Blog
We love helping people discover WordPress and use it in creative ways. In fact, its one of the things that sets us apart in the LearnDash consulting space—we’re educators first, developers second. Every project we work on puts heavy emphasis on training clients to use their platforms effectively and delivering a great learning experience to users. We spend a lot of time teaching people to use WordPress and we’re always looking for better ways to deliver WordPress training.
That’s why we were very excited to partner with Mike Brown of TheBloggingBuddha to create an easier way to help beginners learn WordPress. What really sets TheBloggingBuddha apart is that it’s very simple, it’s comprehensive, and it’s free. An account is only needed to track progress and issue rewards.
TheBloggingBuddha walks new WordPress users through the entire website creation process, from buying a domain and hosting to setting up pages, posts and plugins in WordPress. By the end of the WordPress Orientation course, learners will have a fully-functional blog up and running; and best of all, they’ll understand how to use and maintain it.
Here’s a video that explains TheBloggingBuddha:
TheBloggingBuddha website is, of course, powered by LearnDash. That’s why we’re profiling it! The site itself is the result of a collaboration between Mike Brown (TheBloggingBuddha), Bourn Creative (site and theme development), and Uncanny Owl (all things LearnDash-related and authoring of the WordPress Orientation course).
What visitors to our blog will especially like is that it’s one of very few examples of a robust LearnDash site where all LearnDash courses are available to everyone at no cost. It’s often hard to showcase LearnDash on WordPress sites because the LearnDash content is only available to paid users. With TheBloggingBuddha everything is free—even without an account (users without an account just can’t see videos).
For our LearnDash readers, you can jump straight to lessons on how to start a blog to see how the course was set up in LearnDash. LearnDash was only lightly styled, and the Course Grid and BadgeOS plugins help to improve the look & feel as well as engagement. We did some development to handle things like a personal greeting, encouraging users to create an account, and redirections, but we really kept plugins and development to a minimum. It’s a great example of what can be done with LearnDash and some very minor customizations.
We hope you enjoy TheBloggingBuddha and find it useful, both for WordPress training and as a LearnDash showcase!
Update: Please note that this post is a summary of tests we conducted to assess the number of simultaneous learners a site can support, not total learners in a system. LearnDash can accommodate tens of thousands of users in the database, but most hosts can’t accommodate that number of learners being on the site at the same time. The tests in this article were to assess how many simultaneous learners the hosting plans could accommodate.
At Uncanny Owl, we’ve been building and managing LearnDash sites for several years. In that time, you might think that we’d have a hosting solution for every possible type of LearnDash site, but we simply don’t. We have LearnDash sites on Flywheel, WP Engine, Cloudways, Kinsta, even Digital Ocean and Vultr instances. We set each site up on a platform that’s a suitable fit for the site and volume of learners, and generally we target accommodating 25 to 50 simultaneous learners. That might sound like very few, but we find it’s enough even for sites with several thousand learners. It’s just very rare for a large group of learners to visit the site and complete learning activities at the same time. As such, we target the site’s actual load to make sure our clients aren’t paying for more than the site needs.
Recently, a client asked us to develop a plan for ramping up to tens of thousands of learners quite quickly. It’s been a long time since we last did load testing on LearnDash, and we’ve never done it with higher-end tiers on managed providers. We decided to try out the client’s existing LearnDash site that was reasonably heavy (University theme with Visual Composer, a few dozen plugins and various customizations) to see how it would hold up. The site wasn’t one we created, but it’s representative of what a lot of people create with LearnDash.
We loaded the site up on 3 different hosts: a Professional plan at WP Engine ($99/month), Business plan at Kinsta ($287/month) and an 8-core/16GB Vultr instance at Cloudways ($264/month). We knew the load would really push the cores to their breaking point, so we had high hopes for the 8 core Vultr VM. We created a complex script for Blazemeter that had 1,000 total users sign in to WordPress and complete/navigate close to 60 LearnDash pages. Each page had a lot of shortcodes and a number of images or embedded video. We even had users complete a quiz. Clicks were mostly timed about 30 seconds apart, which was on the aggressive side for LearnDash use, but we wanted to see what it took to break the servers. Activity was spread out over an hour, with the number of users gradually ramping up. Because the activities didn’t take an hour to complete, we planned to see some virtual users roll off the test as others started (so we would never see 1,000 simultaneous learners, but we did want to see a few hundred).
It’s hard to tell from the chart, but Cloudways was great until about 75 users. Then page load times climbed to 5 seconds—and kept climbing. The test ended up peaking at a very high number of users because it got too slow for users to complete the script. By 100 users the response time was an unacceptable 10 seconds, and by 400 users, the error rate shot up. Because Cloudways kept getting worse and worse, and further behind, average page load time ended up being 67 seconds. The server was fine for 75 learners, but definitely no more. All cores were maxed out after that point. One thing to note: this server was held back a bit by not using a CDN. Both other sites benefitted from a CDN.
The Kinsta graph looks a lot better, right? The response time looks stable—until you notice that it’s stable at about 25 seconds. That’s far too long for users to wait. Response time on Kinsta is good until about 100 users. After that, it’s just too slow, and at 300 users we start seeing errors on top of that. On a side note, this was our first time using Kinsta and developer tools just weren’t as useful or efficient as on WP Engine. It’s not reflected in the numbers, but it’s definitely a consideration when we’re choosing where to host a site.
WP Engine Results
We ended this test early because we had the info we needed after 20 minutes. WP Engine failed early too; right at about 85 users. What was different on WP Engine was that load times didn’t increase; if response times got high WP Engine just threw (a lot of) 502 errors. A poor user experience, to be sure, but still better than Cloudways serving pages in 60+ seconds—at least users saw something. And the key takeaway is that the site was ok up to 85 simultaneous learners, which surprised us, given that WP Engine was the only shared environment and it’s one third the price of the others.
None of the results really impressed us; we hoped that at least one of the servers could have accommodated over 100 simultaneous learners. For now, at least, we put that particular client site on WP Engine. Performance is good enough for the current number of learners, it’s the lowest cost of the 3, we have an upgrade path there for additional learners, and the site tools we need are the easiest to work with. We just wish we didn’t have to always deal with caching and session/cookie issues on complex LearnDash sites hosted on WP Engine.
If you’re managing a LearnDash site that has a lot of simultaneous learners, we would love to hear how you’re hosting it in the comments!
We help small and large businesses create WordPress-powered Learning Management Systems. While every business might come to us with different needs, everyone’s early questions tend to have similar themes. Is a WordPress LMS the right fit for my needs and program? How can I deliver a great learning experience? We thought many of our answers to questions like those would be of interest to a wider audience, so this post captures what we generally recommend for WordPress LMS projects.
Before jumping into any WordPress LMS project, we always make sure that WordPress is the right fit. It’s definitely the wrong choice for many projects! For programs with fewer than 100 users, a cloud LMS can be more cost-effective. I personally find that a WordPress LMS (like LearnDash or Sensei) works best for self-directed, linear elearning programs. Courses with a lot of video, text, images and downloads fit well, and it’s best for programs with relatively simple needs.
Facilitated programs can work in a WordPress platform, and we’ve created and seen examples of some that are quite effective. Tin Can support is available, and while we have created several programs that rely on an LRS, I’m never thrilled with the outcome. My strong preference, if Storyline, Captivate or Lectora content needs to be embedded inside WordPress, is to embed only and not track anything inside those modules. Rely on LearnDash (the LMS plugin we use most) for tracking and assessment rather than Tin Can, and generally speaking, simpler programs are better with LearnDash, unless you have some development expertise. If you don’t understand most of this paragraph, that’s a good thing, because it likely means your needs are probably simple and a better LearnDash fit!
Once you’ve determined whether or not a WordPress LMS seems like the right fit for your program, spend some time thinking about the learner experience you want to achieve and what the platform needs to do. There are a lot of things that LearnDash can’t handle well out of the box, even with integrations—group licensing, extended reporting, handling multiple course authors and programs where continuing education credits are issued come to mind. These types of things require professional assistance, and even then, there may be better platforms.
It’s also important to consider whether your course structure fits within the LearnDash model. For most uses, LearnDash effectively has a 3-level course structure: courses at the top, then lessons, then topics inside lessons. I like to see courses where materials can be divided up into 2-5 minute segments, which become lessons and topics inside LearnDash. Keep in mind that LearnDash only tracks whether or not users complete a lessons or topic, not what they do inside it (unless it’s a quiz). So if your course consists of a series of 1-hour videos, users are going to find it painful when they discover they can’t resume videos in later visits. By keeping pages brief and focused, it’s much easier for users to tackle programs across sessions and to feel like they’re making progress. LearnDash is a much better fit for courses that can chunk information as I’ve described.
Of course, since I’ve said that LearnDash works better with simple programs that don’t have a lot of interactivity, how do you make courses engaging and promote knowledge transfer? Well, even if you stick to simple media and interventions, you can still push them to deliver an effective learning experience. Videos work well inside LearnDash. If you have great videos to work with, you’re definitely a step ahead. Use short quizzes liberally to promote reflection and self-assessment. Get some great images and diagrams in there! We have an in-house designer for that purpose, but even if you don’t, stock photo sites like Depositphotos can be a great source of media. Try to mix things up and appeal to a variety of learning styles. We try to build programs that mix video, text, printable files, quizzes, infographics, diagrams, suggestions for offline activities, surveys and more. Since WordPress is extendable with plugins, it means we can also easily add interactive elements, like images with hotspots, games, awards for completing activities, and even social elements. For one of our sites we even created a virtual study group system!
Many of the businesses we partner with are familiar with WordPress, and sometimes unlearning the blog-centric view of WordPress is important. On a typical WordPress site, most people aren’t signed in when they use it. With LearnDash, the signed-in experience needs at least as much consideration as the public experience. A lot is different—typically menu items, navigation, and access to pages and resources will be modified for signed-in users. While anonymous visitors are typically directed through a sales funnel, signed-in users should have easy access to program materials. It’s important to think about both experiences (and, on many larger sites, the experiences of different user roles and groups).
The signed-in experience also introduces a lot of hosting considerations that are easily overlooked. It’s harder to cache LearnDash sites because pages are customized to the user. They tend to be more complex and CPU-heavy than typical WordPress sites. We only host client sites on managed WordPress hosts like WP Engine. We’ve simply had too many issues on shared hosts and VPS systems, and saving $20 per month is never worth the risk or inconvenience. Moreover, we love having a phone number to call for immediate help and having to worry less about security and backups.
Once you’ve settled on LearnDash, a vision for the platform and the infrastructure, choosing a solid theme and plugins are extremely important decisions. Before I talk about what we generally use, I’ll add some qualifiers. Yes, we know that for performance and stability reasons custom themes and code are the preferred way to go. We know that our typical platforms are “wrong” to WordPress purists. We do go heavier for several reasons:
- Client ease of use and flexibility are huge for us. We want people in there designing new course materials without having to remember shortcodes or going through us. We want people to feel empowered by the platform, not enamoured with the front end but unable to make changes themselves.
- We don’t want people to feel like they’re stuck with Uncanny Owl. We want to earn that ongoing relationship, not force it. That’s why we like commercial support from paid plugins and themes, big user communities, regular updates, etc. Our client sites are safe no matter how involved we are in future. Yes, we do a lot of customizations for platforms, but that doesn’t mean we need to reinvent the wheel for everything we implement.
With that model in mind, we do make use of commercial themes. Right now we like Total for new LearnDash platforms. Yes, it’s heavier than it needs to be for most sites. But it also gives people a lot of control without the risk of breaking things, and it plays nicely with LearnDash. It’s also reasonably developer-friendly.
We do use several plugins consistently on LearnDash sites. Since this invariably comes up in discussions with LearnDash users who are trying to do things themselves, here are the plugins we find particularly valuable:
Content Aware Sidebars – To segregate widgets between LearnDash and non-LearnDash parts of websites.
Gravity Forms – Because basic forms and LearnDash quizzes usually aren’t enough, and there are some interesting ways to incorporate forms for feedback, evaluation, reflection and more.
Nav Menu Roles – To manage menus based on signed-in state and role.
WooCommerce – Our ecommerce standard because we can make it accommodate almost any scenario.
We do have a lot of other recommended plugins (and lots of in-house ones) but we’ll save those for another post. The ones above make it onto almost all of our LearnDash sites. One thing to keep in mind with plugins is to try to only use the plugins you absolutely need. Yes, we know it’s tempting to experiment and add features, but they do slow things down and increase risk.
Once you’ve settled on all of the pieces described above, you’ll have all of the fundamentals in place to build an engaging and efficient platform. We hope this post helped to point you in the right direction!