Większość właścicieli stron WordPress robi backupy. Problem polega na tym, że robi je raz, ustawia automatyzację i nigdy nie sprawdza, czy to, co zbiera wtyczka, nadaje się do odtworzenia. Dowiadują się o tym dopiero w najgorszym możliwym momencie: po awarii serwera, po ataku, po pomyłkowym usunięciu bazy danych.

Sam widziałem to kilkakrotnie przez 13 lat pracy z WordPressem. Klient przyszedł z wiadomością od hostingu, że dysk serwera uległ awarii i prosi o backup z naszej strony. Backup był. Ale ostatni działający miał 47 dni. Wtyczka przez półtora miesiąca generowała puste archiwa z błędem uprawnień do katalogu. Dlatego ten artykuł nie jest o tym, jak skonfigurować backup. Jest o tym, jak sprawdzić, czy backup, który masz, naprawdę zadziała.

Dlaczego backup bez testu to iluzja bezpieczeństwa

Zip o rozmiarze 450 MB w Google Drive wygląda zachęcająco. Ale co jest w środku? Czy baza danych jest kompletna, czy urwana w połowie tabeli wp_posts? Czy katalog uploads zawiera wszystkie zdjęcia produktów, czy tylko te z ostatniego miesiąca? Czy plik wp-config.php jest wewnątrz archiwum?

Bez testu odtworzenia nie wiesz nic z powyższych. Wiesz tylko, że plik istnieje.

Najczęstsze przyczyny, przez które backup nie daje się przywrócić:

  • Przekroczony limit czasu PHP podczas tworzenia kopii (hosting uciął operację po 30 sekundach, archiwum jest niekompletne)
  • Brak uprawnień do zapisu katalogu tymczasowego na serwerze
  • Backup obejmuje tylko pliki, bez bazy danych (albo odwrotnie)
  • Stara wersja wtyczki UpdraftPlus, która nie obsługuje nowego formatu archiwum
  • Zmieniony prefix tabel w bazie danych, który nie pasuje do wartości w wp-config.php z backupu
47 dnityle miał klient między ostatnim działającym backupem a awarią
30 sekundtypowy timeout PHP na hostingach shared, który urywa backup dużego sklepu
60 minuttyle zajmuje pełny test odtworzenia na środowisku lokalnym
3minimalna liczba kopii według reguły 3-2-1

Strategia 3-2-1: fundament, od którego zacznij

Zanim przejdziemy do testowania, upewnij się, że masz co testować. Reguła 3-2-1 to branżowy standard - trzy kopie danych, przechowywane na dwóch różnych nośnikach lub usługach, z czego jedna jest offsite, czyli poza serwerem produkcyjnym.

W praktyce dla strony WordPress wygląda to tak:

1. Kopia automatyczna na samym hostingu (generowana przez hosting lub wtyczkę)
2. Kopia w chmurze: Google Drive, Amazon S3, Dropbox (UpdraftPlus wysyła automatycznie)
3. Kopia lokalna na Twoim komputerze lub zewnętrznym dysku, pobierana ręcznie co tydzień

Dla sklepów WooCommerce, gdzie zamówienia spływają przez całą dobę, bazę danych warto backupować co 6-12 godzin. Pliki (motywy, wtyczki, uploads) zmieniają się rzadziej - backup raz dziennie lub co kilka dni wystarczy. Więcej o tym, gdzie trzymać kopie offsite i jakie usługi chmurowe mają sens, opisałem w osobnym artykule o backupie offsite WordPress.

Backup hostingowy vs własny

KryteriumBackup na hostinguBackup wtyczkowy (UpdraftPlus)
Kontrola harmonogramuograniczona (ustawia hosting)pełna
Retencjazwykle 7-30 dnidowolna
Możliwość testu bez supportunietak
Backup offsiterzadkotak (Google Drive, S3, Dropbox)
Kosztczęsto w abonamenciedarmowy lub od ok. 120 PLN/rok (Pro)
Przywrócenie przez panel WPnietak

Jak przeprowadzić test odtworzenia na środowisku lokalnym

Najbezpieczniejsza i najtańsza metoda to odtworzenie backupu na lokalnej kopii strony, bez dotykania serwera produkcyjnego. Używam do tego LocalWP - darmowej aplikacji, która uruchamia pełne środowisko WordPress na komputerze (PHP 8.3, nginx, MariaDB). Działa na Windowsie i Mac.

Kroki testu:

Krok 1. Pobierz backup. Pobierz ręcznie najnowsze archiwum z Google Drive lub miejsca, gdzie przechowujesz kopie offsite. Nie testuj tylko tego, co jest na hostingu - testuj dokładnie ten plik, który byś użył w sytuacji awaryjnej.

Krok 2. Utwórz nową stronę w LocalWP. Nowa strona, nowa baza danych, czysta instalacja WordPress. Nie nadpisuj istniejącej lokalnej kopii.

Krok 3. Przywróć backup przez UpdraftPlus. Zainstaluj UpdraftPlus na nowej lokalnej stronie, wejdź w Ustawienia > UpdraftPlus, zakładka Przywróć, wgraj plik archiwum. Wtyczka rozpakowuje archiwum i importuje bazę oraz pliki.

Krok 4. Popraw adres URL w bazie danych. Po przywróceniu strona będzie się próbowała odwoływać do produkcyjnego adresu URL. Zmień go na lokalny:

wp search-replace 'https://twojastrona.pl' 'http://twojastrona.local'

Krok 5. Sprawdź kompletność (lista poniżej).

Nigdy nie testuj odtworzenia backupu bezpośrednio na produkcyjnej stronie. Nawet jeśli "tylko sprawdzasz" - zaimportowanie bazy może nadpisać aktualne dane zamówień i użytkowników.

Checklista: co sprawdzić po odtworzeniu backupu

Test odtworzenia to nie jest kliknięcie "Przywróć" i zamknięcie okna. To weryfikacja, że każdy kluczowy element działa.

Checklista testu odtworzenia WordPress

  • Strona główna ładuje się bez błędów (brak białego ekranu, brak błędów PHP)
  • Panel administracyjny /wp-admin/ działa, logowanie przechodzi
  • Kilka reprezentatywnych wpisów/produktów wyświetla się poprawnie ze zdjęciami
  • Katalog wp-content/uploads zawiera oczekiwaną liczbę plików (porównaj z produkcją)
  • Baza danych: tabela wp_posts, wp_postmeta, wp_options mają realistyczną liczbę wierszy
  • Wtyczki są aktywne (nie wszystkie, ale kluczowe: WooCommerce, Germanized, Rank Math)
  • Motyw wyświetla się poprawnie, nie ma brakujących zasobów CSS/JS
  • Dla sklepu: przejdź przez koszyk i checkout (formularz, nie płatność)
  • Formularz kontaktowy lub zapisu do newslettera wysyła wiadomość testową
  • Sprawdź wp-config.php: prefix tabeli ($table_prefix) zgadza się z bazą danych

Retencja i rotacja: ile kopii trzymać i jak długo

Retencja to jeden z najczęściej pomijanych elementów strategii backupu. Możesz mieć backup z wczoraj, ale jeśli problem (zhakowanie, błędna aktualizacja, uszkodzone dane) zaczął się 10 dni temu i nie zostało to zauważone od razu, nie cofniesz się do czystego stanu.

Praktyczny schemat retencji:

  • Baza danych: 14-30 kopii dziennych + 4 tygodniowe + 3 miesięczne
  • Pliki (uploads, wtyczki, motyw): 7 kopii dziennych + 4 tygodniowe
  • Przed każdą dużą aktualizacją (PHP, WooCommerce major release): backup ręczny z etykietą daty
  • Przed wdrożeniem nowego motywu lub migracją: backup ręczny poza normalnym harmonogramem

UpdraftPlus w wersji darmowej pozwala ustawić retencję do 3 kopii. Wersja Pro (ok. 120-180 PLN netto rocznie) zdejmuje to ograniczenie i dodaje obsługę przyrostowych backupów, co bardzo skraca czas generowania kopii dużych sklepów.

Ustaw powiadomienia mailowe o statusie backupu w UpdraftPlus. Błąd podczas tworzenia kopii = mail do Ciebie. Brak maila przez 48 godzin = coś poszło nie tak. To prosty sposób na monitoring bez zewnętrznych narzędzi.

Scenariusz awaryjny: co robisz, gdy serwer padnie o 2 w nocy

Najgorsza pora na szukanie instrukcji to ta, gdy strona już nie działa. Dlatego scenariusz awaryjny piszesz spokojnie, przy kawie, po teście odtworzenia - nie w czasie paniki.

Szablon scenariusza awaryjnego dla WordPressa:

Gdzie są backupy:

  • Google Drive > folder Backupy > [nazwa strony] (ostatni backup z [data])
  • Hosting > Panel > Kopie zapasowe (retencja 7 dni)

Dane dostępowe potrzebne do odtworzenia:

  • Dane FTP/SFTP (host, login, hasło)
  • Dane bazy MySQL (host, nazwa bazy, użytkownik, hasło) - z wp-config.php lub panelu hostingu
  • Dane dostępowe do panelu hostingu

Kroki odtworzenia na nowej instalacji:
1. Zainstaluj WordPress ręcznie lub przez panel hostingu
2. Wgraj i aktywuj UpdraftPlus
3. Pobierz backup z Google Drive na komputer
4. W UpdraftPlus > Przywróć > wgraj archiwum
5. Sprawdź i popraw wp-config.php (dane bazy, klucze bezpieczeństwa)
6. Wykonaj wp search-replace 'stary-adres.pl' 'docelowy-adres.pl' jeśli zmienił się serwer
7. Wyczyść cache (LiteSpeed Cache, W3 Total Cache lub inny)
8. Sprawdź SSL i przekierowania

Szacowany czas odtworzenia: 30-60 minut dla strony do 2 GB, 60-120 minut dla sklepu do 10 GB.

Ten dokument trzymaj w dwóch miejscach: w CREDENTIALS.md projektu i w osobnym pliku PDF na zewnętrznym dysku lub w 1Password/Bitwarden. Scenariusz nic nie jest wart, jeśli jest tylko na serwerze, który właśnie padł.

Plusy

  • Test odtworzenia eliminuje fałszywe poczucie bezpieczeństwa
  • Lokalny staging (LocalWP) jest bezpłatny i nie wymaga dodatkowego serwera
  • Udokumentowany scenariusz awaryjny skraca czas reakcji z godzin do minut
  • Strategia 3-2-1 chroni przed utratą danych nawet przy awarii dwóch lokalizacji jednocześnie

Minusy

  • Test odtworzenia wymaga 1-2 godzin czasu raz na kwartał
  • UpdraftPlus Pro (pełna retencja, przyrostowe backupy) to dodatkowy koszt ok. 120-180 PLN/rok
  • Duże sklepy (ponad 10 GB) wymagają więcej przestrzeni offsite - Google Drive 15 GB może być za mało

Jak wpiąć test backupu w rutynę konserwacji

Jeden test odtworzenia raz w życiu to za mało. Backup to żywy element infrastruktury - zmienia się wraz ze wzrostem sklepu, migracjami i aktualizacjami. Wpisz test odtworzenia w comiesięczną lub kwartalną rutynę konserwacji.

W ramach opieki technicznej WordPress, którą prowadzę dla klientów, test backupu jest standardowym elementem checklisty. Nie jako oddzielna usługa, ale jako część normalnego cyklu: sprawdzenie statusu backupów, weryfikacja kompletności archiwów, raz na kwartał pełny test odtworzenia na środowisku lokalnym. Dzięki temu klienci mają pewność, że ich strona i sklep da się odbudować - nawet jeśli nigdy nie dojdzie do sytuacji awaryjnej.

Jeśli chcesz zobaczyć, co konkretnie wchodzi w skład takiej rutyny, opisałem to szczegółowo w przewodniku po opiece WordPress i w checkliście miesięcznej konserwacji.

WordPress sam w sobie nie tworzy backupów. Jeśli Twój hosting nie ma automatycznych kopii w abonamencie, jedyne, co stoi między Tobą a utratą strony, to wtyczka lub brak wtyczki. Sprawdź to dzisiaj, nie po awarii.

Podsumowanie: jeden test jest wart więcej niż sto backupów

Backup bez testu odtworzenia jest jak gaśnica, której nie wiesz, czy jest napełniona. Może działać. Może nie. Dowiesz się w najgorszym momencie.

Test odtworzenia backupu WordPress to czynność, którą możesz wykonać samodzielnie w 1-2 godziny, używając darmowego LocalWP i standardowej konfiguracji UpdraftPlus. Robisz to raz na kwartał, dokumentujesz wyniki, aktualizujesz scenariusz awaryjny. I masz coś, czego nie ma większość właścicieli stron: pewność, że Twój backup naprawdę zadziała.

Najczęstsze pytania

Jak często powinienem testować backup WordPress?

Minimum raz na kwartał, plus po każdej dużej aktualizacji WordPressa lub WooCommerce, po migracji hostingu i po zmianie konfiguracji backupu. Dla sklepów z dużym ruchem polecam testy miesięczne.

Czy backup od hostingu wystarczy?

Nie w 100%. Backup hostingowy to dobre uzupełnienie, ale nie jedyna linia obrony. Brakuje Ci kontroli nad harmonogramem, retencją i możliwością przetestowania odtworzenia bez angażowania supportu. Trzymaj własny backup wtyczkowy (UpdraftPlus, BackWPup) i offsite (Google Drive, S3, Dropbox).

Co to jest strategia 3-2-1 backupu?

Zasada mówi: trzymaj 3 kopie danych, na 2 różnych nośnikach/usługach, z czego 1 jest offsite (poza serwerem produkcyjnym). Przykład: kopia na hostingu + kopia w Google Drive + kopia na zewnętrznym dysku lub S3.

Jak długo trwa przywrócenie WordPressa z backupu?

Mała strona wizytówkowa (do 1 GB): 15-30 minut. Sklep WooCommerce z kilkuset produktami i zdjęciami (3-10 GB): 45-90 minut. Duży sklep z tysiącami produktów i archiwum zamówień: 2-4 godziny. Czas zależy od rozmiaru plików, prędkości serwera i tego, czy masz gotowy scenariusz awaryjny.

Jakie pliki muszą być w backupie WordPress?

Baza danych (wszystkie tabele, nie tylko wp_posts), katalog wp-content/uploads (zdjęcia, media), katalog wp-content/plugins, wp-content/themes i plik wp-config.php lub jego wartości (klucze, prefix tabeli). Bez któregokolwiek z tych elementów odtworzenie nie będzie kompletne.

Czy mogę przetestować backup na LocalWP?

Tak i jest to jedna z najwygodniejszych metod. Tworzysz nową stronę w LocalWP, importujesz bazę danych przez phpMyAdmin dostępny z poziomu LocalWP, kopiujesz katalog uploads, zmieniasz adresy URL w bazie poleceniem wp search-replace i sprawdzasz, czy strona działa lokalnie.