Proces migracji witryny WordPress na nowy serwer, do innego dostawcy hostingu lub pod nową domenę to jedna z najważniejszych operacji technicznych w cyklu życia strony. Udana migracja WordPressa wymaga skrupulatnych kopii zapasowych, zachowania integralności plików, poprawnej aktualizacji konfiguracji oraz zaplanowania propagacji DNS. Migracja polega na przeniesieniu wszystkich komponentów: bazy danych MySQL, plików PHP (rdzeń i kod własny), zasobów multimedialnych (uploads) oraz parametrów konfiguracyjnych.
- Podstawy migracji WordPressa
- Przygotowanie i ocena ryzyka
- Ręczna metoda migracji
- Eksport i zarządzanie bazą danych
- Przesyłanie plików przez FTP
- Aktualizacje pliku konfiguracyjnego
- Testowanie i weryfikacja
- Rozwiązania migracji oparte na wtyczkach
- Przegląd wtyczek do migracji
- Metodyka wtyczki Duplicator
- Proces wtyczki All‑in‑One WP Migration
- Techniki wtyczki WP STAGING
- Zarządzanie i modyfikacja bazy danych
- Struktura bazy danych WordPressa
- Procedury eksportu
- Techniki importu
- Aktualizacja adresów URL (search‑replace)
- DNS, SSL i uruchomienie produkcyjne
- Testy po migracji i optymalizacja
- Najczęstsze problemy i rozwiązania
- Krótki przewodnik po krokach (manual)
- Rekomendacje dobrych praktyk
- Uwaga końcowa
Współczesne podejścia obejmują metody ręczne (FTP, phpMyAdmin) oraz zaawansowane wtyczki (Duplicator, All‑in‑One WP Migration, WP STAGING), które automatyzują dużą część procesu. Zrozumienie architektury instalacji WordPressa i powiązań między bazą a systemem plików jest kluczowe, aby uniknąć utraty danych, błędów i przestojów wpływających na UX i SEO.
Podstawy migracji WordPressa
Architektura witryn WordPressa
WordPress to CMS oparty na współpracy plików aplikacji PHP z relacyjną bazą danych MySQL/MariaDB. Rdzeń (core) obsługuje logikę i panel administracyjny, a baza przechowuje wpisy, strony, komentarze, konta użytkowników oraz ustawienia wtyczek i motywów (z prefiksem tabel, domyślnie „wp_”). Migracja polega na odtworzeniu całego ekosystemu 1:1 w nowym środowisku.
Katalog wp-content jest kluczowy dla personalizacji: motywy, wtyczki i folder uploads z multimediami. Pliki rdzenia można ponownie zainstalować w tej samej wersji, ale większość metod przenosi pełną instalację, aby wiernie odwzorować środowisko.
Baza danych zawiera także serializowane tablice i bezwzględne adresy URL (m.in. w wp_options: siteurl/home, treści wpisów, widżetach). Brak poprawnej aktualizacji adresów skutkuje niedziałającymi linkami i brakującymi obrazami, nawet jeśli pliki zostały przeniesione.
Dlaczego migruje się witryny
Powody są strategiczne i techniczne: wydajność, bezpieczeństwo, koszty, skalowalność. Wolne ładowanie, przestoje przy skokach ruchu lub limity zasobów to typowe symptomy potrzeby migracji.
Istotne są też środowiska testowe (staging), gdzie bezpiecznie sprawdza się aktualizacje i modyfikacje. Zmiany „na żywo” grożą krytycznymi błędami (np. „biały ekran śmierci”).
Przy rebrandingu czy konsolidacji serwisów konieczna jest również systematyczna aktualizacja odniesień do starej domeny w bazie i konfiguracji.
Typy scenariuszy migracji
Migracje w obrębie tego samego serwera zwykle sprowadzają się do zmiany katalogu lub domeny i aktualizacji adresów URL bez żmudnego transferu danych.
Migracje między serwerami wymagają kompletnego transferu plików i bazy oraz dostosowania wersji PHP, MySQL, uprawnień plików i rozszerzeń. Skrupulatna kontrola zgodności środowiska docelowego jest krytyczna.
Instalacje multisite są bardziej złożone (wiele podwitryn, mapowanie domen, osobne tabele treści). Migrowanie pojedynczej witryny z/na multisite wymaga precyzyjnych operacji na bazie.
Przygotowanie i ocena ryzyka
Wykonywanie kopii zapasowej bieżącej witryny
Kompletne kopie zapasowe są obowiązkowe przed każdą migracją. Obejmują cały system plików oraz pełny eksport bazy MySQL. Pominięcie backupu to nieakceptowalne ryzyko utraty danych.
Do kopii bazy najczęściej używa się phpMyAdmin (Export: Quick + SQL). Przy dużych bazach włącz kompresję gzip lub bzip2.
Kopię plików wykonuje się przez FTP (np. FileZilla, WinSCP, Total Commander), pobierając cały katalog instalacji (często public_html). Alternatywnie użyj wtyczek backupowych (UpdraftPlus, BackupBuddy, VaultPress) z wysyłką do chmury.
Ocena złożoności witryny
Analiza rozmiaru bazy, liczby plików i zależności wtyczek/motywów pomaga wybrać metodę, oszacować czas i wykryć potencjalne niezgodności (np. rozszerzenia PHP, twarde ścieżki w kodzie).
Duże bazy mogą powodować timeouty. Rozważ odchudzenie bazy (rewizje, spam, dane przejściowe) oraz narzędzia wiersza poleceń.
Serwisy bogate w multimedia wymagają audytu uploadów i weryfikacji licencji premium (przeniesienie/reaktywacja kluczy).
Wybór metody migracji
Ręczna migracja daje pełną kontrolę (i niezależność od wtyczek), ale wymaga więcej czasu i wiedzy, zwiększając ryzyko błędu ludzkiego.
Wtyczki automatyzują eksport, archiwizację, import i zamianę adresów. Wersje premium dodają harmonogramy, transfer serwer‑serwer, integracje z chmurą i wsparcie multisite.
Migracje zarządzane przez hosting (np. Kinsta, SiteGround, WP Engine) minimalizują ryzyko błędów i przestojów, lecz wymagają dostępu administracyjnego i czasem dodatkowych opłat.
Ręczna metoda migracji
Eksport i zarządzanie bazą danych
Ręczny eksport daje pełną kontrolę i omija limity wtyczek. W phpMyAdmin wybierz bazę (sprawdź w wp-config.php), zakładkę Export i tryb Quick lub Custom. Przy dużych bazach włącz kompresję.
Gdy panele mają limity czasu/pamięci, użyj mysqldump z SSH. Przykładowa komenda z kompresją:
mysqldump --add-drop-table -h HOST -u USER -p DATABASE | gzip > backup.sql.gz
Przesyłanie plików przez FTP
Połącz się klientem FTP i pobierz cały katalog instalacji (zwykle public_html lub www). Zawsze weryfikuj kompletność transferu (logi FTP, rozmiary plików). Dla wygody możesz utworzyć lokalne archiwum ZIP.
Aktualizacje pliku konfiguracyjnego
W pliku wp-config.php zaktualizuj: DB_NAME, DB_USER, DB_PASSWORD, DB_HOST. W razie potrzeby tymczasowo ustaw:
define('WP_HOME','https://nowa-domena.pl');
define('WP_SITEURL','https://nowa-domena.pl');
Upewnij się, że $table_prefix odpowiada prefiksowi tabel w importowanej bazie.
Testowanie i weryfikacja
Przetestuj witrynę przed zmianą DNS (tymczasowy URL hostingu lub wpis w pliku hosts). Przykładowy wpis w systemie macOS/Linux:
sudo nano /etc/hosts
123.45.67.89 twoja-domena.pl www.twoja-domena.pl
Sprawdź logowanie do WP‑Admin, dodawanie wpisów, wysyłkę mediów, formularze i krytyczne ścieżki (np. checkout). Zmierz wydajność (TTFB, cache, zapytania DB) i porównaj ze starym środowiskiem.
Rozwiązania migracji oparte na wtyczkach
Przegląd wtyczek do migracji
Wtyczki automatyzują archiwizację plików i bazy, dbają o dane serializowane i wykonują bezpieczną zamianę URL. To redukuje ryzyko błędów typowych dla ręcznego „search & replace”.
Metodyka wtyczki Duplicator
Duplicator tworzy dwa pliki: archiwum ZIP (cała instalacja) oraz installer.php. Na serwerze docelowym wgraj te pliki i uruchom installer.php, wprowadź dane MySQL, a kreator rozpakowuje archiwum i zaktualizuje adresy.
Proces wtyczki All‑in‑One WP Migration
All‑in‑One WP Migration eksportuje stronę do pliku .wpress, który importujesz w nowej instalacji. Darmowa wersja ma limit 256 MB; większe pakiety wymagają podniesienia limitów PHP lub rozszerzenia premium.
Techniki wtyczki WP STAGING
WP STAGING tworzy klony i środowiska staging w podkatalogu lub na subdomenie, działając partiami (batch), co zwiększa niezawodność na hostingu współdzielonym. Posiada także backupy z przywracaniem jednym kliknięciem.
Aby ułatwić wybór, poniżej zestawienie kluczowych różnic między popularnymi wtyczkami:
| Wtyczka | Limit rozmiaru (free) | Obsługa multisite | Integracje z chmurą | Backup przyrostowy | Uwagi |
|---|---|---|---|---|---|
| Duplicator | Zależny od hostingu | Tak (Pro) | Tak (Pro) | Tak (Pro) | pakiet ZIP + installer.php |
| All‑in‑One WP Migration | 256 MB | Tak (dodatek) | Tak (dodatki) | Nie | prosty import/eksport .wpress |
| WP STAGING | Zależny od hostingu | Tak (Pro) | Tak (Pro) | Tak (Pro) | klony/staging + restore 1‑click |
Zarządzanie i modyfikacja bazy danych
Struktura bazy danych WordPressa
Baza obejmuje tabele treści i konfiguracji: wp_posts, wp_options, wp_postmeta, wp_users, wp_usermeta, wp_comments, taksonomie (wp_terms, wp_term_taxonomy, wp_term_relationships). Opcje siteurl/home w wp_options są kluczowe przy zmianie domeny.
Procedury eksportu
Eksport do pliku SQL zawiera polecenia CREATE TABLE i INSERT. W trybie Custom włącz „Add DROP TABLE”, by uniknąć konfliktów, oraz kompresję gzip/bzip2 dla dużych baz.
Techniki importu
Utwórz pustą bazę w panelu hostingu, przypisz użytkownika z pełnymi uprawnieniami i zachowaj UTF‑8. W phpMyAdmin wybierz bazę, przejdź do Import, wskaż plik .sql lub .gz/.bz2, a następnie uruchom import.
Po poprawnym imporcie zaktualizuj wp-config.php oraz – jeśli dotyczy – adresy WP_HOME/WP_SITEURL. W przypadku limitów panelu użyj CLI:
gunzip < backup.sql.gz | mysql -h HOST -u USER -p DATABASE
Aktualizacja adresów URL (search‑replace)
Bezwzględne linki należy zaktualizować bez uszkadzania danych serializowanych. Najbezpieczniej wykonać to przez WP‑CLI (obsługuje serializację):
wp search-replace 'https://stara-domena.pl' 'https://nowa-domena.pl' --all-tables --precise --recurse-objects
Po zmianie domeny zaktualizuj też pola siteurl i home (jeśli nie zrobiła tego wtyczka/installer).
DNS, SSL i uruchomienie produkcyjne
Planowanie propagacji DNS
Zmiana DNS wymaga czasu. Obniż TTL starej strefy (np. do 300 s) 24–48 h przed migracją, aby przyspieszyć propagację. Następnie zaktualizuj rekordy A/AAAA do nowego IP.
Skonfiguruj SSL/TLS (np. Let’s Encrypt) na nowym hostingu. Wymuś HTTPS (redirect 301) i upewnij się, że nie występują „mixed content”.
Lista kontrolna przed przełączeniem ruchu
Przed skierowaniem domeny na nowy serwer zweryfikuj poniższe elementy:
- kompletność plików (wp-content, uploads, .htaccess, wp-config.php),
- sprawność bazy (logowanie, zapis w panelu, wysyłka mediów),
- spójność URL (brak 404 i obrazów „broken”),
- wydajność (cache, TTFB, brak błędów PHP w logach),
- płatności i e‑maile transakcyjne (SMTP/API),
- mapę przekierowań 301 po zmianie struktury/domeny.
Testy po migracji i optymalizacja
Weryfikacja funkcjonalna
Przejdź przez kluczowe ścieżki użytkownika i administracji, aby potwierdzić bezbłędne działanie:
- formularze kontaktowe, wyszukiwarka, rejestracja/logowanie,
- panel WP‑Admin: dodawanie/edycja wpisów, media, ustawienia,
- wtyczki krytyczne: SEO, cache, bezpieczeństwo, e‑commerce,
- permalinki i plik .htaccess (przebuduj strukturę, jeśli trzeba),
- cron i zadania zaplanowane (wp‑cron lub systemowy CRON),
- logi błędów PHP i serwera (wyczyść ostrzeżenia/błędy).
Kontrola SEO i analityki
Zweryfikuj indeksację (robots.txt, noindex), dodaj nową właściwość domeny w narzędziach webmastera i prześlij mapę witryny. Sprawdź integracje GA/GTM i działanie pikseli reklamowych.
Najczęstsze problemy i rozwiązania
Poniżej znajdziesz typowe symptomy po migracji wraz z szybkim kierunkiem naprawy:
- białe ekrany i błędy 500 – sprawdź wersję PHP, logi błędów, wyłącz/aktywuj wtyczki,
- brak obrazów – niepełny transfer uploads lub złe uprawnienia katalogów,
- pętle logowania – niepoprawne cookie domain/HTTPS, mieszane adresy www/non‑www,
- 404 po zmianie permalinków – przebuduj strukturę linków i .htaccess,
- spowolnienia – brak cache obiektowego/optymalizacji bazy, zbyt małe limity PHP,
- e‑maile nie dochodzą – skonfiguruj SMTP/API zamiast mail() i przetestuj wysyłkę.
Krótki przewodnik po krokach (manual)
Dla czytelności streszczamy ręczną migrację w kolejnych etapach:
- Backup pełny – baza (SQL, najlepiej gzip) i pliki (FTP/ZIP);
- Eksport bazy – phpMyAdmin (Quick/Custom + Add DROP TABLE) lub
mysqldump; - Transfer plików – pobierz wp‑content i resztę instalacji, zweryfikuj integralność;
- Utwórz bazę – nowa DB + użytkownik z uprawnieniami, ustaw UTF‑8;
- Import bazy – phpMyAdmin lub CLI
mysql < backup.sql; - Konfiguracja – zaktualizuj wp-config.php (DB_NAME/USER/PASSWORD/HOST);
- Search‑replace –
wp search-replacedla domen/ścieżek bez psucia serializacji; - Testy – hosts/tymczasowy URL, sprawdź kluczowe funkcje i wydajność;
- DNS + SSL – obniż TTL, przełącz rekordy, włącz HTTPS i przekierowania 301;
- Monitoring – logi, uptime, błędy 404, indeksacja i wydajność.
Rekomendacje dobrych praktyk
Warto przyjąć następujące zasady podczas planowania i realizacji migracji:
- pracuj na stagingu i oknach serwisowych o niskim ruchu,
- utrzymuj możliwość szybkiego rollbacku (ostatni backup + plan przywracania),
- udokumentuj wersje PHP/MySQL, rozszerzenia i ustawienia serwera,
- zabezpiecz dostęp (klucze SSH/SFTP, hasła, dwuetapowa weryfikacja),
- włącz cache (stron/obiektu) i CDN po starcie,
- po migracji aktualizuj motywy/wtyczki i usuń zbędne elementy.
Uwaga końcowa
Największym wrogiem udanej migracji jest pośpiech — plan, kopie zapasowe i testy „na chłodno” minimalizują ryzyko i skracają przestój do niezbędnego minimum.

