Five notorious culprits for a slow Adobe Commerce admin.

With TWENTY technical and non-technical solutions—developed by the experienced SwiftOtter team.

Adobe Commerce is a powerful foundation for transacting ecommerce. We, at SwiftOtter, have been working on Adobe Commerce websites for over 10 years—we've been around the block (and even through it). Thus, we see the challenges that merchants face in their day-to-day operations. Believe me when I say we've seen our fair share of slow admin experiences.

If you're an online store owner or manager using Magento 2 as your e-commerce platform, you know how essential a smooth admin panel is for your daily operations. However, it can be frustrating when your Magento 2 admin becomes slow and sluggish, affecting your productivity and user experience. This article aims to provide you with non-technical and technical ways to fix this without delving into complex technical jargon.

Loading...

What is running slowly?

Writing a trouble report stating that “our admin is running slowly” is easy. However, we need to know the problem to best identify a solution.

In some cases, the entire admin runs slowly. But, more often than not, a specific function is problematic. Reading through these categories may enlighten you about the area causing the issue.

Grids take too long to load

Few things are more frustrating than discussing prospective changes to a product but being inhibited by the grid taking its time to load. Spinning loading indicators can even introduce thoughts of questioning our life choices.

Admin grids are notorious because of their potentially intensive interaction with the database. Adobe Commerce’s default grids Because Magento is so customizable, every grid can be modified with custom database queries that can tank performance. This is the first thing we troubleshoot when looking into a problem like this.

First, it is critical to determine which grids are slow. If it’s just the product grid, then troubleshooting can be localized here.

Potential causes

  • Poorly-implemented customization
  • Too many products in the database (often due to customizations)
  • Too many products loaded at one time

Non-technical solutions

Avoid using the generic search field. This affects the database performance more than using the specific filters. 

Reduce the number of products visible on a page load. If there are problems with poorly-performing queries, this may (but is not guaranteed) reduce the load on the database. This is not an ideal solution, but it may alleviate some pain.

You could also review your product catalog to see if there are many unused (disabled) products. If this number is in the thousands, you may see improvement by deleting these products. If products are unused, with no inventory, but are still visible on the front end, consider the potentially harmful SEO ramifications of removing these pages. These should be redirected to other pages.

Technical solutions

A developer, like the highly-capable ones at SwiftOtter, can use tools like NewRelic to identify poorly-performing queries. One of the most significant sources for these is queries within a loop. If the original developer triggers a query for each loaded row, the database connection is clogged with at least one query per row shown. In most cases, these queries can be rolled up into one optimized query—taking a small fraction of the time.

Every page loads slowly

But, what if every page is slow? This could indicate a more systemic problem.

A while back, we were dealing with a similar case. After doing some analysis, we discovered that a module sent a synchronous request that keeps the rest of the code from executing every time a page is loaded. The purpose of this request was to ensure the module was licensed correctly. This type of verification only occurs in an open-source environment. We removed this code.

Potential causes

  • Too many admin users
  • Undersized hosting environment
  • Cache is disabled
  • Poorly built modules loaded on every page

Non-technical solutions

Make sure that all the caches in System > Cache Management are enabled. However, consult with your development agency before enabling them, as they may be off for a reason (not a good one, though). The biggest culprits would be Config, Blocks HTML, and Layout. These caching systems load many files, process them and then save them into memory. Loading from memory is much faster than reading from the file system.

If you want to get more technical, you can try to identify if slowness happens at the same second of every minute. Many scheduled tasks run every week. Some poorly-built modules will flush large portions of the cache when called.

If the Dashboard page (first page after login) is especially slow, you can turn off the “Enable Charts” feature.

Technical solutions

As we are tasked with fixing to pages loading slowly, here are a few things we check:

  • Verify Redis is used for caches. Other ways, while easier to configure, they are extremely inefficient, even on quality hard drives.
  • Make sure OPCache is enabled and configured correctly. 
  • Utilize performance-monitoring tools, like Xprof, Blackfire, and Newrelic, to identify bottlenecks.
  • Review custom code and extensions to make sure no HTTP requests (“Calling home”) are made during the page load

Saving operations “think” forever

In a similar vein as the previous issue, but quite different, technically speaking, is when the save operation takes forever. You may encounter a CloudFlare timeout page, causing even more concern (the good news is that this operation is still likely to be successful).

This is almost guaranteed to be a backend coding problem. 

Potential causes

  • Too many modules trying to do too many things (saving a product)
  • Poorly-optimized saving code
  • Too many long-running processes, like creating and sending emails
  • Potentially, a 3rd-party web service that loads slowly

Non-technical solutions

There are a couple of things you can do that will make a significant difference.

First, make sure your store’s indexers (System > Index Management) shows “Reindex on Schedule” on each row. If not, feel free to change their index mode to “Reindex on Schedule”. But, then, immediately change a product’s price and save it. Wait five minutes and see if the updated price shows on the front end. If it does, you should have no problems leaving “Reindex on Schedule” enabled. If it doesn’t, switch these indexers back to “Reindex on Save”. This will prevent you from changing prices and not persisting to the front end.

Sending emails can also be a cause for slowdowns. If the slow-running process involves creating emails, consider switching to a 3rd-party solution like SendGrid.

Technical solutions

The process to resolve these issues is fairly simple: start with a performance-analyzing tool like NewRelic and identify the source of the slowdown. If your team is like SwiftOtter, they will use these tools daily to ensure high-performance applications.

Adobe Commerce has an excellent system for coordinating background tasks. Unfortunately, there is little visibility into whether or not the tasks are running or have failed. You, as a merchant, simply see that the task never completes.

The primary bulk operations are data exports and mass product operations (attribute changes and inventory updates). 

Potential causes

  • Scheduled tasks not properly configured
  • System overload of scheduled tasks preventing bulk operations from executing

Non-technical solutions

Your system should use a message queue system, like RabbitMQ. Unfortunately, there is little you can do past asking your development team to troubleshoot this. We at SwiftOtter, are highly versed in using these tools as they can significantly improve the admin user experience.

Technical solutions

Make sure this store is configured to use a Message Queue. There is several points for setting this up, so a well-trained developer needs to see this through.

Beyond this, there may be some custom code that powers large operations. It is fairly trivial to move these processes into the background. However, this does assume that the background environment can run additional tasks.

Other Solutions

Are you on the latest version of Adobe Commerce?

Almost every Adobe Commerce release has performance enhancements. Even minor improvements are beneficial.

We recommend reviewing the release notes to see if the issue you encounter is acknowledged and fixed.

Switch to BigCommerce

If you’re tired of constantly fighting issues like a slow admin, it may be time to consider a move to a different platform. You won’t have a slow admin panel—guaranteed. Better yet, BigCommerce is easy to learn but with tremendous expansion capability.

Your maintenance budget will be freed up to focus on optimization—the best scenario possible.

Adobe Commerce to BigCommerce Playbook

Adobe Commerce to BigCommerce 43-page Condensed Migration Playbook

Quickly understand the the process of migrating from Magento 2 to BigCommerce and how it will affect your ecommerce experience.

View more

The caveat we would put in this conversation is if your website relies on highly-complicated fulfillment processes or extensive customizations, it may be best to stick with Adobe Commerce. A partner like SwiftOtter can evaluate and quickly stabilize your codebase. 

Summary

If you’re tired of a slow admin panel in Adobe Commerce, please contact us at SwiftOtter. We have extensive experience fixing such problems and can do this for you, too.

Let's solve your slow admin panel

Lightning Image (Expect a fast response)