The Uncanny Owl Blog

Best Practices For a First WordPress LMS with LearnDash

learndash-decisionsWe 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!

Case Study: English in 30 Minutes

English in 30 Minutes
We recently helped a client in the UK launch English in 30 Minutes, a new online learning program that helps students and young professionals improve their English skills. The site had been in development for a year before Uncanny Owl became involved, with work performed by both site owners and 2 other developers. When we took over, functionality was lacking and there were multiples issues with both design and operation. Uncanny Owl’s mandate was to do whatever was needed to create a functional and engaging site that made it easy for people to learn English.

Uncanny Owl did everything from copywriting and design to custom plugin development and implementation. Using LearnDash for LMS capabilities, we created a robust learning platform that can accommodate thousands of global learners.

Issues and Solutions

The site we took over was broken in a number of key areas. Because we didn’t know what had been created or how, we ended up abandoning the existing WordPress platform. We were able to salvage some course materials, like quizzes, but most elements needed to be rebuilt. While we never like to have clients pay to essentially perform the same work twice, the state of the platform and our own peace of mind left us with few alternatives.

The biggest challenge we faced with the English in 30 Minutes site was the sheer size of the program. It was (and remains) the largest LearnDash implementation we’ve undertaken, with approximately 2,300 unique LearnDash posts across 25 courses. By default, the LearnDash plugin looks up topics and completion status across all courses when it generates sidebars and table elements, which significantly affected performance for the site. We were seeing average load times of 12 seconds on LearnDash pages, which was unacceptable for users and also made it painful on the admin side. By changing LearnDash core code so that MySQL queries weren’t as broad, we were able to get LearnDash load times under 2 seconds. Developing this solution was a huge win for us and prompted this reaction from our client: “Guys – THANK YOU! I keep playing with it, jumping from page to page…incredible! I am over the moon with this!!!”

English in 30 Minutes was also the first LearnDash site we’ve deployed that doesn’t use a visible sidebar for navigation. As the program is very heavy on video-based training, the learner experience for videos had to be very strong. To accommodate a large post area, for video as well as some of the interactive games on the site, we created a collapsible sidebar that’s hidden by default. When the learner needs it, they click a prominent icon and the sidebar slides out. As the program is generally completed linearly, ad hoc navigation between lessons and topics doesn’t need to be used often and lends itself better to being hidden by default.

English in 30 Minutes Customizations

To improve navigation with the sidebar hidden, we added custom breadcrumb capabilities to the site. Out of the box, breadcrumbs typically don’t work on LearnDash sites, because the theme doesn’t know how to look up relationships between LearnDash courses, lessons and topics. Our plugin does, and it makes navigation up to higher points in the program easy.

Key Architecture Details

English in 30 Minutes is a large program that’s sold directly to consumers on a membership basis. It leverages an affiliate program for marketing, some light gamification, interactive games (including flashcards and matching), account sharing restrictions and more.

We used Total as the theme for the site (using a child theme and custom plugins). We chose Total because it generally works well with LearnDash, it’s reasonably straightforward for clients to manage, and it does what we need it to do. It also has a reasonably large userbase and active development.
Here’s a list of some key plugins used on the English in 30 Minutes site:

Gravity Forms
Ninja Kick: Sliding Panel
Paid Memberships Pro

The live site is hosted at Flywheel. The site performs well there, the interface is nice for clients, and the managed services means we can focus on the site rather than the infrastructure.

Results has only been live for 1 week, but so far it’s had almost 300 unique visitors from around the world with no marketing. Getting the first unsolicited sign-up for an account was a big step, and we’re excited about English in 30 Minute’s growth!

Of course, our most important measures are making sure our client is happy with our work and is left with a capable learning platform. Here’s what he had to say about that:

I really cannot speak highly enough about the guys at Uncanny Owl. They were actually my 3rd design team for this project and I only wish I had found them first! Their commitment, innovation, advice, patience and support have been outstanding, even when I fell behind at times with my work schedule, and I make a point of using their name in recommendation in any discussion I have regarding the site. They definitely went the extra mile with this one, in particular the page load speed fix and breadcrumb plugin were very impressive indeed, and I look forward to a long-term partnership with them for the future.

Visit to see a sample of our work in action. It’s also a great resource (and certainly one of the most comprehensive) for learning English online!

Coming Soon: A Simple, Integrated WordPress LMS Platform

At Uncanny Owl, we love creating flexible and powerful learning-enabled websites for our clients. They love our solutions, and we’re able to help businesses achieve important business goals while delivering engaging learner experiences.

Custom LMS solutions can be a great fit for the right company, but in most cases the costs are too high—in dollars, in time, in complexity, in maintenance requirements and in training. Not every company can afford $5,000+ implementation costs or the 2-4 months it typically takes us to go from project initiation to going live. A lot of companies out there just want the basics—an easy way to deliver self-directed training via their website—and don’t need a custom solution to achieve their goals.

Online EducationRight now there’s no  easy way for smaller organizations to make training available online with WordPress. Sure, you can buy an LMS plugin, but that invariably ends up being a very small part of the platform puzzle. There’s a lot that can (and does) go wrong and the learning curve ends up being a lot higher than most people expect.  We’ve spent the last 2 years working on dozens of WordPress sites with learning capabilities and it’s taken this long to really get the hang of how to create a great platform.

In the next few months, we’ll be starting the beta phase of a WordPress product that will make it easy and inexpensive for organizations to offer training online. The product will be simple but comprehensive, flexible but worry-free. With it, you will be able to launch a complete website with all of your courses in under a week—without having to deal with theme issues, plugin integrations, hosting, ongoing maintenance or code conflicts.

We’ll be starting the platform beta soon, but we’re only making 5 spots available for participants. We want to be able to carefully monitor the first set of users, but we’ll open up more spots as we stabilize things. Beta users will be able to take advantage of a heavily discounted rate for their first 6 months of use. If you want to participate, you’ll need to apply to be considered. Here’s the type of user we’re looking for in the first wave:

  • You have some course materials ready
  • You know a little bit about WordPress
  • You plan to sell course access, preferably on a membership basis
  • You will actually use the product and so will your learners

The product will start with a limited feature set focused on delivering self-directed elearning smoothly and effectively. Eventually we will add capabilities that support things like blended learning and virtual communities, but it’s important that we nail down the basics first.

If you’re interested in finding out more about the beta or becoming a beta participant, sign up below!