Zmiana hostingu, przeprowadzka na szybszy serwer, przeniesienie strony ze środowiska testowego na produkcję – każda z tych sytuacji wymaga migracji WordPress. Brzmi groźnie, ale przy odpowiednim przygotowaniu to zadanie, które można wykonać samodzielnie w ciągu jednego popołudnia.
W tym przewodniku przeprowadzę Cię przez cały proces – od backupu, przez przeniesienie plików i bazy danych, aż po zmianę DNS i testy po migracji. Omówię zarówno metodę z wtyczką (idealną dla początkujących), jak i metodę ręczną przez FTP i phpMyAdmin (dla bardziej zaawansowanych). Na końcu znajdziesz gotową checklistę i tabelę najczęstszych problemów z rozwiązaniami.
Spis treści
- Kiedy i dlaczego warto migrować WordPress?
- Zanim zaczniesz – lista kontrolna
- Krok 1 – Backup strony przed migracją
- Krok 2 – Metoda z wtyczką (dla początkujących)
- Krok 3 – Metoda ręczna przez FTP i phpMyAdmin
- Krok 4 – Aktualizacja adresów URL w bazie danych
- Krok 5 – Konfiguracja nowego serwera
- Krok 6 – Testowanie przed zmianą DNS
- Krok 7 – Zmiana DNS i propagacja
- Krok 8 – Testy po migracji – kompletna checklista
- Najczęstsze problemy po migracji i jak je naprawić
- Migracja WordPress na localhost i z localhostu
- Podsumowanie i rekomendacje
- FAQ – często zadawane pytania
1. Kiedy i dlaczego warto migrować WordPress?
Migracja WordPress to temat, który prędzej czy później dotyczy każdego właściciela strony. Najczęstsze powody to:
Zmiana hostingu – obecny hosting jest za wolny, za drogi albo ma słaby support. Chcesz przenieść się do lepszego dostawcy bez utraty danych i pozycji w Google.
Przeprowadzka na VPS lub serwer dedykowany – Twoja strona rośnie i współdzielony hosting przestaje wyrabiać. Potrzebujesz więcej zasobów i pełnej kontroli nad środowiskiem.
Przeniesienie staging → produkcja – rozwinąłeś nową wersję strony na środowisku testowym (lokalnym lub na subdomenie) i teraz chcesz ją wdrożyć na serwer produkcyjny.
Zmiana domeny – przenosisz stronę pod nowy adres URL, co wymaga aktualizacji nie tylko DNS, ale też wszystkich odnośników w bazie danych.
Konsolidacja serwerów – zarządzasz wieloma stronami i chcesz je połączyć na jednym serwerze lub w WordPress Multisite.
Każdy z tych scenariuszy ma swoje niuanse, ale podstawowy proces migracji jest zawsze taki sam. Właśnie ten proces opisuję w tym artykule.
2. Zanim zaczniesz – lista kontrolna
Dobra migracja zaczyna się od przygotowania. Przed ruszeniem z pracą upewnij się, że masz wszystko, czego potrzebujesz.
Dostępy i dane logowania
- [ ] Dostęp FTP lub SSH do starego serwera (host, login, hasło)
- [ ] Dostęp FTP lub SSH do nowego serwera
- [ ] Dane logowania do starej bazy danych (nazwa, użytkownik, hasło, host) – znajdziesz je w
wp-config.php
- [ ] Możliwość tworzenia baz danych na nowym serwerze (panel cPanel, DirectAdmin lub Plesk)
- [ ] Dostęp do panelu zarządzania domeną (zmiana rekordów DNS)
- [ ] Login i hasło do panelu administracyjnego WordPress
Informacje techniczne
- [ ] Rozmiar strony – pliki + baza danych (decyduje o wyborze metody migracji)
- [ ] Wersja PHP aktualnie używana na starym serwerze
- [ ] Lista aktywnych wtyczek i motywów
- [ ] Czy strona ma aktywny certyfikat SSL?
Planowanie
- [ ] Wybierz termin migracji – najlepiej w nocy lub w weekend, przy niskim ruchu
- [ ] Obniż TTL rekordu DNS domeny do 300 sekund 24–48 godzin przed migracją (przyspieszy propagację DNS)
- [ ] Poinformuj klientów lub współpracowników o planowanej przerwie technicznej (jeśli dotyczy)
3. Krok 1 – Backup strony przed migracją
Zanim dotkniesz czegokolwiek – zrób backup. To żelazna zasada, której nigdy nie wolno pomijać. Nawet jeśli migracja pójdzie idealnie, backup jest Twoją polisą ubezpieczeniową.
Co powinien zawierać pełny backup WordPress?
Pełna kopia zapasowa składa się z dwóch elementów:
- Pliki – cały katalog WordPress, a w szczególności
wp-content/ (motywy, wtyczki, media)
- Baza danych – wszystkie posty, strony, ustawienia, użytkownicy, metadane
Backup samych plików bez bazy danych jest bezużyteczny – i odwrotnie.
Metoda 1 – Wtyczka UpdraftPlus (najłatwiejsza)
UpdraftPlus to najpopularniejsza darmowa wtyczka do backupów. Pozwala wykonać pełną kopię zapasową jednym kliknięciem i pobrać ją na swój komputer lub wysłać na chmurę (Google Drive, Dropbox, Amazon S3).
- Zainstaluj i aktywuj UpdraftPlus z repozytorium WordPress.org
- Przejdź do Ustawienia → UpdraftPlus Backups
- Kliknij Utwórz kopię zapasową teraz
- Po zakończeniu pobierz wszystkie pliki (baza danych, wtyczki, motywy, uploady, inne)
- Zapisz je w co najmniej dwóch miejscach – lokalnie i w chmurze
Metoda 2 – Ręcznie przez FTP i phpMyAdmin
Jeśli nie chcesz instalować kolejnej wtyczki, możesz zrobić backup ręcznie:
Pliki: połącz się przez FTP (np. FileZilla), zaznacz cały katalog WordPress i pobierz go na swój dysk. Przy dużych stronach może to zająć kilkadziesiąt minut.
Baza danych: zaloguj się do phpMyAdmin na starym serwerze, wybierz bazę danych WordPress, kliknij Eksportuj → metoda Szybka → format SQL → Wykonaj. Zapisz plik .sql na dysku.
Metoda 3 – mysqldump przez SSH (najszybsza przy dużych bazach)
mysqldump -u nazwa_użytkownika -p nazwa_bazy_danych > backup_$(date +%Y%m%d).sql
Ta metoda jest szczególnie przydatna przy bazach powyżej 100 MB, gdzie phpMyAdmin może przekroczyć limit czasu wykonania.
4. Krok 2 – Metoda z wtyczką (dla początkujących)
Jeśli zaczynasz przygodę z migracją WordPress, zacznij od metody z wtyczką. Jest szybsza, bezpieczniejsza i nie wymaga znajomości linii poleceń.
Opcja A – Duplicator (rekomendowana)
Duplicator to jedna z najlepiej ocenianych wtyczek do migracji WordPress. Darmowa wersja obsługuje strony do kilkuset MB, wersja Pro zdejmuje ten limit.
Na starym serwerze:
- Zainstaluj i aktywuj wtyczkę Duplicator
- Przejdź do Duplicator → Packages → Create New
- Przejdź przez kreator – możesz zostawić domyślne ustawienia
- Po zakończeniu pobierz dwa pliki:
archive.zip (cała strona) i installer.php
Na nowym serwerze:
- Przez FTP wgraj oba pliki (
archive.zip i installer.php) do głównego katalogu nowej instalacji (np. public_html/)
- Utwórz nową, pustą bazę danych w panelu hostingu
- W przeglądarce otwórz
https://twojadomena.pl/installer.php
- Postępuj zgodnie z kreatorem – podaj dane nowej bazy danych
- Duplicator automatycznie rozpakuje archiwum i zaktualizuje adresy URL
- Ważne: po zakończeniu usuń pliki
installer.php, installer-backup.php i archive.zip – stanowią zagrożenie bezpieczeństwa
Plusy: automatyczna zamiana URL, obsługa serializowanych danych, kreator krok po kroku
Minusy: limit rozmiaru w wersji darmowej, czasem problemy z bardzo dużymi bazami
Opcja B – All-in-One WP Migration
Jeszcze prostsza w obsłudze, ale z poważnym ograniczeniem darmowej wersji: limit importu to 512 MB (choć istnieją nieoficjalne sposoby na jego obejście przez zmianę rozszerzenia pliku).
Eksport:
- Zainstaluj All-in-One WP Migration
- Przejdź do All-in-One WP Migration → Eksportuj
- Wybierz Eksportuj do → Plik
- Pobierz wygenerowany plik
.wpress
Import na nowym serwerze:
- Zainstaluj świeżego WordPressa na nowym hostingu
- Zainstaluj wtyczkę All-in-One WP Migration
- Przejdź do All-in-One WP Migration → Importuj
- Przeciągnij plik
.wpress lub wskaż go ręcznie
- Potwierdź nadpisanie danych i poczekaj na zakończenie
Kiedy wtyczki nie wystarczą?
Metody z wtyczkami mają swoje ograniczenia. Rozważ migrację ręczną gdy:
- Strona waży powyżej 2–3 GB
- Serwer ma niski limit
max_execution_time (poniżej 300 sekund)
- Hostujesz u dostawcy z restrykcyjnym środowiskiem PHP
- Potrzebujesz pełnej kontroli nad każdym krokiem procesu
5. Krok 3 – Metoda ręczna przez FTP i phpMyAdmin
Metoda ręczna daje pełną kontrolę nad procesem i działa niezależnie od rozmiaru strony czy ograniczeń serwera. Wymaga trochę więcej wiedzy technicznej, ale po wykonaniu raz staje się rutyną.
5.1 Skopiuj pliki WordPress ze starego serwera
Połącz się ze starym serwerem przez FTP (polecam FileZilla – darmowy i dostępny na Windows, Mac, Linux).
Co pobierać:
Pobierz cały katalog wp-content/ – to absolutne minimum. Zawiera Twoje motywy, wtyczki i media.
Jeśli masz niestandardowe zmiany w plikach core (czego nie powinieneś mieć), pobierz całość. W przeciwnym razie możesz zainstalować świeżego WordPressa na nowym serwerze i skopiować tylko wp-content/.
Do pobrania:
✅ wp-content/ (motywy, wtyczki, media)
✅ wp-config.php (konfiguracja – edytujesz przed wgraniem)
✅ .htaccess (reguły serwera)
Opcjonalnie (jeśli masz modyfikacje):
⚠️ wp-includes/
⚠️ wp-admin/
⚠️ pozostałe pliki w root
Wskazówka: przy dużych stronach zamiast FTP użyj SSH i skompresuj pliki na serwerze przed pobraniem:
cd /home/twojkonto/public_html
tar -czf backup_pliki.tar.gz wp-content/ wp-config.php .htaccess
Następnie pobierz jeden plik backup_pliki.tar.gz zamiast tysięcy małych plików – kilkadziesiąt razy szybciej.
5.2 Eksportuj bazę danych
Przez phpMyAdmin:
- Zaloguj się do phpMyAdmin na starym serwerze
- Z lewej kolumny wybierz bazę danych WordPress
- Kliknij zakładkę Eksportuj
- Wybierz metodę Niestandardowa
- Upewnij się, że zaznaczone są wszystkie tabele
- W sekcji „Format” wybierz SQL
- Zaznacz opcję Dodaj instrukcję DROP TABLE – ułatwi późniejszy import
- Kliknij Wykonaj i zapisz plik
.sql
Przez SSH (zalecane przy dużych bazach):
mysqldump -h localhost -u nazwa_użytkownika -p \
--single-transaction \
--routines \
--triggers \
nazwa_bazy > backup_baza_$(date +%Y%m%d_%H%M).sql
Opcja --single-transaction zapewnia spójność danych bez blokowania tabel podczas eksportu – ważne na działających stronach.
5.3 Przygotuj nowy serwer
Na nowym serwerze wykonaj następujące czynności:
- Utwórz nową bazę danych – w panelu hostingu (cPanel: MySQL Databases, DirectAdmin: MySQL Management). Zanotuj: nazwę bazy, użytkownika i hasło.
- Zainstaluj WordPress – możesz zainstalować świeżą kopię przez instalator hostingu (Softaculous, Fantastico) lub ręcznie. Jeśli instalujesz ręcznie, pobierz WordPress z wordpress.org i wgraj przez FTP.
- Wgraj pliki – skopiuj
wp-content/ z lokalnego backupu na nowy serwer, zastępując domyślny katalog.
5.4 Edytuj wp-config.php
Zanim wgrasz wp-config.php na nowy serwer, zaktualizuj dane bazy danych:
define( 'DB_NAME', 'nowa_nazwa_bazy' );
define( 'DB_USER', 'nowy_użytkownik' );
define( 'DB_PASSWORD', 'nowe_hasło' );
define( 'DB_HOST', 'localhost' ); // zazwyczaj localhost, ale sprawdź u hostingu
Uwaga na DB_HOST: większość hostingów używa localhost, ale niektórzy dostawcy (np. serwery zarządzane, Cloudways) podają własny adres hosta bazy danych. Sprawdź dokumentację lub panel swojego hostingu.
5.5 Importuj bazę danych
Przez phpMyAdmin:
- Zaloguj się do phpMyAdmin na nowym serwerze
- Wybierz utworzoną wcześniej, pustą bazę danych
- Kliknij zakładkę Importuj
- Wskaż plik
.sql z backupem
- Kliknij Wykonaj
Jeśli plik .sql jest za duży dla phpMyAdmin (domyślnie limit to 2–8 MB w zależności od konfiguracji), użyj SSH:
mysql -u nazwa_użytkownika -p nazwa_bazy < backup_baza.sql
Lub skorzystaj z narzędzia BigDump – skryptu PHP do importu dużych plików SQL w częściach.
6. Krok 4 – Aktualizacja adresów URL w bazie danych
To jeden z najczęściej pomijanych kroków, który powoduje potem mnóstwo problemów. Jeśli nowy serwer ma inną domenę lub protokół (np. przechodzisz z http:// na https:// albo zmieniasz subdomenę), musisz zaktualizować adresy URL w całej bazie danych.
Dlaczego zwykły search-replace w SQL nie wystarczy?
WordPress przechowuje część danych w formacie serializowanym. Wygląda to tak:
a:2:{s:3:"url";s:22:"http://staryurl.pl/img";}
Liczba 22 to długość stringa http://staryurl.pl/img. Jeśli zmienisz URL na https://nowyurl.pl/img (24 znaki), ale nie zaktualizujesz tej liczby, PHP nie będzie w stanie odczytać danych i dostaniesz błędy. Dlatego do zamiany URL-i w WordPressie trzeba używać dedykowanych narzędzi.
Metoda 1 – WP-CLI (najlepsza i najszybsza)
wp search-replace 'http://staryurl.pl' 'https://nowyurl.pl' --all-tables --precise
Opcja --precise zapewnia poprawną obsługę serializowanych danych. Możesz też dodać --dry-run żeby najpierw zobaczyć, ile rekordów zostanie zmienionych bez faktycznej modyfikacji:
wp search-replace 'http://staryurl.pl' 'https://nowyurl.pl' --all-tables --dry-run
Metoda 2 – Wtyczka Better Search Replace
- Zainstaluj wtyczkę Better Search Replace
- Przejdź do Narzędzia → Better Search Replace
- W polu „Szukaj” wpisz stary URL:
http://staryurl.pl
- W polu „Zamień na” wpisz nowy URL:
https://nowyurl.pl
- Zaznacz wszystkie tabele
- Najpierw zaznacz „Dry Run” – zobaczysz ile rekordów zostanie zmienionych
- Odznacz „Dry Run” i uruchom właściwą zamianę
Metoda 3 – Ręczna aktualizacja w phpMyAdmin (minimum)
Jeśli chcesz zrobić absolutne minimum (np. strona dopiero co zainstalowana i nie ma jeszcze dużo danych), możesz zaktualizować ręcznie dwa kluczowe rekordy w tabeli wp_options:
UPDATE wp_options SET option_value = 'https://nowyurl.pl' WHERE option_name = 'siteurl';
UPDATE wp_options SET option_value = 'https://nowyurl.pl' WHERE option_name = 'home';
Pamiętaj o zmianie prefiksu tabel jeśli używasz niestandardowego (np. mojastrona_options zamiast wp_options).
Co jeszcze zaktualizować?
Poza domeną, sprawdź też:
- Stare ścieżki bezwzględne do plików (jeśli katalog instalacji się zmienił)
- Adresy URL w ustawieniach WooCommerce (jeśli dotyczy)
- Adresy URL w konfiguracji wtyczek (np. SMTP, CDN, cache)
7. Krok 5 – Konfiguracja nowego serwera
Po wgraniu plików i zaimportowaniu bazy zadbaj o prawidłową konfigurację środowiska na nowym serwerze.
Wersja PHP
WordPress 6.x wymaga minimum PHP 7.4, ale zalecana wersja to PHP 8.2 lub 8.3. Sprawdź wersję PHP w panelu hostingu i zmień ją jeśli jest zbyt stara. Większość popularnych hostingów (LH.pl, Kylos, OVH, Hetzner) pozwala zmienić wersję PHP z poziomu panelu.
Jak sprawdzić aktualną wersję PHP? Utwórz plik info.php z zawartością:
<?php phpinfo(); ?>
Wgraj go na serwer i otwórz w przeglądarce. Usuń plik po sprawdzeniu.
Wymagania PHP dla WordPress
Sprawdź i dostosuj następujące dyrektywy PHP (w php.ini lub przez panel hostingu):
| Dyrektywa |
Minimum |
Zalecane |
memory_limit |
64M |
256M lub więcej |
max_execution_time |
60 |
300 |
upload_max_filesize |
8M |
64M lub więcej |
post_max_size |
8M |
64M lub więcej |
max_input_vars |
1000 |
3000 |
Dla WooCommerce te wartości powinny być jeszcze wyższe – oficjalnie zalecane memory_limit to 512M.
Uprawnienia plików i folderów
Ustaw poprawne uprawnienia – nieprawidłowe są częstą przyczyną problemów po migracji:
# Ustaw 755 dla katalogów
find /ścieżka/do/wordpress -type d -exec chmod 755 {} \;
# Ustaw 644 dla plików
find /ścieżka/do/wordpress -type f -exec chmod 644 {} \;
# Zabezpiecz wp-config.php
chmod 600 wp-config.php
Regeneracja .htaccess
Po migracji permalink często przestają działać. Naprawisz to w 10 sekund:
- Zaloguj się do panelu WP
- Przejdź do Ustawienia → Bezpośrednie odnośniki
- Kliknij Zapisz zmiany (nawet bez zmian w ustawieniach)
WordPress automatycznie zregeneruje plik .htaccess z poprawnymi regułami.
SSL i HTTPS
Jeśli nowy hosting obsługuje Let’s Encrypt, zainstaluj certyfikat SSL przez panel hostingu. Następnie wymuś przekierowanie HTTP → HTTPS dodając do .htaccess (powyżej sekcji WordPress):
RewriteEngine On
RewriteCond %{HTTPS} off
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
Lub zainstaluj wtyczkę Really Simple SSL, która zrobi to automatycznie.
8. Krok 6 – Testowanie przed zmianą DNS
Zanim zmienisz DNS i przekierujesz ruch na nowy serwer, przetestuj, czy wszystko działa. Jak odwiedzić nową stronę bez zmiany DNS? Przez edycję pliku hosts na swoim komputerze.
Edycja pliku hosts
Plik hosts pozwala nadpisać DNS lokalnie – tylko na Twoim komputerze. Nikt inny tego nie zobaczy.
Windows: C:\Windows\System32\drivers\etc\hosts
Mac / Linux: /etc/hosts
Dodaj linię na końcu pliku:
123.456.789.0 twojadomena.pl www.twojadomena.pl
Gdzie 123.456.789.0 to adres IP nowego serwera (znajdziesz go w panelu nowego hostingu).
Po zapisaniu pliku odśwież cache DNS:
# Windows
ipconfig /flushdns
# Mac
sudo dscacheutil -flushcache; sudo killall -HUP mDNSResponder
# Linux
sudo systemctl restart systemd-resolved
Teraz wpisując domenę w przeglądarce, zobaczysz stronę z nowego serwera. Sprawdź wszystko dokładnie, zanim zatwierdzisz zmianę DNS.
Po testach usuń dodaną linię z pliku hosts.
9. Krok 7 – Zmiana DNS i propagacja
Gdy testy wypadną pomyślnie, możesz zmienić DNS i przekierować ruch na nowy serwer.
Jak zmienić rekordy DNS?
Zaloguj się do panelu zarządzania domeną (u rejestratora domeny lub w panelu DNS, np. Cloudflare) i zmień rekord A domeny na adres IP nowego serwera:
Typ: A
Nazwa: @ (lub twojadomena.pl)
Wartość: nowy_adres_IP
TTL: 300
Jeśli używasz subdomeny www:
Typ: A (lub CNAME → @)
Nazwa: www
Wartość: nowy_adres_IP (lub twojadomena.pl dla CNAME)
TTL: 300
Czas propagacji DNS
Po zmianie rekordu DNS zmiany rozprzestrzeniają się po całym świecie stopniowo. Nie dzieje się to natychmiastowo:
- Przy TTL 300 (5 minut) – propagacja zajmuje zazwyczaj 15–60 minut
- Przy domyślnym TTL 3600–86400 – może to potrwać do 48 godzin
Właśnie dlatego warto obniżyć TTL do 300 sekund 24–48 godzin przed migracją – wtedy serwery DNS na całym świecie szybciej odświeżą rekordy po zmianie.
Jak sprawdzić propagację DNS?
Narzędzia online:
- whatsmydns.net – pokazuje jak rekord DNS wygląda z różnych lokalizacji na świecie
- dnschecker.org – podobne narzędzie z mapą
Przez terminal:
# Sprawdź aktualny rekord A
nslookup twojadomena.pl
# Sprawdź propagację na konkretnym serwerze DNS
nslookup twojadomena.pl 8.8.8.8
Co robić w czasie propagacji?
W czasie propagacji część użytkowników może trafiać na stary serwer, część na nowy. Dlatego:
- Nie usuwaj jeszcze starej strony – poczekaj minimum 48–72 godziny po zmianie DNS
- Zostaw stary serwer aktywny – użytkownicy trafieni przez stary DNS zobaczą działającą stronę
- Wstrzymaj zmiany treści – edycje na nowym serwerze nie pojawią się u osób trafiających jeszcze na stary
10. Krok 8 – Testy po migracji – kompletna checklista
Po propagacji DNS zrób dokładny przegląd strony. To Twój ostatni przejazd przed zamknięciem starego serwera.
Funkcjonalność podstawowa
- [ ] Strona główna ładuje się poprawnie
- [ ] Podstrony i wpisy blogowe otwierają się bez błędów
- [ ] Menu nawigacji działa poprawnie
- [ ] Wyszukiwarka na stronie zwraca wyniki
- [ ] Paginacja (następna strona, poprzednia) działa
- [ ] Logowanie do panelu WP działa (
/wp-admin)
- [ ] Możesz tworzyć i edytować wpisy
Multimedia i zasoby
- [ ] Obrazki wyświetlają się poprawnie (sprawdź różne podstrony)
- [ ] Pliki PDF i inne dokumenty są dostępne do pobrania
- [ ] Wideo osadzone na stronie odtwarza się poprawnie
- [ ] Czcionki i ikony ładują się prawidłowo
SSL i bezpieczeństwo
- [ ] Adres w przeglądarce pokazuje
https:// i kłódkę
- [ ] Brak ostrzeżeń o mieszanej treści (mixed content) – sprawdź przez narzędzia deweloperskie przeglądarki (F12 → Console)
- [ ] Przekierowanie
http:// → https:// działa
- [ ] Przekierowanie
www. → bez www. (lub odwrotnie) działa
Formularze i komunikacja
- [ ] Formularz kontaktowy wysyła wiadomości (sprawdź czy maile dochodzą)
- [ ] Formularz zapisu na newsletter działa
- [ ] Komentarze można dodawać i są widoczne
WooCommerce (jeśli dotyczy)
- [ ] Produkty wyświetlają się poprawnie
- [ ] Koszyk działa – można dodać i usunąć produkty
- [ ] Proces zamówienia (checkout) przebiega bez błędów
- [ ] Bramka płatności działa (wykonaj testowe zamówienie)
- [ ] Maile transakcyjne (potwierdzenie zamówienia) są wysyłane
- [ ] Stany magazynowe są poprawne
Techniczne
- [ ] Wyczyszczenie cache wtyczki (W3 Total Cache, WP Super Cache, LiteSpeed Cache)
- [ ] Wyczyszczenie cache CDN jeśli używasz (Cloudflare, BunnyCDN)
- [ ] Sprawdzenie logów błędów PHP (
wp-content/debug.log)
- [ ] Google Search Console – brak nowych błędów crawlowania
- [ ] Narzędzia analityczne (Google Analytics, Matomo) zbierają dane
11. Najczęstsze problemy po migracji i jak je naprawić
Nawet przy starannej migracji mogą pojawić się problemy. Oto tabela najczęstszych z nich wraz z rozwiązaniami:
| Problem |
Prawdopodobna przyczyna |
Rozwiązanie |
| Biały ekran śmierci (WSoD) |
Błąd PHP, brak pamięci, konflikt wtyczki |
Włącz WP_DEBUG w wp-config.php, sprawdź debug.log, wyłącz wtyczki przez FTP |
| Błąd 500 Internal Server Error |
Błędny .htaccess, niekompatybilna wersja PHP |
Zmień nazwę .htaccess na .htaccess_old i zregeneruj, sprawdź wersję PHP |
| Błąd „Error establishing a database connection” |
Złe dane w wp-config.php |
Sprawdź DB_NAME, DB_USER, DB_PASSWORD, DB_HOST |
| Obrazki się nie ładują |
Stary URL w bazie danych lub złe uprawnienia |
Uruchom search-replace URL, sprawdź uprawnienia folderu uploads/ (755) |
| Pętle przekierowań (redirect loop) |
Konflikt SSL lub błędny siteurl/home w bazie |
Sprawdź rekordy w wp_options, sprawdź reguły SSL w .htaccess |
| Permalinki nie działają (błąd 404) |
Brak modułu mod_rewrite lub błędny .htaccess |
Zregeneruj .htaccess w Ustawienia → Bezpośrednie odnośniki, sprawdź czy mod_rewrite jest aktywny |
| Maile nie dochodzą |
Nowy serwer ma ograniczenia SMTP lub funkcja mail() jest wyłączona |
Zainstaluj i skonfiguruj wtyczkę WP Mail SMTP z zewnętrznym serwerem SMTP (Gmail, SendGrid, Mailgun) |
| Strona ładuje się wolno |
Stara konfiguracja cache, brak opcache na nowym serwerze |
Wyczyść i zrekonfiguruj wtyczkę cache, sprawdź czy OPcache jest włączony |
| Mieszana treść (mixed content) |
Stare linki http:// w treści lub ustawieniach wtyczek |
Uruchom search-replace http://twojadomena.pl → https://twojadomena.pl |
| Panel WP nie działa po zalogowaniu |
Błąd z cookies lub zmiana domeny |
Wyczyść cookies w przeglądarce, sprawdź siteurl i home w wp_options |
Jak włączyć tryb debugowania?
Gdy coś nie działa i nie wiesz dlaczego, pierwszym krokiem jest zawsze włączenie trybu debug:
// W wp-config.php
define( 'WP_DEBUG', true );
define( 'WP_DEBUG_LOG', true );
define( 'WP_DEBUG_DISPLAY', false );
Logi błędów pojawią się w wp-content/debug.log. Szukaj linii zaczynających się od PHP Fatal error lub PHP Warning – zazwyczaj od razu wskazują winowajcę.
12. Migracja WordPress na localhost i z localhostu
Szczególnym przypadkiem jest migracja między środowiskiem lokalnym (localhost) a serwerem produkcyjnym. Proces jest taki sam jak opisany powyżej, ale z kilkoma dodatkowymi uwagami.
Z localhost na serwer produkcyjny
Najczęstszy scenariusz przy wdrożeniu nowej strony. Pamiętaj o:
- Zamianie
http://localhost lub http://localhost/nazwastrony na https://twojadomena.pl w search-replace
- Sprawdzeniu ścieżek bezwzględnych – na localhoście często to
C:\xampp\htdocs\... lub /Applications/MAMP/...
- Usunięciu wtyczek developerskich (Query Monitor, Debug Bar) przed migracją na produkcję
Z serwera produkcyjnego na localhost
Przydatne gdy chcesz lokalnie rozwijać istniejącą stronę. Popularne narzędzia do lokalnego środowiska WordPress:
- Local by Flywheel – najprostszy, GUI, idealny dla początkujących
- DevKinsta – podobny do Local, od Kinsta
- XAMPP / MAMP – klasyczne środowisko LAMP/MAMP, więcej konfiguracji
- Laragon (Windows) – szybki i lekki, polecany przez wielu deweloperów
- Docker – dla zaawansowanych, pełna kontrola nad środowiskiem
13. Podsumowanie i rekomendacje
Migracja WordPress nie musi być stresującym doświadczeniem. Kluczowe zasady:
1. Zawsze rób backup przed migracją. Nawet jeśli wszystko pójdzie gładko, backup to Twoje ubezpieczenie. Bez niego ryzykujesz utratą całego dorobku.
2. Wybierz metodę dopasowaną do rozmiaru strony. Małe strony (do 500 MB) – wtyczka Duplicator lub All-in-One WP Migration. Duże strony – metoda ręczna z mysqldump i SSH.
3. Nie zapomnij o search-replace URL. To najczęściej pomijany krok, który powoduje połowę problemów po migracji. Używaj WP-CLI lub Better Search Replace, nigdy czystego SQL-a.
4. Testuj przed zmianą DNS. Edytuj plik hosts i dokładnie sprawdź nową stronę, zanim skierujesz na nią ruch.
5. Obniż TTL przed migracją. Minimum 24 godziny przed planowaną zmianą DNS ustaw TTL na 300 sekund. Dzięki temu propagacja zajmie minuty, nie godziny.
6. Nie usuwaj starego serwera od razu. Zostaw go aktywny przez co najmniej 48–72 godziny po migracji.
14. FAQ – często zadawane pytania
Czy migracja WordPress wpłynie na pozycje w Google?
Sama zmiana serwera nie powinna wpłynąć na SEO, jeśli domena pozostaje ta sama. Google śledzi serwer po domenie, nie po adresie IP. Ważne jest, by strona była dostępna bez przerw i by adresy URL nie uległy zmianie.
Ile trwa migracja WordPress?
Przy użyciu wtyczki i stronie do 500 MB – 30–60 minut. Przy metodzie ręcznej i dużej stronie – 2–4 godziny. Czas propagacji DNS to dodatkowe 15 minut do 48 godzin.
Czy mogę migrować WordPress bez dostępu FTP?
Tak, jeśli masz dostęp SSH (szybszy i wygodniejszy) lub jeśli Twój hosting ma menedżer plików w panelu (cPanel File Manager). Możesz też użyć wtyczki All-in-One WP Migration, która nie wymaga FTP.
Co zrobić gdy strona jest bardzo duża (powyżej 5 GB)?
Przenieś pliki przez SSH używając rsync lub scp – znacznie szybsze niż FTP. Bazę danych eksportuj przez mysqldump. Rozważ też skontaktowanie się z nowym hostingiem – większość oferuje bezpłatną pomoc przy migracji.
Czy mogę migrować tylko bazę danych bez plików?
Tak, jeśli chcesz np. zaktualizować treść z produkcji na staging. Pamiętaj jednak o search-replace URL jeśli adresy serwerów się różnią.
Co z certyfikatem SSL po migracji?
Certyfikat SSL jest przypisany do domeny i serwera. Po migracji na nowy serwer musisz zainstalować nowy certyfikat SSL. Na większości hostingów Let’s Encrypt instaluje się automatycznie lub jednym kliknięciem w panelu.
Czy WooCommerce wymaga specjalnego podejścia przy migracji?
Podstawowy proces jest taki sam, ale po migracji koniecznie sprawdź: ustawienia bramek płatności (klucze API mogą być przypisane do domeny/IP), maile transakcyjne, stany magazynowe i ewentualne integracje z systemami zewnętrznymi (ERP, kurierzy).