14+ years building on WordPress / Replies in under 5 hours
WooCommerce

Subscription store rebuilt to hold up through peak season

An Australian retailer's subscription store had buckled the previous peak season. The rebuild started by deliberately breaking it in a load test to find out where the ceiling actually was.

400 → 4,200
concurrent users sustained
k6 staged ramp, identical test both runs
99.94%
uptime across peak window
UptimeRobot, 60s checks, Nov–Dec
820ms
checkout response at peak
p95, measured under load test
expected peak in dress rehearsal
full rehearsal run 2 weeks pre-season

Representative engagement. The client's identity is withheld under NDA, and the figures shown illustrate typical outcomes for this type of project rather than one client's audited results. The methodology described below is exactly what I run on real projects.

Client
Retailer
Identity withheld under NDA
Industry
eCommerce / subscription retail
Services
WooCommerce development
Timeline
8 weeks
In short

A WooCommerce Subscriptions store was load-tested to find its real breaking point (around 400 concurrent users), then rebuilt: sessions moved to Redis, checkout separated cleanly from full-page caching, and renewal processing throttled through Action Scheduler so it couldn't collide with peak shopping traffic.

The challenge

The previous peak season had gone badly: checkout slowed to a crawl at exactly the moment traffic mattered most, and the team had no idea why, because nobody had ever measured where the ceiling was. Subscription stores are harder to scale than standard ones for a specific reason — renewal processing runs on a schedule that has no awareness of your traffic, so a renewal batch can fire in the middle of your busiest hour and compete for the same database connections as live shoppers. On top of that, checkout can't be page-cached, so every checkout request hits PHP and the database directly.

Starting point

Measured on the existing setup before any changes: checkout degraded past acceptable response times at roughly 400 concurrent users, sessions stored in the database with wp_options contention under load, renewal batches running unthrottled via WP-Cron, no autoscaling, and no load test had ever been run.

Abstract graphic of circles swelling toward the centre, representing a traffic peak absorbed

The approach

Peak-season failures almost never happen at the front end — they happen at checkout, where caching can't help you and every request hits PHP and the database. So the first job was to break the store on purpose, in a test, to find the real number rather than guessing at capacity.

Load-tested the existing setup first to find the actual breaking point rather than guessing — it degraded at around 400 concurrent users, well below what the client assumed
Moved session handling out of the database into Redis, which was the single largest constraint under load and the cause of most of the checkout slowdown
Separated the checkout path from full-page caching properly, so cart state stayed correct while everything else stayed aggressively cached
Moved subscription renewal processing to Action Scheduler with throttled batches and an off-peak window, so renewals could no longer collide with live shopping traffic
Configured autoscaling with a pre-warmed baseline ahead of the peak window, because cold scaling triggered by a traffic spike arrives several minutes too late to help
Ran a full dress rehearsal at 3× expected peak two weeks before the season, which is the only way to find out whether the plan actually holds

The results

The store sustained an order of magnitude more concurrent load than before, with checkout response staying under a second at p95 through the peak window. The renewal-scheduling change mattered more than the raw capacity increase: it removed an entire category of failure where a scheduled batch could degrade checkout at the worst possible moment. The dress rehearsal two weeks out caught a caching misconfiguration on the account page that would otherwise have surfaced live.

What this didn't cover

Infrastructure and application performance only. No merchandising, pricing, ad-spend or email-marketing work — all of which move peak-season revenue considerably more than uptime does. I'd be cautious about attributing revenue growth to an engagement like this for exactly that reason: a store that stays up during peak can capture demand, but it doesn't create it, and any year-on-year revenue comparison is confounded by ad spend, catalogue changes and market conditions. The subscription product catalogue was migrated as-is with no restructuring, and customer service tooling was untouched.

Services used on this project

Want the same for your site? Start here:

WooCommerce development for stores built to sell WordPress speed optimization that users actually feel

Common questions

Only one way: load-test it before the season and find the actual number. Most stores have never been tested and are running on an assumption. A staged ramp test tells you where checkout starts to degrade, and that number is nearly always lower than owners expect — which is much better to learn in October than on the day.

Almost never the pages people worry about. Product and category pages cache well and scale easily. It's checkout, cart and account — the paths that can't be cached — plus anything running on a schedule in the background. On subscription stores specifically, renewal processing colliding with peak traffic is the classic failure, and it's invisible until it happens.

Yes. The work happens on a staging clone and gets verified there under load before anything touches production. Deployment is then a short, planned switch — and scheduled well outside your peak window, not during it.

Verified reviews

What clients say on Google

These are general reviews of working with me, not comments on this specific project.

★★★★★

“Fantastic Developer. Very knowledgeable. Very patient. Works extremely hard. Very good English Skills. Good communication skills. Takes the time to understand the project scope and the minor details in your project. I am very impressed.”

SB
Silvia B
Google Reviews
★★★★★

“Great developers! All the team are professionally, it's a pleasure work with them :). I, sincerely, recommend it.”

LB
Laura Ballart
Google Reviews
★★★★★

“Worked with them in several projects. They are always good and responsive. More projects will be coming.”

AD
Anatano dev
Google Reviews

Want results like these?

Send me your site and goals — I'll tell you exactly what's worth doing.

Start a conversation