Sklep na Black Friday: lista kontrolna wydajności i stabilności WooCommerce
- Termin
- Black Friday 27 listopada 2026, Cyber Monday 30 listopada 2026
- Najczęstsze awarie
- Wolna kasa, przekroczone limity hostingu, niewysłane maile, zatrzymane zadania w tle
- Czas przygotowania
- 2–3 tygodnie z testem na kopii, sam przegląd: jeden dzień
- Czy zrobisz to sam?
- Większość listy tak. Test obciążeniowy i ustawienia serwera raczej z pomocą
Szybka odpowiedź
Żeby sklep WooCommerce wytrzymał Black Friday: zaktualizuj i przetestuj wszystko najpóźniej tydzień przed promocją, potem zamroź zmiany. Sprawdź limity hostingu i pamięć PHP, włącz cache stron bez koszyka, kasy i konta klienta, upewnij się, że zadania w tle (Action Scheduler) nie mają zaległości, a maile wychodzą przez SMTP. Zrób test obciążeniowy na kopii, ustaw monitoring dostępności i spisz plan awaryjny z numerem do hostingu.
Black Friday w 2026 roku wypada w piątek 27 listopada, Cyber Monday w poniedziałek 30 listopada. Dla sklepu to kilka dni, w których ruch potrafi być wielokrotnie większy niż zwykle, a każda godzina przestoju kosztuje więcej niż w zwykły wtorek. Większość awarii w tym czasie nie bierze się z ataku, tylko z rzeczy, które sklep znosił na co dzień: za małego limitu pamięci, wtyczki zaktualizowanej dzień przed promocją, maili wysyłanych prosto z serwera.
Ta lista prowadzi od przygotowań do dnia promocji. Przy każdym punkcie piszę, co to znaczy dla Ciebie, jak to sprawdzić i co zrobić. Stan na listopad 2026, WordPress 7.1, WooCommerce 11.2.
Harmonogram: co i kiedy
Kolejność jest ważniejsza niż szybkość. Testy robisz, kiedy jest jeszcze czas na poprawki, a w ostatnim tygodniu niczego już nie zmieniasz.
Aktualizacje i zamrożenie zmian
Zamrożenie zmian to okres, w którym nie instalujesz nowych wtyczek, nie zmieniasz motywu i nie aktualizujesz niczego poza poprawkami bezpieczeństwa. Powód jest prosty: każda zmiana to ryzyko, a w czasie promocji nie masz czasu na szukanie, która z nich zepsuła kasę.
-
Zaktualizuj wszystko przed zamrożeniem, najpierw na kopii
Kopia testowa (staging) to osobna instalacja sklepu, na której sprawdzasz zmiany bez ryzyka. Wiele hostingów tworzy ją jednym kliknięciem. Zaktualizuj tam WordPressa, WooCommerce, bramkę płatności i pozostałe wtyczki, złóż próbne zamówienie, a dopiero potem powtórz to samo w sklepie. Jak postępować, gdy coś pójdzie źle, opisuję w poradniku Strona nie działa po aktualizacji.
-
Zdecyduj, co z automatycznymi aktualizacjami
Automatyczne aktualizacje wtyczek łatają luki szybko, ale mogą zmienić coś w kasie w środku promocji. Od WordPressa 6.6 nieudana automatyczna aktualizacja wtyczki, która powoduje błąd krytyczny, jest cofana, ale nie każda usterka to błąd krytyczny: zepsuty przycisk płatności go nie wywoła. Rozsądny kompromis: na czas zamrożenia wyłącz automatyczne aktualizacje WooCommerce i bramki płatności, a poprawki bezpieczeństwa instaluj ręcznie, po sprawdzeniu na kopii.
-
Nie zaczynaj teraz dużych zmian
Przeniesienie zamówień na nowy sposób zapisu (HPOS), zmiana motywu, nowa bramka płatności albo przenosiny na inny hosting to projekty na grudzień, nie na listopad.
Kopie zapasowe, które da się przywrócić
Kopia zapasowa przydaje się tylko wtedy, gdy ją sprawdziłeś. Przed promocją:
- Codzienna kopia plików i bazy poza serwerem sklepu, np. w chmurze. Kopia na tym samym serwerze zginie razem z nim.
- Próbne przywrócenie na kopii testowej. Raz przed promocją sprawdź, czy z kopii da się odtworzyć działający sklep i ile to trwa.
- Kopia ręczna 26 listopada, dzień przed szczytem.
Kopia z rana nie zawiera zamówień złożonych po jej wykonaniu. Jeśli w czasie promocji przywrócisz bazę z kopii, te zamówienia znikną, a klienci zapłacili. Dlatego przy awarii w dniu promocji przywrócenie bazy to ostateczność. Najpierw szukaj przyczyny, a jeśli przywracasz, wcześniej wyeksportuj nowe zamówienia.
Limity hostingu i pamięć PHP
Hosting współdzielony ma limity, których na co dzień nie widać: liczbę procesów PHP obsługiwanych naraz, pamięć, moc procesora, liczbę połączeń z bazą. Przy dużym ruchu sklep nie „zwalnia równo”, tylko w pewnym momencie zaczyna zwracać błędy 503 albo 508. Zacznij od tego, co widzisz w panelu WordPressa: WooCommerce → Status → Status systemu.

Komunikat na zrzucie mówi o minimum 64 MB, ale dokumentacja WooCommerce zaleca dla sklepu limit pamięci WordPressa 256 MB lub więcej. Ustawisz go w pliku wp-config.php, nad linią /* That's all, stop editing! */:
define( 'WP_MEMORY_LIMIT', '256M' );
Jeśli po zmianie wartość na ekranie statusu się nie zmienia, hosting ma niższy limit PHP (memory_limit). Podnosi się go w panelu hostingu, w ustawieniach PHP, albo przez pomoc techniczną. Przy okazji sprawdź wersję PHP: WooCommerce zaleca PHP 8.3 lub nowsze, a PHP 8.2 traci poprawki bezpieczeństwa 31 grudnia 2026.
Zapytaj hosting wprost, najlepiej mailem, żeby mieć odpowiedź na piśmie:
- ile procesów PHP może działać naraz na moim koncie i co się dzieje po przekroczeniu,
- czy w panelu widać wykres wykorzystania limitów z ostatnich tygodni,
- czy na czas promocji można tymczasowo zwiększyć zasoby i ile to kosztuje,
- jaki jest numer telefonu do wsparcia technicznego w piątek wieczorem i w weekend.
Cache: co przyspieszać, a czego nigdy
Cache stron to gotowe kopie podstron, które serwer wysyła bez uruchamiania WordPressa. Dla katalogu produktów to najtańszy sposób na wytrzymanie ruchu. Dla koszyka i kasy to przepis na katastrofę: klient zobaczyłby cudzy koszyk albo nie mógłby złożyć zamówienia.
/koszyk/ lub /cart/.Co sprawdzić w ustawieniach cache, według dokumentacji WooCommerce dla deweloperów:
- Strony wykluczone z cache: koszyk, kasa i moje konto. Wiele wtyczek wyklucza je samo, ale sprawdź to w ustawieniach.
- Cookies, przy których cache ma się wyłączać:
woocommerce_cart_hash,woocommerce_items_in_cart,wp_woocommerce_session_,woocommerce_recently_viewed,store_noticez numerem komunikatu. - Adresy z parametrem
?add-to-cart=nie mogą iść z cache. - Cache obiektów (np. Redis), czyli przechowywanie wyników zapytań do bazy w pamięci: jeśli wtyczka lub hosting cache'uje zapytania do bazy, wyklucz z tego sesje WooCommerce (
_wc_session_).
Jak to sprawdzić bez terminala: otwórz sklep w oknie prywatnym, dodaj produkt do koszyka, przejdź do kasy, potem otwórz sklep w drugiej przeglądarce. Druga przeglądarka musi mieć pusty koszyk, a ikona koszyka w pierwszej musi pokazywać produkt na każdej podstronie. Przy dużym ruchu automatów zwróć też uwagę na adresy filtrów i „dodaj do koszyka” odwiedzane przez boty (więcej w poradniku Boty AI przeciążają stronę).
Zadania w tle: Action Scheduler i cron
Action Scheduler to kolejka zadań, z której WooCommerce korzysta przy wielu czynnościach w tle: przeliczaniu statystyk, aktualizacjach bazy, a wiele wtyczek także przy wysyłce maili i synchronizacji z marketplace'ami czy hurtowniami. Domyślnie uruchamia go WP-Cron, czyli harmonogram WordPressa, który działa tylko wtedy, gdy ktoś odwiedza stronę, i potrzebuje do tego zapytania serwera do samego siebie. Jeśli to zapytanie nie przechodzi, zadania się zatrzymują, a Ty tego nie widzisz.
Sprawdź to w WooCommerce → Status → Zaplanowane działania, filtr Termin przekroczony (w wersji angielskiej Scheduled Actions, Past-due), czyli zadania, które powinny już się wykonać.

Dokumentacja Action Scheduler mówi, że kilka zaległych zadań to normalna rzecz, ale wiele zadań zaległych o ponad dobę oznacza, że coś jest nie tak. Przyczynę często widać w Narzędzia → Stan witryny (Tools → Site Health), czyli wbudowanym przeglądzie stanu WordPressa.

Z terminala ten sam stan pokaże polecenie, które tylko odczytuje dane. Prawdziwy wynik z instalacji testowej:
$ wp action-scheduler status
Data store: ActionScheduler_HybridStore
Runner: ActionScheduler_QueueRunner
Version: 4.1.0
status count oldest newest
pending 39 2026-10-16 07:23:58 +0000 2026-10-17 03:00:00 +0000
Kolumna oldest to najstarsze oczekujące zadanie. Jeśli jest sprzed kilku dni, kolejka stoi.
Jak naprawić: najpierw usuń przyczynę wskazaną w raporcie Stan witryny (często to blokada w zaporze, wtyczce bezpieczeństwa albo brak HTTPS). Na sklepach z większym ruchem dobrze jest też uruchamiać WP-Cron prawdziwym harmonogramem serwera (cron w panelu hostingu), a nie odwiedzinami. Dodajesz do wp-config.php:
define( 'DISABLE_WP_CRON', true );
i w panelu hostingu ustawiasz zadanie cron, które co kilka minut wywołuje stronę wp-cron.php, np.:
*/5 * * * * wget -q --delete-after https://twojsklep.pl/wp-cron.php
Zrób to przed zamrożeniem i sprawdź po dobie, czy liczba zaległych zadań spada. Wyłączenie WP-Cron bez ustawienia zadania w panelu hostingu zatrzyma wszystkie zadania w tle.
Maile transakcyjne
Maile transakcyjne to potwierdzenia zamówień, faktury, informacje o wysyłce. Jeśli w Black Friday trafią do spamu albo nie wyjdą wcale, klienci zaczną dzwonić i pisać, a część zamówi drugi raz. Sam WooCommerce na ekranie Ustawienia → E-maile radzi połączyć adres nadawcy z domeną sklepu i wysyłać przez osobny serwer SMTP.
- Wysyłka przez SMTP, czyli przez prawdziwą skrzynkę lub usługę pocztową, a nie przez funkcję
mail()serwera. Służy do tego wtyczka SMTP skonfigurowana z danymi skrzynki w Twojej domenie. - Rekordy SPF, DKIM i DMARC dla domeny, czyli wpisy w DNS potwierdzające, że serwer może wysyłać pocztę w imieniu domeny. Ustawia je hosting poczty.
- Adres nadawcy w domenie sklepu (pole Adres e-mail "od" w ustawieniach maili WooCommerce), nie adres z darmowej poczty.
- Limit wysyłki. Zapytaj hosting, ile maili na godzinę możesz wysłać. Przy dużej liczbie zamówień i newsletterze w tym samym czasie limit łatwo przekroczyć. Newsletter wysyłaj inną usługą.
- Test: złóż próbne zamówienie na adres w Gmailu i w polskiej darmowej poczcie i sprawdź, czy mail doszedł do skrzynki odbiorczej.
Test obciążeniowy na kopii
Test obciążeniowy to symulacja wielu klientów naraz. Pokazuje, przy ilu jednoczesnych zakupach sklep zaczyna zwalniać lub zwracać błędy, zanim zrobią to prawdziwi klienci.
-
Testuj kopię, nie sklep
Test na działającym sklepie obciąży prawdziwych klientów, a na hostingu współdzielonym także innych użytkowników serwera. Hosting może uznać go za atak. Jeśli kopia stoi na tym samym serwerze co sklep, uprzedź hosting i zrób test w nocy.
-
Przełącz bramkę płatności w tryb testowy
Na kopii płatności muszą iść do środowiska testowego operatora, a maile do klientów nie mogą wychodzić. Sprawdź to przed testem.
-
Symuluj zakupy, nie tylko wejścia na stronę główną
Strona główna z cache wytrzyma prawie wszystko. Scenariusz testu powinien obejmować kategorię, kartę produktu, dodanie do koszyka i przejście do kasy. Używa się do tego narzędzi open source, np. k6 lub Apache JMeter; zwiększaj liczbę wirtualnych klientów stopniowo.
-
Patrz na czas odpowiedzi kasy i błędy
Zapisz, przy jakiej liczbie jednoczesnych klientów czas odpowiedzi kasy przekracza kilka sekund albo pojawiają się błędy 5xx. To Twój realny limit. Jeśli jest niski, masz jeszcze czas na zmianę planu hostingu albo optymalizację.
Monitoring i bezpieczeństwo w dniu promocji
- Monitoring dostępności, czyli usługa, która co minutę lub kilka minut sprawdza, czy sklep odpowiada, i wysyła alarm SMS-em lub w aplikacji. Ustaw sprawdzanie strony głównej i strony koszyka. Alarm ma przychodzić do osoby, która w piątek wieczorem odbierze telefon.
- Panel operatora płatności: sprawdzaj w czasie promocji liczbę nieudanych płatności. Gwałtowny skok to często atak na kasę, opisany w poradniku Setki nieudanych zamówień w WooCommerce. Przed promocją włącz funkcję Limit prób zamówienia (WooCommerce → Ustawienia → Zaawansowane → Funkcje), jeśli używasz kasy blokowej.
- Logi błędów: wiedz, gdzie w panelu hostingu jest log błędów PHP. W razie awarii to pierwsze miejsce, do którego zajrzysz.
Plan awaryjny na dzień promocji
Plan awaryjny to jedna kartka z odpowiedziami na pytania, których w stresie nie chcesz zadawać po raz pierwszy. Wydrukuj ją i wyślij wszystkim, którzy dyżurują.
| Pytanie | Co wpisać |
|---|---|
| Kto dyżuruje i kiedy | Imię, telefon, godziny w piątek, sobotę, niedzielę i poniedziałek |
| Kto decyduje o wyłączeniu promocji lub sklepu | Jedna osoba, z zastępcą |
| Numer do hostingu | Telefon wsparcia, numer klienta, dane do weryfikacji |
| Kontakt do operatora płatności | Telefon lub formularz, identyfikator sprzedawcy |
| Dostępy | Gdzie są hasła do panelu hostingu, WordPressa, DNS (menedżer haseł, nie kartka na monitorze) |
| Gdzie są kopie i jak je przywrócić | Miejsce, godzina ostatniej kopii, kto umie przywrócić |
| Co mówimy klientom przy awarii | Gotowy komunikat na stronę i do mediów społecznościowych |
| Kontakt do serwisu | Telefon osoby lub firmy, która naprawi sklep |
Jeśli sklep padnie, kolejność jest taka: sprawdź log błędów i wykresy limitów w panelu hostingu, zadzwoń do hostingu, cofnij ostatnią zmianę, jeśli była. Na czas naprawy włącz tryb konserwacji z kodem 503, zamiast zostawiać klientów z błędem. Przy komunikacie „Na tej stronie wystąpił błąd krytyczny” pomoże poradnik Błąd krytyczny WordPress.
Promocje a najniższa cena z 30 dni
To nie technika, ale błąd tutaj też kosztuje. Informując o obniżce ceny, musisz pokazać obok najniższą cenę z 30 dni przed obniżką, a procent obniżki liczyć od tej ceny. Przy produktach sprzedawanych krócej niż 30 dni liczy się najniższa cena od początku sprzedaży. Przestrzeganie tych zasad kontroluje Inspekcja Handlowa, a opisuje je UOKiK, m.in. w raporcie z kontroli informowania o cenach.
Od strony technicznej: w kodzie WooCommerce 11.2.1 nie znalazłem funkcji, która sama zapisuje historię cen i pokazuje najniższą cenę z 30 dni. Robi to wtyczka albo motyw. Sprawdź przed promocją, czy na karcie produktu, w kategorii i w promocyjnym boksie na stronie głównej ta cena się wyświetla i czy jest prawdziwa. Czy konkretna promocja spełnia przepisy, oceni prawnik, nie programista.
Sklep z kosmetykami wysyła w piątek rano newsletter z kodem rabatowym. Po kwadransie strona główna działa, ale kasa ładuje się minutę, a część klientów widzi błąd 503. Strony katalogu idą z cache, więc wyglądają dobrze, ale każdy klient w koszyku zajmuje proces PHP, a hosting pozwala na kilka naraz. Do tego WP-Cron jest wyłączony bez zadania w panelu hostingu, więc synchronizacja stanów magazynowych z hurtownią, oparta na kolejce zadań, stoi od tygodnia. Pomaga tymczasowe zwiększenie zasobów przez hosting i ustawienie crona. Test obciążeniowy na kopii i przegląd zaległych zadań w tle dwa tygodnie wcześniej pokazałyby oba problemy przed promocją.
Kiedy nie robić tego samemu
Kopie, aktualizacje na kopii testowej, maile i plan awaryjny przygotujesz sam. Pomoc przyda się, gdy:
- test obciążeniowy pokazuje, że kasa nie wytrzymuje kilkunastu klientów naraz, a nie wiesz, czy winny jest hosting, czy wtyczki,
- Raport Stan witryny pokazuje krytyczne problemy z REST API lub zapytaniem do samej siebie, a zadania w tle stoją,
- cache psuje koszyk albo logowanie i nie wiesz, którą regułę zmienić,
- nie masz nikogo, kto w piątek wieczorem i w weekend zareaguje na alarm.
Chcesz przejść przez Black Friday spokojnie?
W abonamencie Care (199 zł netto miesięcznie) przejmuję aktualizacje, codzienne kopie, monitoring i cotygodniowy skan bezpieczeństwa, a interwencje mają rabat. Przed promocją sprawdzę sklep według tej listy, a zgłoszenia awaryjne przyjmuję 24/7.
Najczęstsze pytania
Kiedy jest Black Friday w 2026 roku?
Black Friday przypada w piątek 27 listopada 2026, a Cyber Monday w poniedziałek 30 listopada 2026. Wiele sklepów zaczyna promocje wcześniej, więc ruch rośnie zwykle już w tygodniu poprzedzającym.
Czy przed Black Friday zaktualizować wtyczki?
Tak, ale z wyprzedzeniem: najpóźniej około tygodnia przed promocją, najpierw na kopii sklepu. W ostatnim tygodniu wprowadzaj tylko poprawki bezpieczeństwa, a każdą po sprawdzeniu, że koszyk, kasa i płatność działają.
Czy wtyczka cache wystarczy, żeby sklep wytrzymał ruch?
Nie. Cache przyspiesza strony wspólne dla wszystkich, czyli katalog i karty produktów. Koszyk, kasa i konto klienta zawsze idą do PHP i bazy danych, więc to one decydują, ile zamówień naraz przyjmie sklep. Dlatego liczą się też limity hostingu i test obciążeniowy na kopii.
Co zrobić, jeśli sklep padnie w trakcie promocji?
Nie przywracaj kopii zapasowej bez namysłu, bo stracisz zamówienia złożone po jej wykonaniu. Najpierw sprawdź logi błędów i limity w panelu hostingu, zadzwoń do hostingu, a jeśli trzeba, włącz tryb konserwacji z kodem 503. Najlepiej działać według planu awaryjnego przygotowanego wcześniej.
Czy przy promocji muszę pokazywać najniższą cenę z 30 dni?
Tak. Informując o obniżce ceny, trzeba podać obok najniższą cenę z 30 dni przed obniżką. Szczegóły, w tym wyjątki dla produktów sprzedawanych krócej niż 30 dni, opisuje UOKiK. W razie wątpliwości co do konkretnej promocji zapytaj prawnika.