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!

Setting up Zapier with LearnDash

Zapier Logo

LearnDash (the company) released a very exciting update on Wednesday that allows LearnDash (the plugin) to talk to over 300 third-party applications. This means that key LearnDash events, like course enrolments and completions, can now trigger actions in other applications, like adding a learner to a mailing list, sending an email, creating a help desk ticket and more. LearnDash uses Zapier to talk to other integrations, and it works really well—once you understand how to do it.

We were a bit too excited by the Zapier release and installed it as soon as it was available, and before instructions had been posted. This caused some initial confusion, both for us and one of our clients (who also wanted to jump on board). To make things a little easier, we created the screencast below to walk through the process of setting up your first zap.

We hope that was helpful!

Over the next few months we’ll be building new zaps for ourselves and our clients. If we come up with anything interesting, we’ll post it here!

We’re Hiring!

wordpress-workerUncanny Owl is looking for an experienced WordPress Developer to join our team on a full time or contract basis. We need help with all development stages of WordPress projects, including creating and customizing complex plugins, modifying and styling themes, and even some front-end design. Experience developing large membership sites and previous work with WordPress LMS tools (e.g. LearnDash and Sensei) would be a huge benefit. A Toronto-area candidate is preferred but your skill set is more important than your location.

For more information and to apply, click here.

No agencies or companies, please.


WordPress LMS Survey Results

149209692As part of our work with WordPress LMS solutions, we tend to deal with the higher end of the market, which includes small and mid-sized businesses with the budget for robust learning platforms. Our  focus means we unfortunately aren’t as connected as we would like with the larger WordPress LMS market, so we decided to conduct a survey last week to see how other people use products like LearnDash, Sensei and WP Courseware. We had a fantastic response from the community and what we discovered surprised us.

We reached out to approximately 150 people by email. These people had visited the Uncanny Owl website over the last few months and provided their email address to us. None were clients. In fact, we had never communicated with any of the participants outside of the survey.

Of the 150 people we invited, 16 people from around the world chose to participate. We asked participants questions about how they used WordPress LMS plugins, their programs, their audience, their issues and more. Responses were candid and the people who participated seemed to appreciate the opportunity to be heard.

Here are the findings that we found most interesting:

Almost half (44%) of participants used, or planned to use, content that was SCORM or Tin Can compliant on their sites. Very few of Uncanny Owl’s clients create their programs with elearning authoring tools, so this was a very big surprise, especially given the low project budgets of survey participants.

People are using WordPress LMS plugins for more than just self-directed elearning. 38% offer facilitated programs online and 31% offer programs offline as well. Programs are reasonably complex, too. Almost everyone offers videos, file downloads, embedded documents, quizzes, certificates, ecommerce—even forums. Over 35% of participants also incorporate capabilities like marketing automation, gamification and end user support systems.

People rank ongoing support and available integrations low when shopping for an LMS, yet complaints in those areas are most common. We saw a lot of complaints about plugins not being able to do what people expected (and therefore having to rely on other plugins) and difficulty finding guidance, especially that went beyond individual plugins. Participants wanted guidance on how to create complete learning platforms and had trouble getting the advice they needed.

There were a lot of complaints. When we asked an open-ended question about surprises they experienced with LMS projects, 67% of comments were complaints, mostly about the LMS plugins. In fact, when we asked people to rank project challenges, adding customizations, making things work together and finding help were at the top of the list.

No-one had an LMS platform they considered complete. Our list of users went back over 6 months, so we were surprised that no-one was able to get a project across the finish line.

WordPress LMS projects cost more than people expect. Only 1 participant found costs lower than expected. Half of participants said costs met expectations, and 44% said costs exceeded expectations. We were actually surprised by budgets; 63% said implementation costs (including effort) were under $2,500, and 76% said monthly maintenance costs were under $250. Of course, since no participants had a completed platform, these estimates may end up being low.

Learning to use a WordPress LMS can be hard work. 44% of participants said they weren’t comfortable managing WordPress and their LMS yet. Another 13% said it took between 75 and 200 hours until they felt comfortable.

How do these findings compare with your own experiences using WordPress LMS plugins? We’d love to hear more about your experiences in the comments.

A Beginner’s Reaction to Using WordPress LMS Plugins

Surprised girlAs experienced users of WordPress LMS plugins like LearnDash and Sensei, we at Uncanny Owl sometimes overlook the challenges that new users face when building a learning-enabled website. Documentation and support for LMS plugins vary widely, and for many small businesses interested in delivering learning, both their knowledge of WordPress and instructional design may be quite limited. To reconnect with how new users experience WordPress LMS products, we thought it might be a fun experiment to set an inexperienced WordPress user up with a basic site that only included a theme and an LMS plugin, since this is how many businesses approach LearnDash projects.

Our tester had only very basic WordPress experience and we set up separate WordPress instances with LearnDash, Sensei and WP Courseware. We provided only minimal guidance to get things started, but did make plugin documentation and support resources available. Our tester was assigned the basic task of setting up a course with each plugin, adding some simple lessons and setting up a quiz. After experimenting for a few hours with all 3 LMS tools, we asked her to write a summary of her experiences. What follows are her observations.

“I started with Sensei and did some research before jumping in. I knew there would be limited options for quiz questions and prepared myself for that but thought that it would be a simple exercise otherwise. I was able to create my lessons and add them to courses but had issues along the way. I wanted to embed a video into my lesson and it worked but comes up very large (we’re talking almost full screen) and I have no idea why or how to change it. I couldn’t find anything about adding a certificate to award upon completion of my course so I had to google that and found out it’s a plugin extension I would need to add. It’s free so it would’ve saved me a lot of time and effort to have the option there already rather than having to download the plugin and sort that out. I tried to add a quiz and it appears to be there with many questions but if I try to navigate to that page it shows a quiz with no questions available. Again I don’t know why and haven’t been able to figure it out on my own. My sidebar navigation was also broken and I don’t know why since I didn’t do anything except add lessons, a course and a quiz. I changed the name of one lesson after the fact and now the quiz won’t work and still links to what the lesson was previously named. Their documentation and support wasn’t very helpful. With everything added (I thought) but the site hopelessly broken, I gave up and moved on.

For some reason I made the assumption that WP Courseware would be the most straightforward and easy to use. As soon as I started, however, I realized my mistake. The very first problem I encountered is the terminology used. I wanted to add a course with lessons. Seems straightforward, right? I started looking for ‘lessons’ or ‘add lesson’ and they’re nowhere to be found. I saw something about ‘modules’ and ‘units’ and realized those were what I needed. So I started setting up a training course, which looked like a good place to start, though I’m very unsure at this point. Then I try to set up a course unit, which I hope is something like a lesson. I ended up watching a video tutorial and right in that they state ‘a course unit which is equivalent to a lesson.’ Perfect! So why not just call it a lesson? I wanted to embed a video and found this to either not be possible or something I could not figure out how to do. All I could get to work was a link to a video on another page (YouTube) which was not what I wanted to happen. The video tutorial went on to explain how to add this to the training course and something about modules but I was so confused about the structuring of a module or unit or course that I gave up.

This brings me to my last, and most successful attempt, which was using LearnDash. I found it easy to jump right into creating my lessons underneath main courses. Every option I was looking for seemed to be listed right where I could find it easily. I was able to create quizzes to go along with my lessons (that actually worked when I tried them!). The only issue here was too much choice. For a beginner, setting up a simple quiz, I was very overwhelmed with the options. I did need to access their support pages and documentation to figure out how to add a certificate but I found what I needed quickly and was able to follow it.

In the end, I felt most comfortable with LearnDash, but none of the tools were as straightforward as I expected. I had to rely on documentation and searches a lot to get things done, and I spent a long time just figuring out basic things.”

Drip LearnDash Lessons by Group

We were very excited to see lesson dripping by calendar date in the most recent LearnDash update. It’s an easy way to unlock course materials for all learners on a specific date.

But what about time-bound courses delivered to multiple groups? It’s common in school and other facilitated programs to have a set of students start on one day, have course materials released every week, and then have other groups start the program later. For anyone wanting to use LearnDash in this scenario, the Drip Lessons by Date functionality won’t work, because selecting a date means that date applies to everyone.


That approach won’t work for some of our clients, so we put our own spin on the LearnDash drip feature. What we did was add a field for a LearnDash group selection above the calendar date field for dripping content. The drop-down list retrieves a list of all LearnDash Groups and current drip dates (if any exist). Once a group is selected, the admin can identify a unique drip date for that group and save it.

Here’s a video that goes into a bit more detail about our approach and how it works.

Right now we’ve decided against making the plugin available to the public. It’s not well documented yet and we can’t provide support, so it’s of limited value. If it is something that interests you, however, leave a comment and we’ll follow up if we share it.

Breadcrumb Navigation for LearnDash

Topic_A___LearnDash_DevOut of the box, navigating complex courses in LearnDash can get confusing. With potentially dozens of topics, lessons and courses, it’s easy to get lost. Sidebar navigation helps, but it’s mainly for navigating within the same level rather than getting back to higher levels. What’s missing for some courses is context and being able to go up levels easily.

We ran into this challenge with a recent LearnDash project. What it needed were breadcrumb links, but without customization, theme breadcrumb generation is broken for LearnDash. The problem is WordPress usually thinks that the parent of every course, lesson and topic is “Home”. For most applications, this makes breadcrumbs almost useless.

To address this shortcoming, we created a plugin that makes it easy to navigate up levels by using breadcrumb links. Just as you would expect, every topic rolls up to a hyperlinked lesson, which rolls up to a hyperlinked course, which rolls up to a course dashboard. And at the top level is, of course, the homepage.

We know breadcrumb navigation for LearnDash would be useful to a lot of learning projects, so we’re making the plugin we created available below. There’s no cost to use it, but there’s also no support!

If you happen to use the Total theme, you’re in luck! The plugin below replaces the built-in theme breadcrumb code with custom breadcrumbs that work with LearnDash. Don’t worry, they’ll work with your other pages, posts and other content too!

For anyone not using Total, a generic plugin is available. For that version, just insert a [sfwd-breadcrumbs] shortcode wherever you want your breadcrumbs to appear. You can also hook it into your theme header, but we’ll leave it to you to figure out how to do that. The plugin should at least save you a few hours of work getting custom header breadcrumb links set up.

We hope you enjoy the plugins!

Download the LearnDash Breadcrumb plugin for the Total theme

Download the generic LearnDash Breadcrumb plugin

LearnDash Demo Site Update

LearnDash Demo LMSWe launched a big update to our LearnDash demo site earlier today. At first glance, the updates might not be obvious; after all, the site is less about look & feel than it is about showcasing what can be accomplished with LearnDash and WordPress. What you will definitely notice is that an account is now required to use the demo. While this does mean an extra step is required to use the site, it also means that it’s a lot easier for visitors to reliably test progress tracking, achievements and more.

So what else has changed? Our old login page is gone; we had a handful of issues that we weren’t happy about and the new page looks nicer. Registration is very different now too, as are all forms across the site. All of these changes are, of course, included in new sites that we build.

This also marks the first time we’re incorporating marketing automation (via Active Campaign) into a production site. Over the next few weeks we’ll be incorporating several new strategies that leverage automation tools to improve learning outcomes. (On a side note, we’re excited to be using Active Campaign; while it’s missing features we’d really like, the price point is great and their support team was fantastic when we were getting set up.)