ARTICLE

Case Study: Scaling a Mid-Market Brand from 50K to 1M Monthly Sessions on Magento

Case Study: Scaling a Mid-Market Brand from 50K to 1M Monthly Sessions on Magento

The journey from 50,000 monthly sessions to 1,000,000 is where most Magento implementations either prove their architecture or expose every shortcut taken during the original build. This is a composite case study drawn from the patterns we see repeatedly in mid-market apparel scale-ups: an anonymized brand with a $14 to $22 million annual run rate at the start, growing into a high-eight-figure business over 18 months. The numbers are presented as ranges rather than exact figures because the goal is to show what changes at each volume tier, not to fabricate specifics.

The brand was on Adobe Commerce 2.4 with a heavily customized Luma-based theme, hosted on a single-region AWS deployment. The team thought of the platform as performant. At 50,000 sessions per month, almost any setup feels performant. The story of this scale-up is about what stopped feeling performant first, and what had to change at each tier.

Starting Infrastructure at 50K Sessions

The starting stack was unremarkable for a mid-market merchant: a single EC2 application instance, an RDS MySQL database in db.m5.large, ElastiCache Redis for sessions and cache backend, a Varnish layer in front of Magento for full-page caching, and CloudFront fronting static assets. The site rendered in 3.2 to 4.8 seconds on mobile, which felt acceptable to the team and was actually well above what current Core Web Vitals thresholds would call “good.”

The catalog was around 12,000 SKUs with moderate configurable product complexity. Indexing ran on the default schedule. Image delivery used a basic CloudFront distribution without next-gen format conversion. None of this was wrong for the volume. All of it would become wrong at higher tiers.

Bottlenecks Discovered Between 50K and 250K Sessions

The first scaling tier hit when the brand’s marketing team launched paid social campaigns that pushed monthly sessions past 250,000. Three problems surfaced almost simultaneously.

Database query degradation. As the catalog grew and traffic patterns shifted, several queries that had been instant at low volume became measurable. The catalog product flat indexer was serving stale data under load. Specific catalog rule queries on configurable products with many variants started generating temp tables that pushed RDS CPU into the 70 to 85 percent range during peak hours.

Image delivery as the largest LCP contributor. Mobile Largest Contentful Paint was sitting around 3.4 seconds, and roughly 70 percent of that was the hero image and above-the-fold product images. The CloudFront distribution was serving original-format JPEGs without WebP or AVIF conversion. On a mid-tier Android device on 4G, this was the single largest performance liability.

Redis session pressure. With more concurrent users, Redis memory utilization spiked during peak hours. The team had used a single Redis instance for both session storage and Magento cache backend, which is fine until either function gets busy enough to compete for memory.

The fixes at this tier were tactical rather than architectural. Image optimization through a proper image CDN with WebP conversion brought LCP down to 2.1 seconds. Splitting Redis into separate instances for sessions and cache eliminated the memory contention. Tuning the indexer schedule and rebuilding a few problematic indexers on a more aggressive cadence smoothed the database load.

Hyva Migration and Core Web Vitals at 500K Sessions

By the time monthly sessions crossed 400,000, the Luma-based theme had become the obvious next bottleneck. Mobile Core Web Vitals were sitting at 2.1 seconds LCP, 180 milliseconds INP, and 0.18 CLS. None of those were catastrophic, but the marketing team’s next round of growth required higher organic SEO performance, and the merchandising team was adding complex landing pages that dragged INP further.

The migration to Hyvä was the largest single performance improvement in the entire scale-up. Hyvä replaces the legacy Luma frontend with a Tailwind and Alpine.js based theme that ships dramatically less JavaScript and CSS, which directly improves both LCP and INP on mobile devices. Per Hyvä’s documentation, median page weights typically drop by 60 to 80 percent compared to Luma.

In this composite case, post-migration metrics moved into the green: LCP at 1.4 to 1.6 seconds, INP under 100 milliseconds, CLS at 0.04. The conversion rate impact was visible within 30 days, and the SEO impact compounded over the following quarter as Google recrawled and reindexed the site at the new performance profile. This is the same pattern Bemeir’s Hyvä practice sees consistently across mid-market migrations: the performance lift is real, measurable, and durable.

AWS Infrastructure Tuning Between 500K and 750K Sessions

Above 500,000 sessions per month, the infrastructure changes shifted from theme work to capacity engineering. Several things had to change roughly in parallel.

RDS sizing and read replicas. The database moved from db.m5.large to db.r5.xlarge, and a read replica was added to handle read-heavy traffic patterns from category pages and search results. Catalog browsing went to the replica, while checkout and inventory operations stayed on the primary.

ElastiCache resizing and reserved capacity. The Redis cache cluster was resized to handle peak hour pressure with comfortable headroom, and reserved instance pricing was used to keep costs predictable as volume scaled.

CloudFront optimization. Origin shielding was enabled, cache key normalization was tightened to improve hit ratio, and the static asset strategy was refined to maximize cache effectiveness. The Bemeir AWS infrastructure work that supports clients running this kind of volume often follows the patterns described in the Adobe Commerce performance documentation, with practical AWS-native optimizations layered on top.

Varnish reconfiguration. The full-page cache configuration was retuned to handle the heavier page mix, with cache warming added for the most heavily trafficked category and product pages. This made a measurable difference during traffic spikes from email and paid social.

The combined infrastructure work brought average TTFB down significantly during peak and reduced the frequency of stress-related anomalies on the platform.

Code-Level Optimizations Between 750K and 1M Sessions

The final tier is where code-level discipline matters more than infrastructure. At 1,000,000 sessions per month, the platform is constantly busy. There is no quiet hour where you can ignore an inefficiency. Several optimization patterns mattered most.

Indexer strategy. Critical indexers were moved to a continuous schedule with a dedicated worker pool, while less critical indexers stayed on a periodic schedule. This kept storefront data freshness high without overloading the database during business hours.

Full-page cache warm-up. A scheduled cache warmer was deployed to keep the top 5,000 product pages and top 200 category pages hot in Varnish at all times, which dramatically reduced cache miss latency during traffic spikes from marketing campaigns.

Lazy loading and asset prioritization. Below-the-fold images were lazy-loaded, third-party tags were deferred where possible, and the critical rendering path was tightened to prioritize the assets needed for first paint.

Custom module audits. Several custom modules accumulated during the platform’s earlier years were audited for query efficiency, and a handful were rewritten to reduce database load. Two were retired entirely.

Phase by Phase: What Changed at Each Tier

The work at each volume tier was different, and treating the scale-up as a single homogeneous project would have overspent at low volume and underprepared for high volume. The table below summarizes the dominant work at each tier.

Volume tier Dominant bottleneck Primary work Approximate Core Web Vitals LCP
50K to 100K monthly sessions None significant; all systems comfortable Baseline monitoring, capacity tracking 3.2 to 4.8 seconds
100K to 250K monthly sessions Image delivery, basic Redis pressure Image CDN with WebP/AVIF, Redis separation 2.6 to 3.0 seconds
250K to 500K monthly sessions Theme weight on mobile, INP and JS bloat Hyvä migration, frontend overhaul 1.4 to 1.7 seconds
500K to 750K monthly sessions Database load, cache hit ratio RDS scale-up and read replica, Varnish tuning, ElastiCache resize 1.3 to 1.5 seconds
750K to 1M monthly sessions Indexer load, custom module efficiency, peak burst handling Indexer strategy, FPC warm-up, code-level audit 1.1 to 1.4 seconds

The shape of this progression is what matters. Each tier required a different category of work. Skipping the Hyvä migration would have made the infrastructure work at 750K sessions far more expensive because the Luma frontend was wasting compute on every request. Skipping the indexer work at 1M would have made the database scale up needed two tiers earlier.

What This Pattern Tells Mid-Market Owners

The lesson from a 20x scale-up on Magento is that performance and scalability are not a single decision. They are a sequence of decisions that arrive in a predictable order. Brands that prepare for the next tier rather than the current tier scale smoothly. Brands that optimize only when something breaks spend more, lose more revenue during the breaks, and accumulate technical debt that surfaces during peak season.

The right Magento partner on a project like this is not the agency that builds the prettiest theme. It is the agency that knows which bottleneck arrives at which volume tier and has fixed each one before. Bemeir’s work with high-volume Magento clients including K&N Engineering follows exactly this progression, because the patterns repeat across merchants. The numbers change. The order does not.

Let us help you get started on a project with Case Study: Scaling a Mid-Market Brand from 50K to 1M Monthly Sessions on Magento and leverage our partnership to your fullest advantage. Fill out the contact form below to get started.

more articles about ecommerce

Read on the latest with Shopify, Magento, eCommerce topics and more.