Chat on WhatsApp
CATEGORY

Performance

Magento 2 + Hyvä speed, Core Web Vitals (LCP/INP/CLS), TTFB tuning, indexer + cache strategy.

11 articles
Headless & Architecture Magento Performance Magento API Performance: REST vs GraphQL Trade-offs Explained With Real Numbers

Magento API Performance: REST vs GraphQL Trade-offs Explained With Real Numbers

Most Magento REST vs GraphQL articles compare syntax. After benchmarking three real queries against a Magento 2.4.9 store with 50,000 SKUs, the answer flips depending on the call pattern: REST wins single-resource by URL (95 ms vs 140 ms), GraphQL wins relational and grid loads by an order of magnitude (180 ms vs 665 ms), and the FPC versus @cache directive story decides whether either survives Black Friday. Here is the curl trace, the wrk concurrency test, and the cache invalidation pattern from client work on Magento 2.4.4-2.4.9.

Kishan Savaliya 12 min read
Performance Magento Performance Magento `setup:static-content:deploy -f` Reusing Old Cache: The Wipe Sequence

Magento `setup:static-content:deploy -f` Reusing Old Cache: The Wipe Sequence

You edit a LESS file, push it to production, run `bin/magento setup:static-content:deploy -f en_US`, and the old CSS still serves. The deploy reports success in under two seconds. The browser still shows the old rules. The issue is not Cloudflare, not OPcache, not the browser, it is Magento reusing the preprocessor output cached under `var/view_preprocessed`. The `-f` flag clears `pub/static` but does not always touch `view_preprocessed`. This is the exact wipe sequence we run on every Magento 2.4.4-2.4.9 Hyvä store to force a true LESS-to-CSS recompile, why the order of operations matters, and the one-liner that catches the nested `_module.less` reused-output trap.

Kishan Savaliya 9 min read
Performance Magento Performance Magento Slow Category Page: The Indexer, EAV & JOIN Trap

Magento Slow Category Page: The Indexer, EAV & JOIN Trap

Most Magento 2.4.9 stores hit a visible wall the moment a category crosses ~5,000 products. The price index swells, the EAV join fan-out balloons, and a category that rendered in 400 ms now takes 1.8 seconds before TTFB even starts. After tuning 22 catalogs between 8k and 180k SKUs in 2025–2026, only three remediations consistently bring category page TTFB back under 250 ms: legacy flat catalog (yes, deprecated, still works under 50k SKUs), the Hyvä Catalog add-on, and a custom slim query for SKU-only listings. Here is the EXPLAIN ANALYZE for each, the millisecond numbers, and the SKU ceiling for each option.

Kishan Savaliya 11 min read
Performance Magento Performance Magento Core Web Vitals: The Actual LCP, INP & CLS Recipe

Magento Core Web Vitals: The Actual LCP, INP & CLS Recipe

Four real diagnoses from production Magento + Hyvä stores in 2026. LCP element pinned in DevTools Performance (usually the hero image or an H1 stuck in font-swap), a 10 KiB inline critical CSS budget, a 1200w / 800w / 480w WebP <picture> matrix, INP traced to a 3-second Knockout boot on Luma checkouts, and CLS killed by reserving min-height on the cookie banner. Real Lighthouse JSON excerpts, a recipe checklist, and the mobile P=52 → P=88 numbers that came out the other side.

Kishan Savaliya 11 min read
Performance Magento Performance Redis + Varnish + OpenSearch Tuning for Magento 2.4.x

Redis + Varnish + OpenSearch Tuning for Magento 2.4.x

Most Magento performance guides stop at FPM_CHILDREN and "enable Varnish." The real wins live in six config keys nobody talks about: Redis eviction policy, Varnish ESI hold-times, OpenSearch query clause limits, and a handful of header rules. Here is the diff per key, the ROI measured on a real 80k-SKU prod trace, and the safe-rollback notes.

Kishan Savaliya 11 min read
Performance Magento Performance Magento TTFB Optimization: From 1.8s to 180ms

Magento TTFB Optimization: From 1.8s to 180ms

Most Magento TTFB advice stops at "enable Varnish". After dragging one Magento 2.4.9 store from 1.8 s down to 180 ms, three fixes mattered: PHP-FPM pm.max_children sized to actual per-process memory, a Redis cache_id_prefix collision that two stores quietly shared, and Varnish ESI scoped to cart and wishlist blocks. Here is the real var/log/php-fpm.log, redis-cli MONITOR output, and varnishlog trace that pinned each one: with a table that separates what hits TTFB from what only hits LCP and INP.

Kishan Savaliya 11 min read