Page 24 - Web Performance
-
Maxim Mironjuk
-
March 27, 2025
Nuxt 3 offers server side rendering, static site generation, incremental static regeneration and hybrid rendering, all in one framework. Anyone who does not know the differences between the modes gives away performance and SEO potential. This article explains all rendering modes with concrete route rule configurations and typical pitfalls.
-
Maxim Mironjuk
-
March 25, 2025
Not every JavaScript task needs to run immediately. requestIdleCallback and the newer Scheduler API let you push non-urgent work into phases where the main thread has nothing more important to do anyway, without putting the page's responsiveness to user interaction at risk.
-
Maxim Mironjuk
-
March 24, 2025
A correctly configured Varnish Full Page Cache serves Magento pages in a few milliseconds, yet a single misconfigured cookie rule can drop the hit ratio to zero. This article explains VCL fundamentals, Magento's default.vcl, ESI fragments for personalized blocks, and the most common cache-busting mistakes along with debugging techniques.
-
Maxim Mironjuk
-
March 22, 2025
An endpoint loads a list of a hundred rows and triggers a hundred additional single row queries, one per row. The N+1 problem rarely comes from bad SQL, it comes from how application code loads relationships between tables. Once you recognize the pattern in the query log, you can fix the root cause with a JOIN or batch loading instead of optimizing symptoms.
-
Maxim Mironjuk
-
March 22, 2025
A stuck or constantly recalculating indexer slows down the entire store, from stale prices to empty search results. This article explains the available indexer modes, why the Price Index and Category Products are the most expensive, which changes trigger an unwanted full reindex, and how to reliably diagnose and fix stuck indexers using indexer:status, the indexer_state table, and growing mview changelog tables.
-
Maxim Mironjuk
-
March 19, 2025
A misconfigured Elasticsearch or OpenSearch installation noticeably slows down every category page and every faceted search in Magento. This article shows how index mapping, shard sizes, JVM heap, and query patterns determine actual response time, how to find bottlenecks with the Explain API and cluster health checks, and how to avoid expensive wildcard and fuzzy queries in layered navigation.
-
Maxim Mironjuk
-
March 18, 2025
Custom share buttons hardcoded to a handful of social media platforms are outdated. The Web Share API opens the operating system's native share dialog, and the user decides which app to use: WhatsApp, Telegram, Email, Notes, or anything else. The result is better UX with less code and no dependency on third-party SDKs.
-
Maxim Mironjuk
-
March 17, 2025
A skeleton screen, a placeholder layout made of gray boxes and bars shown in place of the actual content while it loads, has become a standard pattern for perceived loading states over the past several years. The crucial point that often gets missed is that a skeleton screen shortens perceived wait time without actually improving technical Core Web Vitals values like Largest Contentful Paint, and under certain circumstances it can even worsen the Cumulative Layout Shift score. This article explains why skeleton screens work psychologically, where their technical limits lie, how to avoid CLS risk at the transition to real content, and when a plain spinner is the more pragmatic choice.
-
Maxim Mironjuk
-
March 16, 2025
OPcache's factory defaults were designed for a developer laptop, not a PHP-FPM pool under heavy load. If you have never touched memory_consumption, max_accelerated_files, or validate_timestamps, you are leaving measurable response time on the table and risking wasted memory, hash collisions, and unnecessary filesystem stats on every single request. This guide walks through the OPcache Tuning parameters that genuinely have measurable impact, how to size them correctly, and what a safe zero downtime deployment workflow looks like around them.
-
Maxim Mironjuk
-
March 15, 2025
A single code change rarely worsens a product page's load time noticeably, but twenty such small, individually inconspicuous degradations over several months add up to an overall considerably slower application, without any single, clearly responsible commit being identifiable for it. A performance budget wired into the CI pipeline as an automated test assertion prevents exactly this creeping problem, by immediately checking every single change against fixed, objective thresholds, instead of monitoring performance only occasionally and manually.
-