# 14 Fixes for a Slow Magento 2 Store (Speed Optimization Guide)

> Fourteen Magento 2 speed fixes in order of impact: production mode, full-page cache with Varnish, Redis, OpenSearch, indexers, cron, extensions, images, Hyvä, and hosting. What to check first and why.

**Keywords:** Magento 2 speed optimization, slow Magento 2 store, Magento performance, Magento Varnish, Magento Redis, Hyva theme performance, Magento Core Web Vitals, Adobe Commerce performance

**Source:** https://reeddynamic.com/blog/magento-2-speed-optimization-fixes/
**Published:** 2026-10-19
**Updated:** 2026-10-19

---

[eCommerce](https://reeddynamic.com/blog/category/ecommerce/)

# 14 Fixes for a Slow Magento 2 Store

By [Drew Reed](https://reeddynamic.com/about/#founder), Founder & Principal EngineerPublished October 19, 20264 min read

Fourteen Magento 2 speed fixes in order of impact: production mode, full-page cache with Varnish, Redis, OpenSearch, indexers, cron, extensions, images, Hyvä, and hosting. What to check first and why.

- [Magento 2 speed optimization](https://reeddynamic.com/blog/#q=Magento%202%20speed%20optimization)
- [slow Magento 2 store](https://reeddynamic.com/blog/#q=slow%20Magento%202%20store)
- [Magento performance](https://reeddynamic.com/blog/#q=Magento%20performance)
- [Magento Varnish](https://reeddynamic.com/blog/#q=Magento%20Varnish)
- [Magento Redis](https://reeddynamic.com/blog/#q=Magento%20Redis)
- [Hyva theme performance](https://reeddynamic.com/blog/#q=Hyva%20theme%20performance)

## In this article

1. [1. Make sure the store is in production mode](#1-make-sure-the-store-is-in-production-mode)
2. [2. Put Varnish in front of the full-page cache](#2-put-varnish-in-front-of-the-full-page-cache)
3. [3. Hunt down cacheable="false" blocks](#3-hunt-down-cacheable-false-blocks)
4. [4. Use Redis for cache and sessions](#4-use-redis-for-cache-and-sessions)
5. [5. Set indexers to "Update by Schedule" and fix cron](#5-set-indexers-to-update-by-schedule-and-fix-cron)
6. [6. Tune OpenSearch for catalog search](#6-tune-opensearch-for-catalog-search)
7. [7. Audit your extensions](#7-audit-your-extensions)
8. [8. Clean up the database](#8-clean-up-the-database)
9. [9. Switch the frontend to Hyvä](#9-switch-the-frontend-to-hyv)
10. [10. If you stay on Luma, fix the JavaScript](#10-if-you-stay-on-luma-fix-the-javascript)
11. [11. Optimize images](#11-optimize-images)
12. [12. Remove or delay third-party scripts](#12-remove-or-delay-third-party-scripts)
13. [13. Use a CDN](#13-use-a-cdn)
14. [14. Right-size your hosting](#14-right-size-your-hosting)
15. [Where to start](#where-to-start)

A slow Magento 2 store loses sales on every page and drags down search rankings through [Core Web Vitals](https://reeddynamic.com/blog/core-web-vitals-2025-optimization-guide/). The good news is that most slow Magento stores are slow for the same short list of reasons. Here they are, roughly in the order we check them on a performance audit. The first five are configuration and can often be fixed in a day.

## 1. Make sure the store is in production mode

It sounds obvious, but we regularly find live stores running in default or developer mode, which generates static files on the fly and turns off optimizations. Run `bin/magento deploy:mode:show`. If it doesn't say production, fix that first.

## 2. Put Varnish in front of the full-page cache

Magento's built-in full-page cache works, but Varnish is the recommended production setup and is much faster at serving cached pages. Then check the cache hit rate. Category and CMS pages should mostly come from cache. A low hit rate usually means a block somewhere is marked uncacheable.

## 3. Hunt down cacheable="false" blocks

A single layout block with `cacheable="false"` disables full-page caching for *every page* that block appears on. Poorly written extensions sometimes add one to the header or footer, which turns off caching for the whole site. Search your layout XML and extensions for it.

## 4. Use Redis for cache and sessions

File-based cache and sessions slow down under load and on shared disks. Configure Redis for the default cache, page cache (if not using Varnish), and sessions, ideally as separate databases or instances so a session flood doesn't evict your cache.

## 5. Set indexers to "Update by Schedule" and fix cron

"Update on Save" makes admin saves and imports slow and can lock tables during busy periods. Switch indexers to "Update by Schedule," then make sure cron is actually running reliably. Stuck cron jobs are a frequent hidden cause of stale prices, missing products, and growing database tables.

## 6. Tune OpenSearch for catalog search

Search and layered navigation run on OpenSearch (or Elasticsearch on older versions). Undersized search servers make category filtering and search results pages slow. Give it enough memory, keep it on the supported version, and check slow queries. For large catalogs, a dedicated search service like [Hawksearch](https://reeddynamic.com/blog/hawksearch-for-magento-2-unlock-superior-search-functionality/) can be worth it.

## 7. Audit your extensions

Third-party extensions are the most common cause of slow Magento stores we see. Profile a slow page and look for observers and plugins that run on every request, extensions making external API calls during page load, and modules you no longer use. Disabling and removing unused extensions is free performance.

## 8. Clean up the database

Log tables, quote tables full of abandoned guest carts, old cron history, and URL rewrites multiplied by every store view all grow without limit. Configure log cleaning, prune old quotes, and check for bloated URL rewrite tables, especially after a migration.

## 9. Switch the frontend to Hyvä

Magento's default Luma theme loads a lot of JavaScript (RequireJS, Knockout, jQuery) that hurts mobile performance. [Hyvä](https://reeddynamic.com/services/magento-2-development/) replaces it with a lightweight Tailwind and Alpine.js frontend and routinely moves stores from failing to passing Core Web Vitals. It's a project rather than a setting, but it's the biggest single frontend improvement available.

## 10. If you stay on Luma, fix the JavaScript

Not ready for Hyvä? Turn on JS and CSS minification, defer non-critical scripts, remove unused modules from the page, and be careful with JS bundling. Magento's built-in bundling often makes things slower by creating huge files. Measure before and after each change.

## 11. Optimize images

Serve WebP or AVIF, size images to their display dimensions, lazy-load anything below the fold, and preload the main product or hero image so it doesn't hurt Largest Contentful Paint. A CDN or image service that resizes on the fly saves a lot of manual work on large catalogs.

## 12. Remove or delay third-party scripts

Chat widgets, review platforms, heatmaps, affiliate pixels, and several tag managers' worth of marketing tags can add seconds to every page. Audit them all, remove what nobody uses, load the rest after user interaction where possible, or move tags server-side.

## 13. Use a CDN

A CDN serves static assets and media from locations close to your customers and takes load off your origin server. Many also handle image optimization, compression, and HTTP/3. For U.S. stores with national customers it's an easy win.

## 14. Right-size your hosting

Magento needs real resources: enough PHP-FPM workers, fast NVMe storage, sufficient RAM for MySQL buffers, and a current supported PHP version. Shared hosting and undersized VPS plans are false economies for any store doing meaningful revenue. Make sure your hosting can handle peak days, not only a normal Tuesday.

## Where to start

| Symptom | Likely cause | Check first |
| --- | --- | --- |
| Every page is slow, even cached ones | Mode, hosting, or no Varnish | #1, #2, #14 |
| Some pages fast, some slow | Uncacheable blocks | #3, #7 |
| Category filtering is slow | Search engine sizing | #6 |
| Admin and imports are slow | Indexers, cron, database | #5, #8 |
| Fast server, poor mobile scores | Frontend JavaScript and images | #9–#12 |

Most of these fixes are covered by our [technical SEO and Core Web Vitals service](https://reeddynamic.com/services/technical-seo/), and ongoing performance monitoring is part of [Magento 2 support plans](https://reeddynamic.com/services/website-maintenance/). If your store is several major versions behind, read our [Magento development guide](https://reeddynamic.com/blog/magento-development-guide-tips-tricks-and-trends-for-e-commerce-success/) or talk to us about an [upgrade or migration](https://reeddynamic.com/services/magento-migration/).

## Frequently asked questions

**

### Why is my Magento 2 store so slow?

**

The most common causes are the store not running in production mode, full-page caching disabled or bypassed by an uncacheable block, poorly written third-party extensions, a JavaScript-heavy Luma theme, and undersized hosting.

**

### Is Hyvä worth it for Magento performance?

**

For most stores, yes. Hyvä replaces Luma's heavy JavaScript with a lightweight frontend and typically moves stores from failing to passing Core Web Vitals on mobile. It also tends to lower frontend maintenance costs.

**

### How much does Magento 2 performance optimization cost?

**

A performance audit with configuration fixes typically falls within our $2,500–$12,000 technical SEO range, depending on store size. A Hyvä theme rebuild is a larger project, scoped separately.

## Related services

- [Magento 2 Development](https://reeddynamic.com/services/magento-2-development/)
- [Shopify & BigCommerce](https://reeddynamic.com/services/shopify-bigcommerce-development/)
- [ERP & eCommerce Integration](https://reeddynamic.com/services/erp-integration/)

### About Drew Reed

Drew Reed is the founder and principal engineer of Reed Dynamic, a software studio near Ann Arbor, Michigan, building Magento 2 stores, iOS and Android apps, SharePoint intranets, and the API integrations that connect them since 2010. [More about us](https://reeddynamic.com/about/) · [Start a project](https://reeddynamic.com/contact/)

## Related articles

May 5, 2023 · eCommerce

### [Magento Development Guide: Tips and Trends](https://reeddynamic.com/blog/magento-development-guide-tips-tricks-and-trends-for-e-commerce-success/)

A practical guide to Magento 2 development: performance, themes, integrations, upgrades, and maintainable roadmaps for growth.

[Read more →](https://reeddynamic.com/blog/magento-development-guide-tips-tricks-and-trends-for-e-commerce-success/)

July 10, 2023 · eCommerce

### [Hawksearch for Magento 2: Unlock Superior Search Functionality](https://reeddynamic.com/blog/hawksearch-for-magento-2-unlock-superior-search-functionality/)

Improve Magento 2 search relevance and conversion with practical requirements, rollout steps, and an optimization checklist for merchandising.

[Read more →](https://reeddynamic.com/blog/hawksearch-for-magento-2-unlock-superior-search-functionality/)

June 16, 2025 · Web Development

### [Core Web Vitals 2025: Complete Optimization Guide](https://reeddynamic.com/blog/core-web-vitals-2025-optimization-guide/)

Master Core Web Vitals optimization for better user experience and SEO rankings. Complete guide to LCP, FID, CLS metrics with practical improvement strategies.

[Read more →](https://reeddynamic.com/blog/core-web-vitals-2025-optimization-guide/)

September 14, 2026 · eCommerce

### [10 ERP–eCommerce Integration Mistakes (and How to Avoid Them)](https://reeddynamic.com/blog/erp-ecommerce-integration-mistakes/)

The ten ERP and eCommerce integration mistakes behind overselling, wrong B2B prices, and orders stuck between systems, and how to design a sync that holds up with Magento, Shopify, NetSuite, P21, or Business Central.

[Read more →](https://reeddynamic.com/blog/erp-ecommerce-integration-mistakes/)

## Need help putting this into practice?

Reed Dynamic builds the eCommerce stores, mobile apps, and integrations discussed on this blog. Tell us what you're working on.

            [Start a project](https://reeddynamic.com/contact/) · [Schedule a call](https://calendly.com/reed-dynamic)

Or call [(734) 535-8954](tel:+17345358954) · Mon–Fri 9–5 ET
