Have a slow WooCommerce admin panel?
A slow WooCommerce dashboard is usually caused by a specific bottleneck (plugin, bloated database, or your cache plugin’s preloading and automatic cache clearing are increasing CPU usage). However, the more likely reason is because of your server configuration (hosting). For WooCommerce, you ideally want cloud hosting with Redis and a good amount of CPU/RAM. I recommend Rocket.net with free Cloudflare Enterprise, 32 CPU/128GB RAM, Redis, and NVMe.
Tools like Query Monitor and WP Hosting Benchmark can also help find the problem. Even though a slow admin usually comes down to your infrastructure, there are other things you can try like reducing CPU usage using CDNs, blocking bad bots, as well as limiting background tasks like Heartbeat, autosaves, and wp-cron. I hope this list helps; let me know if you have questions!
- Disable high CPU plugins
- Control your cache plugin’s preloading + cache clearing
- Use cloud hosting with Cloudflare Enterprise
- Enable Redis
- Enable OPcache
- Remove WooCommerce bloat
- Deep clean your database
- Clear WooCommerce customer sessions + transients
- Disable WP-Cron
- Limit heartbeat, autosaves, post revisions
- Protect your wp-login page
- Cache the WordPress admin
- Upgrade to PHP 8
- Increase memory limit
- Remove your page builder
- Enable Argo Smart Routing
- Run tools to find bottlenecks
1. Disable High CPU Plugins
First, deactivate plugins 1 by 1 and test your admin speed.
Some plugins slow down the admin by increasing CPU usage (usually from background tasks) or they add CSS/JS to the frontend. Go through my list of slow plugins, use Query Monitor to find your slowest plugins, and use WP Hive to learn whether a plugin increases memory usage.
WooCommerce sites generally have more plugins than static sites (that’s why consolidating them and using lightweight plugins is so important). You can often eliminate security/image optimization plugins by using Cloudflare for image optimization and their WAF. I was also able to remove my table/gallery plugins by using Gutenberg blocks. It’s a long journey, but worth it.
|Plugin||Category||Memory Impact||PageSpeed Impact|
|Broken Link Checker||SEO||X||✓|
|Site Kit by Google||Analytics||X||✓|
2. Control Your Cache Plugin’s Preloading + Cache Clearing
Cache plugins automatically clear the entire cache when you trigger specific actions.
So if you’re messing with your cache plugin settings or making design changes that would trigger these, your server is working extra hard to rebuild the entire cache. It slows down the admin, the frontend of your site, and can result in errors that make your website inaccessible.
Some cache plugins let you disable automatic cache clearing, then you can setup a cron job to schedule the cache to be cleared once per day (often at night) so you’re not stressing the server.
Preloading and removing unused CSS can also increase CPU usage. You usually only want to preload important sitemap URLs (pages, posts, etc) as oppose to preloading the entire sitemap. If removing unused CSS increases CPU usage, try decreasing the batch size. WP Rocket’s remove unused CSS is inferior to FlyingPress, Perfmatters, and LiteSpeed Cache since it loads used CSS inline instead of a separate file which is faster since it can be cached. One of many reasons why WP Rocket isn’t the best cache plugin and I recommend FlyingPress or LiteSpeed Cache instead.
Just be aware there are several settings inside cache plugins that can increase CPU usage and slow down your WooCommerce admin. Check your cache plugin’s documentation to see them.
3. Use Cloud Hosting With Cloudflare Enterprise
First off, skip the shared crap and use cloud hosting instead. SiteGround, Hostinger, and WPX aren’t built for WooCommerce sites which have more dynamic requests and can’t be cached (this can lead to CPU limit/PHP worker issues). Most of these hosts also lack CPU/RAM and use slow SATA SSDs with memcached (which is inferior to Redis). For WooCommerce hosting, you ideally want cloud hosting with Redis, NVMe SSDs, LiteSpeed, and a good amount of CPU/RAM.
Some cloud hosts also started using Cloudflare Enterprise (Rocket.net, Cloudways, Kinsta) which is a far superior CDN than most. It has one of the largest networks of 270+ PoPs with speed/security features like Argo Smart Routing + Tiered Cache (great for WooCommerce), full page caching, prioritized routing, image optimization, load balancing, Brotli, HTTP/3, and WAF.
Rocket.net and their free Cloudflare Enterprise is the only host with all these and is who I use. Looking at their specs, it’s private cloud hosting with 32 cores + 128GB RAM, NVMe SSDs, Redis, and LiteSpeed’s PHP. This alone blows mainstream hosts like Kinsta/WP Engine out of the water.
When comparing their Cloudflare Enterprise to Cloudways/Kinsta, Rocket.net’s is free, setup automatically, and uses full page caching (unlike Cloudways). And unlike Kinsta’s, Rocket.net has Argo Smart Routing, load balancing, and image optimization. Rocket.net also doesn’t limit PHP workers (like Kinsta does) because only about 10% of traffic hits your origin server. This is also why they allow 10-25 more monthly visits. Not to mention the CEO (Ben Gabler) was Chief Product Officer at StackPath and has experience building CDNs, so I trust their integration more.
|SiteGround||Kinsta||WPX||Cloudways Vultr HF||Rocket.net|
|Hosting type||Shared||Cloud||Shared||Cloud||Private cloud|
|CPU cores||Not listed||12||Not listed||1||32|
|RAM (GB)||Not listed||8||Not listed||1||128|
|Object cache||Memcached||Redis ($100/mo)||x||Redis (Pro)||Redis|
|CDN||SiteGround CDN||Cloudflare Enterprise||QUIC.cloud||Cloudflare Enterprise ($5/mo)||Cloudflare Enterprise|
|Full page caching||✓||✓||✓||x||✓|
|Argo smart routing||x||x||x||✓||✓|
|CPU limits||Very common||Low PHP workers||At their discretion||Average||None|
|Cache plugin||SG Optimizer||x||LSC or W3TC||Breeze||x|
|Email hosting||✓||x||Very limited||x||x|
|Major incidents||Google blocked DNS for 4 days||None||Worldwide outage||None||None|
|Free migration||$30/site||Unlimited free||5-35 sites free||1 free||Unlimited free|
|Price||$3-8/mo (1 year) then $15-40/mo||$29/mo (yearly)||$20.83 (yearly)||$13/mo + $5/mo for CF Enterprise||$25/mo (yearly)|
12 things to know about hosting/TTFB
- Hosting is the #1 factor of site speed.
- TTFB is a key indicator of hosting performance.
- TTFB is part of core web vitals and is 40% of LCP.
- TTFB also affects INP (since latency is part of TTFB).
- SpeedVitals tests TTFB in 35 locations – use this tool!
- Test your site 3 times to get accurate numbers in SpeedVitals.
- Doing this ensures your caching and CDN are working properly.
- Check your average TTFB worldwide in your 3rd SpeedVitals test.
- Google flags your TTFB if it’s over 600ms, but under 200ms is better.
- PageSpeed Insights (and other testing tools) only test TTFB in 1 location.
- WP Hosting Benchmark also tests hosting performance (here are my results).
- Combining a good host/CDN is arguably the best way to improve TTFB (using a host with improved specs on top of Cloudflare Enterprise hits 2 birds with 1 stone).
Step 1: Create a Rocket.net account then add the coupon OMM1 (in step 2) to get your first month for $1. It’s $25/mo when paying yearly or $30/mo when paying monthly. If you sign up with my affiliate link, I’ll get a commission which helps me write these tutorials. Thank you :)
Step 2: Request a free migration. They did this the same day and let me review my website before it was launched with no downtime. For the record, their support is better than Kinsta’s and you can reach out to Ben Gabler or his team (via phone/chat/email) if you have questions.
Step 3: Upgrade to PHP 8.1 and ask support to install Redis (they use Redis Object Cache). These are the only things I did since Cloudflare Enterprise and backups are both automatic.
Step 4: Retest your TTFB in SpeedVitals and click through your pages to see the difference. You can also search their TrustPilot profile for people mentioning “TTFB” where they’re rated 4.9/5.
Problems with mainstream hosts
I’ve written some pretty bad reviews about SiteGround’s slow TTFB, CPU limits, and why SG Optimizer does a poor job with core web vitals (they also control several Facebook Groups and threaten to sue people who write bad reviews). Hostinger writes fake reviews and is only cheap because you get less resources like CPU/RAM. Kinsta and WP Engine are way too expensive for how many resources, PHP workers, and monthly visits you get. Along with major incidents like WPX’s worldwide outage and SiteGround’s DNS getting blocked by Google for 4 days (both WPX and SiteGround denied responsibility). One thing is clear: most mainstream hosts appear to be more interested in profits than performance. Please do your own research before getting advice.
4. Enable Redis
Object cache is specifically good for improving database performance. And like I mentioned previously, Redis is more efficient than memcached. However, Redis is usually only supported on cloud hosting (Rocket.net, Cloudways, etc). Kinsta actually makes you pay $100/month for it.
Once you enable Redis in your hosting account, check your host’s documentation on how to install it since the steps are different. Rocket.net uses the Redis Object Cache plugin while Cloudways installs a drop-in plugin when activating the Redis add-on inside their dashboard.
5. Enable OPcache
If your host supports it, also enable OPcache which improves PHP performance and CPU utilization which can speed up the admin. In cPanel, it’s found in the PHP Extensions menu.
6. Remove WooCommerce Bloat
The easiest way to do this is with Disable WooCommerce Bloat.
It disables WooCommerce features you may not be using including WooCommerce scripts, styles, and cart fragments. It also lets you disable dashboard items like the WooCommerce admin, status meta box, and widgets. It has a perfect 5 star rating at the time of writing this.
This plugin lets you disable the following:
- WooCommerce Admin (WooCommerce admin, analytics tab notification bar)
- Marketing hub
- WooCommerce.com notice
- WooCommerce status meta box
- WooCommerce marketplace suggestions
- Extensions submenu
- Password strength meter
- WooCommerce scripts and styles
- WooCommerce cart fragments
- WooCommerce widgets
- Jetpack promotions
- SkyVerge dashboard
- Elementor dashboard widget
7. Deep Clean Your Database
Most people use their cache plugin to clean their database.
However, WP-Optimize lets you go through your database tables and delete tables left behind by old plugins marked as not installed. So if you deleted a plugin and don’t plan on using it again, it will likely leave behind tables even when deleted. You can use WP-Optimize to delete these. WP-Optimize also lets you take database backups via UpdraftPlus and keep a certain amount of post revisions (instead of deleting them all)… 2 other things cache plugins don’t do.
8. Clear WooCommerce Customer Sessions + Transients
As explained in this article, the wp-options table can grow too fast due to ineffective cron jobs, or bots crawling your site and creating sessions on the fly. The first step is the clear customer sessions in your Status settings (you can delete WooCommerce transients in the same tab). The next step is to disable wp-cron jobs and replace them with real cron jobs (covered in next step).
9. Disable WP-Cron
The wp-cron is loaded on every page load and schedules automated tasks like publishing scheduled posts, checking for theme and plugin updates, and sending email notifications. Instead of running it on every page load, you can schedule it to run every 90 minutes or so.
Step 1: Disable WP Cron Jobs
Add the code to wp-config.php, before where it says “That’s all, step editing! Happy blogging.”
Step 2: Replace With A Real Cron Job
You still need wp-cron (eg. checking for theme/plugin updates), just not on every page load. Each host has their own instructions for this, here is SiteGround’s tutorial. You can set the cron job to run every 90 minutes, or increase it even more if you don’t have lots of scheduled tasks.
10. Limit Heartbeat, Autosaves, Post Revisions
Heartbeat shows real-time plugin notifications and when other users are editing a post which generates a request every 15-60 seconds. There are many optimization plugins to disable/limit this, but I recommend disabling it in the frontend + backend, then limiting it in the post editor.
11. Protect Your WP-Login Page
The first step to protecting the admin is to move your wp-login page. This will also stop spam bots from hitting your default login page. You can do this with Perfmatters or WPS Hide Login.
If you’re using Cloudflare, this page rule sets admin security level to high, bypasses cache in the admin, and disables app and performance features (you don’t want Performance features in the admin). The security level challenges visitors with threatening behavior in the previous 14 days.
12. Cache The WordPress Admin
Plugins like LiteSpeed Cache let you cache the wp-admin. But if you read the warning, it says you may see expired data, so make sure you read the warning shown in their documentation.
13. Upgrade To PHP 8
Most hosts currently support PHP 8.1, but at least upgrade to PHP 8.0.
Step 1: See your PHP version in the WooCommerce server environment.
Step 2: Upgrade to PHP 8+ in your hosting account.
Step 3: Test your website for errors. If you see any, revert to an earlier PHP version or check which plugins aren’t compatible and try to find alternative plugins that are maintained better.
14. Increase Memory Limit
WooCommerce recommends 256MB, but you can increase it even more. It depends what your host allows (and how much your site needs), but any decent cloud host should support 1024MB.
Step 1: Edit your wp-config.php file.
Step 2: Add the code before the line that says, “Happy Blogging”.
15. Remove Your Page Builder
Page builders slow down your admin, but even more importantly, they slow down your website because they add extra CSS/JS.
I use GeneratePress but Blocksy, Kadence (they’re expensive though), Astra, Oxygen Builder, and StudioPress are lightweight too. NOT Elementor/Divi. Aside from their slow editors, their extra CSS/JS can flag multiple issues in core web vitals and it’s best to avoid them all together.
16. Enable Argo Smart Routing
Cloudflare’s Argo Smart Routing can really help speed up dynamic requests on both your admin/frontend. You can either pay for it directly in Cloudflare or Rocket.net and Cloudways’ Cloudflare Enterprise both support Argo. Cloudflare says on average, it loads assets 30% faster.
17. Run Tools To Find Bottlenecks
Just wanted to list some plugins to diagnose or speed up your slow WooCommerce admin:
|Query Monitor||Find slow queries + plugins||Diagnostic|
|WP Hosting Benchmark||View CPU/memory utilization||Diagnostic|
|WP Healthcheck||View WordPress/PHP/mySQL version, server, etc||Diagnostic|
|Heartbeat Control||Disable/limit Heartbeat||Limiting|
|WP Rocket Helper Plugins||Control preloading + automatic cache clearing||Limiting|
|WP Crontrol||Control cron jobs||Limiting|
|Unbloater||Remove various types of bloat||Bloat Removal|
|Widget Disable||Disable unused widgets in the admin||Bloat Removal|
|Disable WooCommerce Bloat||Remove WooCommerce admin bloat||Bloat Removal|
|Perfmatters||Bloat removal settings + move wp-login||Bloat Removal|
|Limit Login Attempts||Block requests to wp-login||Security|
|WPS Hide Login||Block requests to wp-login||Security|
|Transients Manager||Edit/delete transients||Transients|
|WP-Optimize||Remove old databases tables||Database|
|Redis Object Cache||Object caching||Caching|
|Cloudflare||Set up Cloudflare APO||Caching|
|Super Page Cache for Cloudflare||Full page caching on Cloudflare||Caching|
|BunnyCDN||Used to set up BunnyCDN||CDN|
|Blackhole for Bad Bots||Block bad bots||Bot Protection|
Why is my WooCommerce admin slow?
A slow WooCommerce admin is often related to a specific plugin (or plugin setting), high CPU usage, a bloated database, or inadequate hosting infrastructure. Redis, OPcache, and Disable WooCommerce bloat can all speed up the admin.
I hope this helped! Comment if you have questions.