PrestaShop Admin Performance: Why the Back Office Is Slow and How to Fix It

438 views

PrestaShop Admin Performance: Why the Back Office Is Slow

A slow PrestaShop back office is one of the most frustrating problems for store administrators. Product editing takes forever, order management pages lag, and simple configuration changes become an exercise in patience. The worst part is that front office performance can be perfectly fine while the back office crawls. This guide identifies the most common causes of back office slowness and provides concrete fixes for each one.

The Most Common Causes

1. PrestaShop Addons API Connection

This is the number one cause of back office slowness that most store owners never discover. PrestaShop's back office makes HTTP requests to addons.prestashop.com on multiple pages to check for module updates, display notifications, and validate licenses. When PrestaShop's API is slow or unresponsive, your entire back office waits for these requests to time out.

Symptoms - The dashboard takes 10-20 seconds to load. The modules page is extremely slow. Other back office pages that load module information are affected.

Fix - Disconnect from PrestaShop Addons in your back office. Go to Modules > Module Manager and look for the option to sign out from your Addons account. Alternatively, disable the module update checking:

-- Disable addons API calls
UPDATE ps_configuration SET value = '0' WHERE name = 'PS_ADDONS_API_MODULE_CHANNEL';

2. Debug Mode Left Enabled

When debug mode is enabled, PrestaShop disables all caching, recompiles Smarty templates on every request, and logs detailed error information. This is essential for development but catastrophic for performance.

Symptoms - Everything is slow, not just specific pages. Performance improved dramatically in the past and suddenly got worse.

Fix - Check config/defines.inc.php:

// Make sure these are set to false in production
define('_PS_MODE_DEV_', false);
define('_PS_DEBUG_PROFILING_', false);

Also check Advanced Parameters > Performance:

  • Template compilation - set to "Never recompile template files" in production
  • Cache - set to "Yes"
  • Cache type - "File system" is default, Redis or Memcached is better

3. Too Many Installed Modules

Every installed module adds overhead to the back office, even if it is disabled. Modules hook into back office pages, add menu items, load assets, and make database queries. A fresh PrestaShop installation has 50+ modules. Many stores accumulate 100-150 modules over time.

Fix - Audit your modules and uninstall (not just disable) anything you do not use. Pay special attention to:

  • Statistics modules - Many stores have 5-10 statistics modules they never check. If you use Google Analytics, you probably do not need the built-in stats modules.
  • Gamification module - Makes external API calls on every back office page load. Uninstall it.
  • Welcome module (ps_welcome) - Displays a dashboard widget that loads external content. Uninstall after initial setup.
  • Unused payment modules - Each loads configuration and validation code even when disabled.

4. Large Database Without Optimization

Over time, PrestaShop databases accumulate bloat - old cart data, expired guest sessions, search statistics, log entries, and abandoned cart records.

Fix - Clean up database bloat regularly:

-- Delete old carts (older than 30 days, not converted to orders)
DELETE FROM ps_cart WHERE id_cart NOT IN (
    SELECT id_cart FROM ps_orders
) AND date_add < DATE_SUB(NOW(), INTERVAL 30 DAY);

-- Delete old connections/guest data
DELETE FROM ps_connections WHERE date_add < DATE_SUB(NOW(), INTERVAL 30 DAY);
DELETE FROM ps_guest WHERE id_guest NOT IN (
    SELECT id_guest FROM ps_connections
);

-- Delete old search statistics
DELETE FROM ps_statssearch WHERE date_add < DATE_SUB(NOW(), INTERVAL 90 DAY);

-- Delete old mail logs
DELETE FROM ps_mail WHERE date_add < DATE_SUB(NOW(), INTERVAL 90 DAY);

-- Delete old page views
DELETE FROM ps_page_viewed WHERE date_add < DATE_SUB(NOW(), INTERVAL 30 DAY);

-- Optimize tables after cleanup
OPTIMIZE TABLE ps_cart, ps_connections, ps_guest, ps_statssearch, ps_mail, ps_page_viewed;

5. Shared Hosting Limitations

Shared hosting environments have limited CPU, RAM, and I/O resources. When other accounts on the same server are busy, your PrestaShop back office suffers.

Symptoms - Performance varies throughout the day. Sometimes fast, sometimes extremely slow with no changes on your end.

Fix - Upgrade to VPS or dedicated hosting. Minimum recommended specifications for a PrestaShop back office to feel responsive:

  • 2 CPU cores (4 recommended)
  • 4 GB RAM (8 GB recommended)
  • SSD storage
  • PHP 8.1+ with OPcache enabled
  • MySQL 8.0 with InnoDB buffer pool sized to fit your database in memory

6. OPcache Not Enabled or Misconfigured

OPcache caches compiled PHP code in memory, eliminating the need to reparse PHP files on every request. Without OPcache, every back office page load recompiles hundreds of PHP files.

Fix - Enable and configure OPcache:

opcache.enable = 1
opcache.memory_consumption = 256
opcache.interned_strings_buffer = 32
opcache.max_accelerated_files = 16229
opcache.revalidate_freq = 60
opcache.fast_shutdown = 1
opcache.enable_cli = 0

7. Slow Dashboard Widgets

The PrestaShop dashboard loads multiple widgets that query the database for statistics, recent orders, best sellers, and more. With large databases, these queries can take several seconds each.

Fix - Simplify your dashboard. Remove widgets you do not use regularly. In the Dashboard, click the gear icon on each widget and disable those you do not need. Consider reducing the date range for dashboard statistics from "this year" to "this month."

8. Large Product Catalog

Stores with 10,000+ products experience slower product listing pages in the back office. The product list page loads all product data for display, including images, categories, and stock levels.

Fix - Adjust products per page in the back office to 20-50 instead of 100+. Use the search and filter features instead of browsing large product lists.

Performance Optimization Checklist

  1. Disable debug mode in config/defines.inc.php
  2. Set template compilation to "Never recompile" in Performance settings
  3. Enable caching (Redis or Memcached preferred over file system)
  4. Enable OPcache with adequate memory allocation
  5. Disconnect from PrestaShop Addons API
  6. Uninstall unused modules (especially statistics and gamification)
  7. Clean database bloat (old carts, connections, logs)
  8. Simplify dashboard widgets
  9. Upgrade to VPS/dedicated hosting with SSD
  10. Use PHP 8.1+ for significant performance gains

Measuring Back Office Performance

To quantify improvements, measure your back office page load times before and after each optimization:

# Time the dashboard load
curl -o /dev/null -s -w "Total: %{time_total}s\n" -b "cookie.txt" \
  https://yourstore.com/admin-folder/index.php?controller=AdminDashboard

# Time the products page
curl -o /dev/null -s -w "Total: %{time_total}s\n" -b "cookie.txt" \
  https://yourstore.com/admin-folder/index.php?controller=AdminProducts

Target times: Dashboard under 3 seconds, product listing under 2 seconds, product editing under 2 seconds.

For more details, read our guides: What Actually Makes PrestaShop Slow: Database, Modules and Hosting and Database Cleanup: Why Your PrestaShop Store Gets Slower Over Time.

Was this answer helpful?

Still have questions?

Can't find what you're looking for? Send us your question and we'll get back to you quickly.

Loading...
Back to top