NextWoo
Seasonal

Prepare your online store for Black Friday

A readiness plan built around dates, written to be read once six weeks out and again three days out, when the sensible actions are different.

Ecommerce storefront prepared for peak Black Friday traffic

Peak season punishes stores in a predictable order. First the site gets slow, then a few checkouts fail quietly, then the whole thing stops responding at the exact hour traffic is worth the most. Very little of that is bad luck. It is the result of decisions made in the six weeks before and of changes shipped in the last two. So this page is a calendar rather than a list of best practice, and it is written to be read twice: once about six weeks out, while there is still time to change something structural, and once about three days out, when the only useful actions left are freezing, rehearsing and watching. Work down it in the order the dates dictate, not the order that feels urgent.

01

Slow and down are two different failures

A slow store loses a share of its orders. A store that falls over loses all of them, and it tends to do so within minutes of the peak rather than gradually across the evening. The mechanisms are not related. Slowness is a per-request cost: each page takes longer, some shoppers leave, the rest still buy. Falling over is a queueing problem. Your server has a fixed number of PHP workers, and when requests arrive faster than workers free up, the queue grows, response times climb from two seconds to twenty, timeouts start returning errors, and shoppers reload — which doubles the load that caused it. That feedback loop is why stores fail suddenly instead of degrading politely. The planning consequence matters: a good page-speed score tells you almost nothing about whether you survive concurrency. These are separate problems with separate fixes, and peak season tests both on the same night.

02

Where WooCommerce actually breaks under load

Most of a storefront can be cached and served to thousands of people from one rendered copy. The parts that make money cannot. Cart, checkout and account pages are personal by definition, so every request runs PHP and touches the database. That is where concurrency concentrates. Session writes, order inserts and meta updates contend for the same tables, and on older order storage they sit alongside your content. Coupon usage limits and stock decrements add row-level contention: two hundred people redeeming one code are effectively queued against a single counter. Meanwhile admin-ajax.php absorbs whatever plugins have attached to it — cart fragments, tracking calls, live search — and none of it is cached. Find out what actually runs there before the peak. Plugin bloat is not only a speed story; it decides how much of your traffic touches PHP at all.

  • Cart, checkout and account pages are uncacheable by design
  • Cart fragments and plugin calls pile onto admin-ajax.php
  • Coupon limits and stock decrements serialise on single rows
  • Order writes compete with your slowest database queries
03

Six weeks out: the work that still has runway

Six weeks is the last point at which you can change something structural and still test it properly. Start with evidence rather than instinct. Pull last year's hourly traffic and order data, find the single busiest hour, and multiply it by the growth you genuinely expect. That number is your target, and it belongs in a load test that reproduces a realistic mix — mostly browsing, a meaningful share adding to cart, a smaller share reaching payment — because a test that only hammers the homepage proves the cache works and nothing else. Then decide what changes. Buying server headroom is the fastest lever and is often the right answer for one night. Changing how the storefront is served is the deeper fix and needs the whole six weeks; speed work on WooCommerce sets out what each level involves. Make that call now, not after the first slow Saturday.

04

Two weeks out: freeze the store

From two weeks before the peak, treat production as frozen. No plugin updates, no theme updates, no core upgrade, no new tracking script a marketing tool suggested, no experimental payment method added because someone asked. The argument is not that updates are dangerous in general. It is that the cost of a regression is now asymmetric: a broken variation swatch in March costs an afternoon, and the same break on the busiest evening of the year costs the evening. Security patches are the exception, and even those get staged and tested first. Write the freeze down and tell everyone holding admin credentials, including the agency running ads and the developer who helps occasionally. Most peak-night incidents are self-inflicted and trace back to a change nobody announced.

  • No plugin, theme or core updates after the freeze date
  • Security patches only, staged and tested before production
  • Everyone with admin access is told the date in writing
  • Any exception is logged with who approved it and why
05

The final week: rehearse the promotion, not just the site

The site staying up is half the job. The other half is whether the promotion behaves the way you described it in the email. Discount rules interact in ways nobody predicts on paper: a percentage coupon stacked on an already-reduced item, a tiered discount that recalculates when one line is removed, a free shipping threshold that is met before the discount applies and missed afterwards. Rebuild those combinations on staging with real products, real prices and your live tax and shipping rules, then take each one through to payment. Cover the awkward cases specifically — the mixed cart, the exact threshold, the cart that qualifies then drops below it, the shopper trying two codes. Repeat it on a phone, because a coupon field that breaks the layout is a functional fault, not a cosmetic one. How checkout is handled explains which part of that flow we deliberately leave native.

06

Stock accuracy and the overselling you notice on Monday

Peak traffic exposes inventory that was only approximately right. Two problems arrive together. The first is oversell: when a hundred people are looking at the same last five units, decrements race each other, and stock is normally reserved when an order is placed rather than when an item enters a cart. The second is quiet drift — a manual adjustment made in a spreadsheet, a supplier feed that stopped updating three weeks ago, a bundle whose components were never linked to their own stock. Count your genuine bestsellers physically instead of trusting the number in admin. Then decide in advance what happens when you do oversell, because at some volume you will: cancel and refund with an apology, part-ship, or backorder with a stated date. A decision made calmly in November beats one made at midnight, and support needs the exact sentence to send.

07

The day itself: an alert that reaches a person

On the day, nobody should be developing. There are three jobs: knowing, deciding, and being able to go back. Knowing means monitoring what earns money rather than whether the server answers — a synthetic check that adds a product to the cart and reaches the payment step every few minutes catches failures an uptime ping never sees. Deciding means an alert that reaches a human by phone, with a named person awake and a second name behind them, because a dashboard nobody is watching is not monitoring. Going back means a rollback you have already practised: a database and file backup from a known-good point, a way to switch the promotion off without a code deploy, and one written line about who is allowed to make that call. Restore the backup once, on staging, before you need it. An untested backup is a hypothesis.

  • A synthetic cart-and-checkout test every few minutes
  • Alerts that phone a named person, with a fallback name
  • A restore rehearsed on staging, not just a backup taken
  • A switch that ends the promotion without a deployment
08

If you are reading this two weeks out

Then part of the plan above is not for you this year. Two weeks is not enough runway for architecture: a replatform or a caching redesign shipped in the final fortnight adds the risk it was meant to remove. The honest scope is narrow — add headroom, freeze everything, rehearse the promotion, verify the restore, arrange the alert. That is unglamorous and usually sufficient. There is also a case for doing nothing: if last year's busiest hour sat well inside what your hosting handles on an ordinary Tuesday, capacity for a spike you have never had is spending against a story. Do the structural work in January, when a mistake costs a quiet week rather than the year's best evening, and what that costs is published so you can plan around the calendar. Whatever happens, write the debrief on the Monday after: what broke, what you touched, which alert fired and which did not. Kept in the same place each year, that note turns a scramble into a checklist.

Frequently asked questions

Still have questions?

Reach out and we'll get back to you within 24 hours.

Contact us
What does peak season preparation cost?

The most valuable items on this list cost time rather than money: the freeze, the staging rehearsal, the stock count, the backup restore. Paid engagements start at $1,999, and before the peak that usually buys hardening and a load test rather than a rebuild.

How risky is it to change anything this close to the peak?

Riskier than the change looks, which is why the freeze exists. Anything that must ship in the final fortnight should be reversible in minutes and tested on staging with real cart combinations first. If it cannot be reversed quickly, it should wait until January.

How long do these preparations take?

Hardening, a realistic load test and a rehearsed rollback fit into two to three weeks of calendar time. Structural work — changing how the storefront is rendered and served — needs six weeks or more, so it is a decision for early autumn rather than mid-November.

What happens to my WooCommerce setup during all this?

It stays where it is. Products, stock, orders, coupons, tax and shipping rules and payment gateways remain in WordPress, and your team keeps working in the same admin through the peak. If a storefront rebuild is justified later, only the customer-facing layer changes.

Related reading
  • Slow WooCommerce store diagnosis

    Find why your WooCommerce store is slow on mobile by separating hosting, TTFB, theme bloat, plugins, caching and frontend limits.

  • Faster checkout

    A faster checkout is not a shorter one. How to cut the work behind a WooCommerce checkout — AJAX totals, fragments, plugins — without touching payment logic.

  • Maintenance and support

    Maintenance for a live WooCommerce store: tested backups, staged updates with rollback, uptime and checkout monitoring, security response and speed watch.

See how many sales your store is losing

Start with a free speed audit. You'll get your store's real numbers and an honest recommendation — even if it's "you don't need us".

No sales call — you'll get a written report with your store's numbers. Privacy policy