Security & Performance · E-commerce

How to Speed Up a Slow Magento Store

Rows of servers with blue lights in a data centre
In this article9 sections

To speed up Magento, start with the basics that cause most slowness: make sure the store runs in production mode, that full-page caching works with Varnish, that Redis handles sessions and cache, that indexers run on schedule and that the hosting is sized for your traffic. Then look at the front end, where heavy themes, large images and third-party scripts often slow pages for shoppers. Magento can be very fast. When it is slow, the cause is usually configuration, hosting or custom code rather than the platform itself.

Key takeaways

  • Check that production mode, full-page cache and Redis are set up correctly before anything else.
  • Measure both server response time and what shoppers experience in the browser; they need different fixes.
  • Run indexers and cron reliably, and keep the database tidy.
  • Audit extensions: one badly written module can slow every page.
  • Optimise images, scripts and fonts on key templates, then re-test after every change.

First, find out what "slow" means

"The store is slow" can mean several different things, and each has different causes. Before changing anything, measure:

  • Server response time: how long the server takes to start sending a page. Slow responses point to caching, hosting, database or code problems.
  • Page load in the browser: how long until the page looks complete and responds to taps. Slow loading here often comes from images, scripts and themes.
  • Admin speed: slow product saves, order grids or imports usually point to indexing, database or extension problems.
  • Checkout speed: delays when calculating delivery or loading payment methods often come from slow third-party calls.

Write down the results so you have a baseline. Without one, it is hard to tell later whether a change helped, made no difference or quietly made things worse.

Test a few page types: the home page, a large category, a product with many options, the cart and checkout. Test both cached and uncached pages. Google's Core Web Vitals report in Search Console shows how real shoppers experience your pages; our guide to Core Web Vitals for online stores explains what those numbers mean.

The configuration checks that matter most

These settings are quick to check and cause a large share of the slow Magento stores we see.

Production mode

Magento has developer, default and production modes. Only production mode serves pre-compiled code and static files efficiently. A live store left in developer or default mode will be much slower than it should be.

Full-page cache with Varnish

Full-page caching stores complete pages so most visitors get them instantly, without Magento rebuilding the page each time. Varnish is the recommended cache for production. Check that it is installed, configured, and actually serving pages. A common problem is a block or extension that marks pages as uncacheable, silently disabling the cache on every page that includes it.

Redis for cache and sessions

Redis stores Magento's internal cache and customer sessions in memory, which is far faster than files or the database. Our article on Redis and Varnish explains how the two work together.

Merging and minifying

Settings for bundling, merging and minifying JavaScript and CSS can help or hurt, depending on the theme. Test the effect on real pages rather than switching everything on.

Adobe's performance best practices cover these settings in technical detail for your developer.

Indexers, cron and the database

Indexers

Magento uses indexes to show prices, stock, categories and search results quickly. If indexes fall behind, pages can show wrong data or become slow. Set indexers to update on a schedule, and make sure they run successfully.

Cron

Many background tasks depend on Magento's scheduled jobs: indexing, emails, cache cleaning, sitemap generation and more. If cron is not running, or jobs pile up, the store slowly degrades. Check that cron runs every minute and that the job queue is not backing up.

Database health

Over time, log tables, old quotes, abandoned carts and unused data grow large. Clean them on a schedule. Make sure the database server has enough memory and is configured for Magento's workload. Slow queries in the database log often point straight to the extension or feature causing them.

Hosting that fits your store

Magento needs more resources than a simple website. Cheap shared hosting is rarely suitable for a live store.

  • Enough CPU and memory for your traffic and catalogue size, with headroom for peaks.
  • A current PHP version supported by your Magento version.
  • Fast storage for the database and media files.
  • Separate services for the database, search engine, Redis and Varnish on larger stores.
  • A content delivery network to serve images and static files close to your shoppers.

Our guides to hardware for Magento 2 and the best Magento hosting providers cover sizing and hosting choices in more detail.

Extensions and custom code

Third-party extensions and custom modules are the most common cause of stubborn slowness. One poorly written module can add database queries to every page, disable caching or slow down checkout.

  1. List every extension and what it does. Remove any you no longer use, including disabled ones still installed.
  2. Profile a slow page with a performance profiler to see which code takes the most time.
  3. Test with extensions disabled one at a time on a staging copy to find the culprit.
  4. Fix or replace slow modules. Sometimes a small code change solves it; sometimes a better extension exists.
  5. Review custom code for common problems, such as loading full product collections inside loops.

When problems are deep in custom code, specialist help usually pays for itself quickly. Our Magento bug fixing team handles this kind of performance investigation regularly.

Front-end fixes shoppers notice

Even with a fast server, pages can feel slow in the browser.

Images

Serve product and category images in modern formats such as WebP, in sizes suited to each screen, and lazy-load images below the first screen. Set dimensions so the layout does not jump.

Theme

The default Luma theme loads a lot of JavaScript. Lighter, modern front-end approaches can be much faster, but switching themes is a significant project. Often, trimming unused features from the current theme gives a good share of the benefit.

Third-party scripts

Chat widgets, review tools, tracking tags and marketing pixels all add weight. Load them after the main content, and remove any that are not earning their place.

Fonts

Limit the number of font files and weights, and use settings that show text immediately while fonts load.

Checkout and search are not served from the full-page cache, so they depend on the server and the code being fast every time.

Checkout

Slow checkouts usually come from calls to outside services: live carrier rates, address validation, tax services, fraud checks and payment providers. Each call adds waiting time, and a slow or failing service can stall the whole page. Ask your developer to measure each call, cache carrier rates where the rules allow it, set sensible timeouts and make sure a slow service cannot block the shopper from paying.

Search and layered navigation

Magento uses a separate search engine, such as OpenSearch, for catalogue search and filters. Give it enough memory, keep it on a supported version and make sure its indexes are up to date. Large catalogues with many filterable attributes benefit from reviewing which attributes really need to be searchable or filterable, since each one adds work.

Stay on a supported version

Newer Magento releases include performance improvements as well as security fixes, and they run on newer, faster PHP versions. A store several versions behind misses both. Plan upgrades regularly rather than leaving them until the version reaches end of support.

A sensible order of work

When we speed up Magento stores, we work in roughly this order, because early steps often fix most of the problem cheaply:

StepTypical effortTypical impact
Production mode, cache, Redis, cronLowHigh
Indexers and database clean-upLow to mediumMedium to high
Hosting and CDN reviewMediumHigh for busy stores
Extension audit and profilingMediumOften high
Images and third-party scriptsLow to mediumHigh for shoppers
Theme rebuildHighHigh, but only after the rest

Prepare for peak days

Sale days and campaigns can bring several times your normal traffic in a few hours. Before a big event, load-test the store on staging with realistic traffic, warm the cache for popular pages, check that the hosting can scale, and avoid deploying new code in the days before. Agree who will watch the store during the event and what they will do if it slows down.

Measure after every fix

Record server response times and browser load times before and after each change. This shows which fixes made a difference and protects you from changes that look sensible but make things worse.

Keep it fast

Speed is not a one-off project. New extensions, campaigns and content slowly add weight. Test performance before and after every significant change, keep Magento and its extensions up to date, and include a regular performance check in your maintenance plan. A monthly look at server response times and Core Web Vitals catches problems before shoppers notice them.

Frequently asked questions

Is Magento slow by design?

No. Magento is a large platform, but correctly configured, hosted and cached, it serves pages very quickly. Slowness usually comes from configuration, hosting or custom code.

Will more server power fix a slow store?

Sometimes, if the server is genuinely too small. But if the cause is a broken cache or a slow extension, more hardware only hides the problem and costs more each month.

Do I need a new theme to be fast?

Not always. Many stores get large gains from caching, image optimisation and removing scripts. A new, lighter theme makes sense when the current one is the main remaining bottleneck.

Why is my admin slow when the storefront is fine?

Admin pages are not cached like the storefront, so they expose database, indexing and extension problems more clearly. Large order grids and imports are common pain points.

Is your Magento store slower than it should be? Ask us for a performance audit. We will find the real causes and give you a prioritised plan, from quick configuration fixes to deeper code improvements.

Free expert advice

Want an expert to look at your store?

Tell us what you are working on. A senior e-commerce consultant will reply within one working day with honest, practical advice. No obligation and no sales script.

  • Reply within one working day
  • Advice even if we are not the right fit
  • Your details are never shared

We use your details only to reply to you. See our privacy policy.

About the author
Puja Kumari

Puja Kumari writes about e-commerce strategy, store operations and online growth for Pracoda Technologies, drawing on the team's experience building Magento 2 and custom online stores for clients around the world.

Need a consultation?

Tell us what you are building.

Share the problem, the platform and the deadline. We will come back with an approach, a team and an estimate.