Performance Tips

Get Started

Performance Tips

LearnDash Dashboard is built to handle large LMS sites, but how fast it runs depends on your hosting setup and configuration. These tips will help you get the best performance for your students and instructors.


Use a Good Caching Plugin

The dashboard automatically caches frequently requested data — stat tiles, charts, course lists, and student progress summaries. This caching works with the database by default, but you can make it much faster by adding a memory-based caching layer.

What to do: Ask your hosting provider whether your plan includes Redis or Memcached object caching. Most quality managed WordPress hosts (Kinsta, WP Engine, Flywheel, Pressable) include this by default. If yours does not, ask them to enable it or consider upgrading your plan.

With memory caching enabled, the dashboard serves repeated data requests almost instantly instead of hitting the database each time.


Choose a Faster Hosting Plan

The single biggest performance improvement you can make is choosing hosting with enough resources for your student count.

General guidelines:

  • Under 500 students — Shared or starter managed hosting works fine.
  • 500 to 2,000 students — A VPS or managed WordPress plan with at least 2GB RAM and Redis caching.
  • 2,000+ students — A dedicated or high-performance managed plan with Redis, a CDN, and a strong database server.

Keep Your Stats Fresh Without Slowing Down the Site

Dashboard statistics (total courses, enrollments, completion rates) update automatically several times a day. You do not need to refresh them manually during normal operation.

If you have just done a large bulk enrollment or import and want to see the latest numbers right away, go to WordPress Admin > LearnDash Dashboard > General Settings and use the Refresh Statistics option. This forces an immediate update.

Avoid refreshing statistics repeatedly in a short period — each refresh runs database queries across your student data.


Use the Built-In Pagination for Reports

The dashboard’s report pages (quiz results, assignment status, essay submissions, course progress) are designed to handle large datasets. They load data one page at a time rather than all at once, so even sites with tens of thousands of student records can browse reports smoothly.

Do not try to load all records on one page. Use the page size and filter options to narrow down to the data you need.


Clean Up Old Data Regularly

Over time, some data can accumulate and slow down certain dashboard queries:

  • Email logs — Go to Admin > LearnDash Dashboard > Email Logs and delete old records periodically. The dashboard also cleans up old email queue entries automatically each day.
  • Expired enrollment codes — Go to Dashboard > Bulk Management > Enrollment Codes and delete expired code batches that are no longer needed.

Neither of these cleanups affects student data, course content, or progress records.


Use a CDN for Media

Student assignment uploads, course images, and instructor avatars are stored in your WordPress media library. On sites with many students submitting assignments, this can add up to a large amount of stored files.

Consider using a plugin that offloads media to a content delivery network (CDN) such as Amazon S3 or Cloudflare R2. This keeps your server lean and serves images and files faster to students in different locations.


Avatar Performance

If your instructors and students use profile photos:

  • BuddyPress avatars are served from your own server and are the fastest option.
  • Gravatar requires a request to Gravatar’s servers each time. It works fine but adds a small external request per avatar. A full-page caching plugin can reduce this overhead.

To switch avatar sources, go to WordPress Admin > LearnDash Dashboard > General Settings and look for the avatar display options.


Bulk Operations on Large Sites

Bulk enrollments, unenrollments, and progress resets work in batches. If you are managing more than a few thousand students in a single bulk action:

  • Split the operation into smaller batches (for example, 500 students at a time) to avoid timeouts.
  • Run large operations during off-peak hours when fewer students are using the site.
  • Use the Export feature first to confirm you have selected the right group of students before applying a bulk action.

Reliable Scheduled Email Sending

The dashboard queues emails and sends them on a schedule — roughly every minute. On busy sites, the default WordPress scheduler (which triggers on page visits) can be unreliable.

For reliable email delivery, ask your hosting provider about setting up a server-level scheduled task to trigger the WordPress scheduler on a fixed interval. Most managed hosts handle this automatically. If yours does not, a plugin like WP Crontrol can help you monitor whether the scheduler is running correctly.


Monitor Dashboard Performance

If you want to identify specific slow spots:

  1. Install the Query Monitor plugin (free in the WordPress plugin directory).
  2. Load the dashboard as an admin.
  3. Check the Query Monitor toolbar for slow database queries and how long they took.

This will show you exactly which queries are slow so you can address them — often by improving your hosting resources or enabling caching.

Last updated: March 4, 2026