End-to-End Magento 2 Performance Optimization

Is your Magento 2 online store losing customers due to slow page loading? We perform comprehensive performance optimization, tuning every layer of the stack—from Varnish and Redis to eliminating N+1 queries. Our team delivers the project turnkey, ensuring stable operation and ongoing support.

Development and maintenance of all types of websites:

Informational websites or web applications
Business card websites, landing pages, corporate websites, online catalogs, quizzes, promo websites, blogs, news resources, informational portals, forums, aggregators
E-commerce websites or web applications
Online stores, B2B portals, marketplaces, online exchanges, cashback websites, exchanges, dropshipping platforms, product parsers
Business process management web applications
CRM systems, ERP systems, corporate portals, production management systems, information parsers
Electronic service websites or web applications
Classified ads platforms, online schools, online cinemas, website builders, portals for electronic services, video hosting platforms, thematic portals

These are just some of the technical types of websites we work with, and each of them can have its own specific features and functionality, as well as be customized to meet the specific needs and goals of the client.

Our competencies:

Frequently Asked Questions

Latest works

  • Development of a web application for FEEDME
    Development of a web application for FEEDME
    1344
  • Development of an online store for the company FURNORO
    Development of an online store for the company FURNORO
    1307
  • Development of a web application for Enviok
    Development of a web application for Enviok
    1049
  • CRM development for Chasseurs
    CRM development for Chasseurs
    1097
  • Website development for SBH Partners
    Website development for SBH Partners
    1171
  • Website development for Red Pear
    Website development for Red Pear
    596

We've encountered this scenario: a Magento 2 page loading in 8 seconds, each request triggering 300 SQL queries and 60 file operations. Clients leave, conversion drops. The solution isn't just enabling cache—it's building the right stack: CDN → Varnish → Nginx → PHP-FPM 8.2 → MySQL 8.0, each layer tuned for the platform. In 6–10 business days we bring TTFB down to 200–500 ms. This article covers proven methods and configurations we use on commercial projects.

A recent case: a store with a 50,000 SKU catalog on shared hosting—pages loaded in 12 seconds, LCP 8 seconds. An audit revealed the “Featured Products” plugin made 150 SQL queries per page. After configuring Varnish and fixing N+1, TTFB dropped to 0.3s, LCP to 1.2s. Comparison: Varnish outperforms Magento's built-in cache 10x in TTFB, and Redis reduces block generation time from 50 ms to 1–2 ms.

Why Magento 2 is Slow

A default installation executes 200–400 SQL queries and 50–100 file operations per page. Typical causes:

  • N+1 problemsafterLoad plugins, collections without addAttributeToSelect, loading products one by one.
  • No Varnish — dynamic content regenerated on every request.
  • MySQL untuned — default buffer 128 MB, redo log 48 MB.
  • PHP without OPcache/JIT — code interpreted on every request.
  • MySQL search — LIKE '%query%' for a catalog of 10,000+ SKUs gives 2–5 second response.

How We Configure the Stack

Varnish

Varnish is a reverse proxy cache that stores full HTTP responses. For anonymous users, hit rate reaches 85–95%. VCL configuration accounts for Magento's architecture: we skip sessions, cart, checkout, and cache everything else.

Redis

Redis is used for cache (config, layout, block HTML, full page cache) and session storage. This eliminates disk I/O and reduces MySQL load. Setup includes separate instances for different data types.

PHP 8.2 + OPcache + JIT

Upgrading to PHP 8.2 yields a 15–25% boost on CPU-bound operations. OPcache with 512 MB memory and JIT in tracing mode accelerates script execution by up to 20%.

; /etc/php/8.2/fpm/conf.d/opcache.ini
opcache.enable=1
opcache.memory_consumption=512
opcache.interned_strings_buffer=64
opcache.max_accelerated_files=60000
opcache.validate_timestamps=0
opcache.revalidate_freq=0
opcache.fast_shutdown=1
opcache.enable_cli=1
; JIT
opcache.jit=tracing
opcache.jit_buffer_size=256M
[magento]
user = www-data
group = www-data
listen = /run/php/php8.2-fpm-magento.sock
listen.backlog = 65535
pm = dynamic
pm.max_children = 40
pm.start_servers = 10
pm.min_spare_servers = 5
pm.max_spare_servers = 20
pm.max_requests = 2000
php_admin_value[memory_limit] = 768M
php_admin_value[max_execution_time] = 600
php_admin_value[opcache.file_cache] = /tmp/opcache

MySQL

InnoDB buffer pool — 70% of server RAM. Redo log 1 GB, flush method O_DIRECT, query cache disabled (mutex kills concurrency). Below is a typical configuration for a 16 GB RAM server.

[mysqld]
innodb_buffer_pool_size = 8G
innodb_buffer_pool_instances = 8
innodb_log_file_size = 1G
innodb_log_buffer_size = 64M
innodb_flush_log_at_trx_commit = 2
innodb_flush_method = O_DIRECT
innodb_read_io_threads = 16
innodb_write_io_threads = 16
innodb_thread_concurrency = 0
query_cache_type = 0
slow_query_log = 1
slow_query_log_file = /var/log/mysql/slow.log
long_query_time = 1

Elasticsearch

We replace MySQL search with Elasticsearch — full-text search with relevance, autocomplete, faceted filtering. After reindexing, a search page with 50,000 products responds in 50–150 ms instead of 2–5 seconds.

What to Do About N+1 Queries

Diagnosing N+1 Diagnosis is performed using `n98-magerun2` — we enable query logging, open a page, and analyze the file. Typical sources:
  • afterLoad plugins that issue queries for each collection record
  • EAV attributes without addAttributeToSelect in the collection
  • blocks calling $product->load($id) instead of working with the collection

The correct pattern is to load the collection in one query for all data, not 24+1.

How to Measure Optimization Results

Metric Before Optimization After Optimization
TTFB 3–8 s 0.2–0.5 s
SQL queries 200–400 20–50
LCP >4 s <1.5 s
FCP >3 s <1 s
Search response 2–5 s 50–150 ms

Measurements are done using Chrome DevTools, Lighthouse, Blackfire. For production, we recommend monitoring Core Web Vitals via Search Console and RUM.

How Long Does Optimization Take?

PHP and Varnish tuning — 2–3 days. MySQL and Elasticsearch — 1–2 days. N+1 audit, cron, CDN — 2–3 days. Full optimization — 6–10 business days. We estimate your project within 1–2 days after providing access.

Typical Problems and Their Solutions

Problem Solution Typical Gain
High TTFB Varnish + CDN 10x speedup
Many SQL queries Fix N+1, flat catalog 90% reduction
Slow search Elasticsearch 20–50x faster
Low cache hit rate VCL tuning, exclusions 85–95% hit rate

We guarantee stable results after optimization. With over 8 years of Magento experience and 50+ store acceleration projects completed, contact us for an audit — we will assess your current performance and propose a plan. Order a turnkey Magento 2 performance optimization — get a measurable boost in conversion and customer satisfaction.