Key takeaways
Black Friday falls on November 27 this year, and Cyber Monday on November 30. Four weeks is enough to find and fix bottlenecks. It isn’t enough to rebuild your store.
Start by working out how much traffic you’re preparing for. Without that number, a load test proves nothing.
Test the checkout path, not the homepage. Stores rarely go down on catalog pages; they’re more likely to fail at the cart, the payment step, or an integration.
A week before the sale, freeze changes, rehearse a rollback, and decide who picks up the phone at 10 p.m.
The earliest warning of an outage is often a drop in orders, which can show up before any server alert fires.
An online store rarely goes down at 11 a.m. on an ordinary Tuesday. It goes down at 8:03 p.m. on a Friday, three minutes after the newsletter with the discount code lands in tens of thousands of inboxes and the Facebook ads hit full spend. The page loads, the cart loads, and then the payment step spins forever. The customer refreshes, pays a second time, or closes the tab and buys from a competitor.
This year Black Friday falls on November 27 and Cyber Monday on November 30. The deals run through the whole of Black Week, though, and many start as early as mid-November. Most guides focus on setting up promotions and campaigns. This one covers the other half of the work: making sure your store can handle the traffic those campaigns bring in.
What’s at stake for your store on Black Friday
Four figures from research and from platform and payment data, two of them from the Polish market:
The figures come from data from Shoper (in Polish) covering more than ten thousand stores, a summary published by BLIK, a Deloitte report commissioned by Google, and Baymard Institute research. The Deloitte study draws on data from 37 brands and shows a correlation; it wasn’t a controlled experiment. Even so, its conclusion matches the rest of the data: at the height of the season, every second of delay and every error costs more than usual. Then there are phones. According to a September 2026 Gemius report, online stores in Poland average 14 million daily users on phones and 3 million on computers (Gemius, in Polish). Your market may look different, but if you only test your store on an office laptop, you’re probably testing the version a minority of your customers use.
Shopify starts preparing six months ahead: in 2025 it ran five scale tests between April and October (Shopify Engineering). A smaller store doesn’t need a program on that scale, but it does need at least one honest test. Four weeks is enough for that.
First, estimate how much traffic you’re preparing for
“The store has to handle a lot of traffic” tells your tech team nothing. They need two numbers: how many people are in the store at the same time, and how many orders per minute come in during the busiest hour.
The simplest way to estimate them:
- Find last year’s busiest hour in Google Analytics. It’s usually an evening hour on Black Friday or the moment a newsletter went out.
- Factor in your store’s growth year over year. If sales are up 30%, multiply last year’s peak by 1.3.
- Add the effect of campaigns you didn’t run last year: a new mailing list, an influencer, a bigger ad budget.
- Double the result as a safety margin.
It’s not an exact science, but it gives you a target. If you end up with 600 concurrent users and 15 orders per minute, the load test should check 1,200 users and 30 orders per minute, and then answer the question of what breaks first when you push higher still.
Pay attention to the shape of the traffic as well as its height. A newsletter sent to your entire list at once produces a spike within minutes. Plenty of stores cope with a large number of visits spread out over time, then fall over during a five-minute peak. Sometimes the cheapest “performance optimization” is sending the newsletter in three batches, 20 minutes apart.
Which load tests to run before Black Friday
The categories follow the documentation for k6, Grafana’s load testing tool. Each one answers a different question:
Smoke test
A handful of virtual users for a few minutes. It confirms the test script works at all before you start putting real load on the store.
Average-load test
Traffic at the level you expect. It shows whether response times and error rates stay within normal limits.
Stress test
Traffic above your forecast: one and a half, two, three times. It shows what breaks first and how the store behaves when it’s overloaded.
Spike test
A sudden jump from low traffic to the peak within a minute, the way it happens after a newsletter goes out. For stores getting ready for Black Friday, this is usually the most important one.
Soak test
Moderate traffic for several hours. It catches memory leaks and queues that grow slowly and then blow up in the middle of the night.
How to run a test that actually tells you something
Start small. The k6 documentation recommends a simple progression: a smoke test first, then gradually heavier load and longer runs. There’s no point unleashing a thousand virtual shoppers before the script runs cleanly for five.
Test the checkout path. Your test script should do what a customer does: land on a category page from an ad, apply a filter, open a product, add it to the cart, log in or check out as a guest, choose delivery, and reach the payment step. The homepage is often cached and will survive anything. The cart and the order always hit the database.
Use an environment that resembles production. A test on a developer’s laptop or the smallest staging server will show you that “it’s slow” without telling you where the limit is in production. If you don’t have a separate environment with the same configuration, test production at night, in an agreed window, and either stop the script just before the actual payment or point it at your payment provider’s test account. Afterwards, clean up the test orders, stock reservations, and any emails the test sent out.
Give your providers a heads-up. Your payment provider, hosting company, or CDN may treat a sudden surge from a handful of IP addresses as an attack. A short email before the test spares you surprises, like traffic getting blocked halfway through the run, and spares everyone’s nerves. On subscription platforms such as Shopify or Shoper, also check the terms of service to see whether, and under what conditions, you’re allowed to load-test.
Watch the right numbers. Average response time lies, because it hides the customers who waited eight seconds. Track the time within which 95% of requests complete (known as p95), the error rate, and which part of the system starts choking first: CPU, database, memory, or the job queue.
Retest after every fix. Removing one bottleneck almost always exposes the next. A four-week plan should allow for at least two full cycles of test, fix, and test again.
Where stores most often choke
On platforms where you run the server yourself (WooCommerce, PrestaShop, a custom-built store), the same weak spots come up again and again. On Shopify or Shoper, the provider takes care of the database and caching, but integrations, apps, and scripts are still your responsibility:
Database
Filtering products by several attributes, search, and cart recalculation all generate queries that take milliseconds with ten users and start blocking each other with a thousand.
A cart that bypasses the cache
As soon as a customer adds something to the cart, the store often stops serving that person from cache. Every page after that is built from scratch, right at the moment when the store has the most shoppers like that.
Integrations with other systems
Syncing stock levels with your ERP, fetching shipping quotes from the courier, validating discount codes in an external system. If the store waits for another system’s response on every order, it’s only as fast as the slowest of them.
Third-party scripts
Ad pixels, chat, review widgets, and analytics tools. Each of them slows the page down on phones, and more of them usually appear right before a sale.
Transactional emails
Order confirmations sent from the same server or through a service with a low daily limit. The order goes through, the customer gets no confirmation, and they write to your support team.
Background jobs
Invoice generation, product feed updates, and exports that run every few minutes. On a normal day you don’t notice them; on Black Friday they compete with your customers for the same resources.
Mobile speed and third-party scripts
Google measures page speed with three Core Web Vitals. Largest Contentful Paint (LCP), the time it takes to display the largest element, should be 2.5 seconds or less. Interaction to Next Paint (INP), the response to an interaction such as a click or tap, should be 200 milliseconds or less. Cumulative Layout Shift (CLS), which measures how much the layout jumps around, should be no more than 0.1. At least 75% of page loads need to meet each threshold, measured separately on mobile and desktop (web.dev). In 2025, only 48% of mobile pages met all three (Web Almanac).
In online stores, third-party scripts are often the culprit. For comparison, the median across all websites, stores or otherwise, is 79 requests to third-party services per mobile page (Web Almanac). Think ad pixels, a tag manager, chat, a review widget, a heatmap, and an A/B testing tool. More get added before the season, because every campaign wants its own tracking.
Audit them before the sale: list every script, note who needs it and why, and switch off the ones nobody will stand up for. For the rest, prepare an “emergency mode,” a way to quickly turn off chat, session recordings, or personalization if the store starts slowing down under load.
Caching and CDN: what to cache and what to leave out
The cheapest server is the one a request never reaches. Category pages, product pages, images, scripts, and stylesheets for logged-out customers can be served from cache or a CDN. The cart, checkout, customer account, and anything else tied to a specific person have to go to the store itself.
Check three things before the sale:
- How long pages stay in cache and how the cache gets cleared. If you switch to sale prices at midnight and the cache holds pages for an hour, some customers will see the old prices for that hour. Worse, the cart may calculate a different price from the one on the product page.
- Warming the cache before launch. The first request after a cache purge is the most expensive one. If you clear everything at 8 p.m. and send the newsletter at 8 p.m., the first few thousand requests go straight to the server.
- Stock levels. A sold-out product can’t sit in cache for an hour marked as available. Stock should be read live, or at least checked when an item is added to the cart.
A CDN is also one more component that can fail. On November 18, 2025, ten days before Black Friday, a Cloudflare outage caused errors for several hours on sites that use the service (Cloudflare). Work out in advance whether you can quickly send traffic straight to your server if you have to, and who has the access to do it.
Prices come with one more requirement, a legal one this time. Across the EU, the Omnibus Directive requires a store that announces a price reduction to show the lowest price it charged in the 30 days before the reduction. Member states have applied the rule since 2022 or 2023; in Poland it has been in force since January 1, 2023. UOKiK, Poland’s consumer protection authority, spells out how it works there: the lowest price includes even prices that applied for a single day, and it’s calculated separately for each sales channel (UOKiK, in Polish). In practice, this is a technical requirement. The store has to keep a price history and calculate the figure correctly, including for products whose prices were changed by hand or through an import. Before the sale goes live, spot-check a few products, starting with the ones repriced by import.
Payments and integrations: have a plan B
Payment is where an error costs the most, because the customer had already made up their mind. Four things to go through with your tech team:
A second payment method ready to switch on. Payment providers have bad days too. On April 2, 2026, PayU, a payment provider widely used in Poland, spent about an hour fending off a DDoS attack, and its payment methods were temporarily unavailable (Wprost, in Polish). Being able to move customers to another provider quickly can save the evening. The setup has to be prepared and tested in advance: nobody opens a new account with a payment provider on a Friday night.
Protection against double charges. When a payment takes a long time to confirm, customers click again. The store should recognize the repeat as the same transaction instead of creating a second order and charging the customer twice. The usual technical tool for this is an idempotency key attached to every payment attempt.
Payment notifications that go through a queue. The payment provider tells your store that an order has been paid in a separate request (a webhook). If the store is overloaded at that moment and doesn’t accept it, the order can get stuck as unpaid even though the money has already left the customer’s account. Accept these notifications immediately, process them from a queue, and every 15 minutes or so check the provider’s API for the status of orders still showing as unpaid.
Limits on external services. Shipping label generation, SMS delivery, and discount systems all have request limits of their own. Check them before the peak.
A four-week Black Friday checklist
The schedule counts down to the start of your sale, which is November 27 at the latest. If you’re short on time, shorten each step but don’t drop any:
Week 1: measure and run the first test
Estimate peak traffic, write a test script for the checkout path, run the first load test, and list the bottlenecks ranked by their impact on sales.
Week 2: fixes
Optimize database queries, configure caching and the CDN, trim third-party scripts, and add server resources where that’s the cheapest option.
Week 3: second test and plan B
Rerun the test with a traffic spike, set up a backup payment method, check integration and email limits, and collect emergency contacts for your hosting company and payment provider.
Week 4: change freeze
From about a week before the sale, only critical fixes go to production. Rehearse the rollback, set the on-call schedule, and agree on a communication channel for the duration of the sale.
Sale day and the day after
Watch the metrics against thresholds agreed in advance. After the weekend, run a short review of what worked and what came close to breaking. That list will come in handy before the December holiday peak.
Change freeze and a contingency plan
Many peak-season outages have less to do with the traffic itself than with changes made just before it. Google’s SRE team estimates that roughly 70% of outages are caused by changes to a live system (Google SRE). A new plugin, a “small fix” to the cart, a theme update on Thursday evening. That’s why, about a week before your sale starts, you should announce a change freeze (if you launch on November 16, freeze from November 9). From then on, only fixes for bugs that block sales go to production, and only after sign-off from the person responsible for the store.
The contingency plan doesn’t need to be a long document. One page will do, as long as it covers:
- who is on call from Friday to Monday, nights included, with phone numbers and not just email addresses
- how to roll back the latest deployment, tested for real, because “it should work” doesn’t count
- contacts for your hosting company, payment provider, and the agency running your campaigns, so the ads can be paused if something goes wrong
- what you do when the store can’t keep up, such as switching on a queue page or a temporary-overload message instead of a server error
- a ready-to-post message for customers on your site and social media
If your store runs in the cloud, also check that autoscaling has a sensible upper limit and that someone gets alerted when costs suddenly jump. Unlimited scaling protects you from an outage, but it can also produce a bill nobody expected.
What to monitor on sale day
Set the thresholds before launch. Once the sale is running, nobody has time to wonder whether a given value is still normal:
Orders per 5 minutes against the forecast — A sudden drop while traffic holds steady is often the first sign that something has stopped working. You’ll see it sooner than any server alert.
Failed payment rate — A rise in declined or abandoned payments points to a problem on the payment provider’s side or in the integration.
p95 response time and server errors — The time within which 95% of requests complete, plus the number of 5xx error responses. The average isn’t enough here.
A test purchase every few minutes — An automated script that goes through checkout the way a customer does. It catches problems that don’t show up on server resource charts.
Database and queues — Database connections, slow queries, and the length of background job queues. A growing queue is an outage that’s going to happen an hour from now.
Want your store checked before Black Friday?
We’ll load-test your checkout path, point out the bottlenecks, and put together a plan for sale day. Black Friday is only a few weeks away. That’s enough for a test and fixes if we start now.
After Black Friday
The sale weekend is the best free load test you’ll get all year. Write down the traffic level at which the store started to slow down, which alerts were useful and which were just noise, and what had to be fixed live. Hold on to the test scripts and the contingency plan. You’ll need them again in a few weeks, before the holiday order peak.
If your preparations show that the store needs ongoing infrastructure care, read how DevOps as a Service works: maintenance with on-call coverage and a response when production goes down. You’ll find the scope and rates on our DevOps services page. And if you’re still planning a new store, see how the first version of the Bezuma store was built in three weeks.
Frequently asked questions
When is Black Friday 2026?+
How far ahead should I start preparing my store for Black Friday?+
What is load testing for an online store?+
Is upgrading the server enough to get ready for Black Friday?+
What should I do if my store goes down during the sale?+
Is Black Friday a good time to roll out new features in my store?+
Have a project in mind?
We’ll help you design and deliver it — from strategy to a finished solution.








