Jak migrować stronę WordPress na inny serwer

Migracja WordPressa na nowy hosting nie musi oznaczać przestoju, błędów i nerwów. Dobrze zaplanowany proces krok po kroku pozwala przenieść pliki, bazę, adresy URL i ustawienia tak, by użytkownicy nawet nie zauważyli zmiany. Poniższa instrukcja prowadzi przez przygotowanie, wybór metody, działanie ręczne lub z wtyczkami, testy oraz płynne przełączenie ruchu. Zadbamy o wydajność, bezpieczeństwo i spójność, tak aby Twoja strona nadal działała szybko i bezproblemowo na nowym serwerze.

Przygotowanie do przenosin

Ocena środowiska i wymagań

Zanim zrobisz pierwszy krok, sprawdź wymagania techniczne Twojej strony: wersję PHP, limity pamięci, moduły, kompresję GZIP, dostępność SSH, wersję MySQL/MariaDB oraz konfigurację serwera www. Zanotuj rozmiar katalogu wp-content (szczególnie uploads), liczbę wtyczek i motywów, cron jobs oraz integracje (płatności, poczta, webhooki). Zweryfikuj ograniczenia nowego hostingu w zakresie czasu wykonywania skryptów i limitów przesyłania plików.

Pełny backup i plan awaryjny

Wykonaj kopię zapasową plików i bazy. Najlepiej zrób to dwiema różnymi metodami (np. panel hostingu i narzędzie zewnętrzne). Sprawdź możliwość szybkiego odtworzenia na środowisku testowym. Przechowuj kopie w co najmniej dwóch lokalizacjach (lokalnie i w chmurze). Zapisz wersje kluczowych pluginów, motywu i WordPressa – powrót do stabilnej konfiguracji bywa szybszy niż debugowanie pośpiesznych aktualizacji.

Porządki przed migracją

Zaktualizuj WordPressa, motywy i wtyczki do stabilnych wersji. Usuń nieużywane rozszerzenia oraz stare kopie motywów. Opróżnij kosz wpisów, media, rewizje i transients, żeby zmniejszyć rozmiar paczki. Jeśli to sklep, zaplanuj okno serwisowe przy niskim ruchu, zatrzymaj zmiany treści (tryb konserwacji) i poinformuj zespół o planie przełączenia.

Wybór metody przeniesienia

Masz dwie główne ścieżki: przenosiny ręczne albo narzędzia automatyzujące. Ręczna metoda daje pełną kontrolę, omija limity paneli i lepiej sprawdza się przy dużych instalacjach. Wtyczki i skrypty ułatwiają mniej technicznym osobom cały proces, ale mogą mieć ograniczenia rozmiaru i czasu działania. W tym tekście pokazuję obie drogi, tak byś mógł dobrać narzędzie do potrzeb projektu.

Narzędzia, które warto mieć

  • Panel hostingu: menedżer plików, phpMyAdmin, kreator baz
  • FTP/SFTP lub SSH do transferu plików
  • WP-CLI do operacji na bazie i wyszukiwaniu/zmianie URL
  • Rsync i tar/gzip do szybkiego kopiowania na SSH
  • Edytor do plików konfiguracyjnych i logów

Migracja ręczna krok po kroku

1. Eksport bazy i zrzut plików

Na starym serwerze wykonaj zrzut bazy (mysqldump, WP-CLI lub phpMyAdmin). Unikaj formatu, który „łamie” dane serializowane – standardowy SQL jest bezpieczny. Wyeksportuj całą bazę lub przynajmniej tabele z prefiksem WordPressa. Równolegle skopiuj katalog strony, szczególnie wp-content (plugins, themes, uploads). Jeśli masz SSH, skompresuj katalog (tar -czf) i pobierz archiwum zamiast tysięcy małych plików.

2. Transfer plików na nowy serwer

Prześlij archiwum na nowy hosting przez SFTP lub rsync. Rozpakuj we właściwym katalogu docelowym (np. public_html lub wskazany przez panel). Zadbaj o poprawne uprawnienia do plików i katalogów (najczęściej 644/755) oraz właściciela (chown), by uniknąć błędów zapisu. Upewnij się, że plik index.php i .htaccess (lub reguły serwera Nginx) są na miejscu.

3. Utworzenie bazy i import danych

Na nowym serwerze utwórz nową bazę i użytkownika z hasłem, nadaj pełne uprawnienia. Zaimportuj plik SQL ze starej instalacji – przez WP-CLI, mysql lub phpMyAdmin. Dla dużych zrzutów preferuj narzędzia konsolowe; panele www często mają limity. Jeśli występują błędy znaków, sprawdź kodowanie i domyślny collation w bazie. Zadbaj, by prefiksy tabel (wp_ lub niestandardowe) były zgodne z konfiguracją WordPressa.

4. Konfiguracja wp-config.php

Edytuj wp-config.php: wprowadź nazwę bazy, użytkownika, hasło i host bazy. Jeśli nowy dostawca wymaga innego hosta (np. 127.0.0.1 vs. nazwa serwera), zaktualizuj go. Sprawdź klucze bezpieczeństwa, prefiks tabel i stałe wymuszające debug lub cache. W środowiskach stagingowych można dodać blokadę indeksowania przez wyszukiwarki (Disallow w robots.txt i ustawienia w panelu WordPressa).

5. Aktualizacja adresów i danych serializowanych

Po imporcie zaktualizuj adres URL strony i adres WordPressa (siteurl i home). Użyj WP-CLI (wp search-replace) lub dedykowanych narzędzi wspierających dane serializowane, aby zamienić stary domenowy adres na nowy. Pamiętaj o adresach w widgetach, polach ACF, shortcodach i linkach w treści. Jeśli zmieniasz protokół na HTTPS, uwzględnij to w masowej podmianie.

6. Reguły przepisywania i permalinki

Po uruchomieniu na nowym hostingu wejdź do Ustawienia → Bezpośrednie odnośniki i zapisz strukturę, by odświeżyć reguły. Zweryfikuj .htaccess (Apache) lub config Nginx i dopisz konieczne mapowania. Poprawne permalinki są kluczem do SEO i działania odnośników wewnętrznych, API i zasobów multimedialnych.

7. Testy na pliku hosts i kontrola błędów

Zanim przełączysz ruch, użyj pliku hosts, aby „podszyć się” lokalnie pod nowy adres i zobaczyć stronę z nowego serwera. Sprawdź front, logowanie do wp-admin, procesy formularzy, płatności, wysyłkę maili, generowanie miniaturek i CRON (np. wc_cron). Przejrzyj logi błędów PHP i serwera, włącz WP_DEBUG_LOG na czas testów i napraw zgłoszone problemy.

Przenosiny z użyciem wtyczek i WP-CLI

1. Wtyczki do migracji – kiedy warto

Popularne wtyczki (Duplicator, All-in-One WP Migration, UpdraftPlus, Migrate Guru) automatyzują archiwizację i odtwarzanie. Sprawdzają się przy małych i średnich stronach, gdy nie masz dostępu SSH albo chcesz szybko sklonować witrynę na staging. Zwróć uwagę na limity rozmiaru uploadu i maksymalny czas wykonywania skryptów – przy większych serwisach lepiej przejść na konsolę lub metodę mieszaną.

2. Przykładowy przebieg z Duplicatorem

  • Na starym hostingu generujesz paczkę (archive) i installer.php.
  • Pobierasz oba pliki i umieszczasz je w katalogu docelowym nowego hostingu.
  • Otwierasz w przeglądarce installer.php i podajesz dane nowej bazy.
  • Instalator rozpakowuje pliki, importuje bazę i podejmuje próbę aktualizacji URL.
  • Logujesz się do wp-admin i finalizujesz konfigurację, zapisując odnośniki.

3. All-in-One WP Migration – obejście limitów

Narzędzie eksportuje stronę do jednego pliku i pozwala wczytać go na nowym hostingu. Przy większych paczkach konieczne jest zwiększenie limitów uploadu w PHP lub użycie dodatków premium. Alternatywnie zastosuj import z dysku przez FTP i wykrycie pliku w katalogu wtyczki. Jeśli transfer wisi, podziel uploady: przenieś ręcznie katalog uploads, a resztę zrób wtyczką.

4. WP-CLI – szybkie komendy

  • Eksport bazy: wp db export backup.sql
  • Import bazy: wp db import backup.sql
  • Zmiana adresów: wp search-replace stary-adres.pl nowy-adres.pl –all-tables
  • Opróżnianie cache: wp cache flush
  • Aktualizacje: wp core update, wp plugin update –all

WP-CLI jest stabilne, szybkie i lepiej znosi duże zbiory danych niż panele www. Dodatkowo pozwala pisać skrypty do powtarzalnych migracji, co skraca czas kolejnych wdrożeń.

5. Bezpieczeństwo i spójność danych

Chroń paczki migracyjne hasłem, usuwaj instalatory po zakończeniu przenosin i nie zostawiaj katalogów tymczasowych w webroot. Dane uwierzytelniające do nowej bazy przechowuj poza repozytorium. Jeżeli w czasie migracji treści nadal się zmieniają (np. zamówienia), zrób finalny inkrementalny zrzut różnicowy i wykonaj krótkie okno mrożenia edycji, by uniknąć rozjechania danych.

Przełączenie na nowy serwer i kontrola jakości

1. Ostatnie testy i checklisty

Przed przełączeniem przejdź checklistę: logowanie, rejestracja, koszyk, płatności, wyszukiwanie, formularze, komentarze, mapy, API, wtyczki SEO, generowanie sitemap, odczyty zewnętrznych usług, CRON (publikacje, e-maile), generatory cache, minifikacja CSS/JS i lazy-load obrazów. Zmniejsz TTL rekordów DNS dzień wcześniej, by skrócić propagację. Sprawdź błędy 404 i przekierowania 301/302.

2. Ustawienia DNS i propagacja

Gdy wszystko działa na nowym hoście, zaktualizuj rekord A (lub CNAME) domeny na adres nowego serwera. Niskie TTL (np. 300 s) skracają propagację. Monitoruj, czy ruch stopniowo kieruje się na nowe IP. W przypadku wielu subdomen pamiętaj o ich indywidualnych rekordach. Jeśli używasz zewnętrznego proxy (np. CDN), zaktualizuj również wskazania w panelu dostawcy.

3. Certyfikat SSL i wymuszenie HTTPS

Na nowym hostingu wystaw certyfikat Let’s Encrypt lub wgraj istniejący. Ustaw przekierowanie 301 z HTTP na HTTPS. Zaktualizuj adresy w bazie, jeśli wcześniej działałeś na HTTP. Sprawdź mieszane treści (mixed content) – absolutne linki do grafik, CSS i JS muszą wskazywać HTTPS. W przypadku reverse proxy pamiętaj o nagłówkach X-Forwarded-Proto, by WordPress prawidłowo wykrywał protokół.

4. Wydajność, CDN i warstwa cache

Po migracji odśwież pamięć podręczną: wtyczkową i serwerową. Włącz lub skonfiguruj mechanizmy cache na nowym hostingu (page cache, object cache). Rozważ CDN dla statycznych zasobów. Dostosuj reguły kompresji i nagłówki Cache-Control/Expires. Jeżeli wcześniej miałeś inne moduły (np. Redis, Opcache), upewnij się, że są aktywne i poprawnie skonfigurowane. Testuj TTFB i CLS/LCP w narzędziach wydajnościowych.

5. Poczta, integracje i zewnętrzne usługi

Zweryfikuj wysyłkę e-maili z serwera: ustaw SMTP, SPF, DKIM, DMARC. Upewnij się, że webhooki, bramki płatności, integracje ERP/CRM mają zaktualizowane endpointy. Sprawdź klucze API i uprawnienia wtyczek korzystających z usług zewnętrznych. Jeśli przeniosłeś również pocztę, przetestuj skrzynki, aliasy i autorespondery, aby uniknąć utraty wiadomości po przełączeniu ruchu.

6. SEO i mapowanie adresów

Gdy domena się zmienia, przygotuj plan przekierowań 301 dla wszystkich kluczowych adresów. Zaktualizuj mapę witryny, prześlij ją w Google Search Console, ustaw preferowany adres i sprawdź indeksowanie. Przeanalizuj logi crawl, napraw błędy 404, upewnij się, że kanoniczne adresy prowadzą do właściwych podstron. Pamiętaj o odświeżeniu pliku robots.txt, jeśli w stagingu był zablokowany.

7. Sprzątanie i monitoring

Usuń instalatory, pliki tymczasowe i stare debug logi. Zarchiwizuj kopie sprzed migracji i przechowuj je w bezpiecznej lokalizacji przez uzgodniony czas. Włącz monitoring uptime i alerty błędów (np. przez logi serwera i narzędzia APM). Przez kilka dni sprawdzaj obciążenie CPU/RAM, czas odpowiedzi i błędy PHP. Jeśli wykryjesz skoki obciążenia, zoptymalizuj wtyczki i zapytania do bazy.

Specjalne przypadki i dobre praktyki

1. Sklepy i serwisy dynamiczne

Dla WooCommerce i membershipów zaplanuj tzw. freeze content: zamknij koszyk na 10–30 minut podczas finalnego przełączenia, wykonaj różnicowy zrzut bazy ze zmianami od czasu pierwszej kopii i zaimportuj go na nowy serwer bezpośrednio przed aktualizacją DNS. Zweryfikuj kolejkę maili transakcyjnych, statusy zamówień i webhooks do bramek płatności.

2. Wielojęzyczność, multisite, custom tables

W instalacjach multisite pamiętaj o domenach/subdomenach dla każdego bloga, oddzielnych uploadach i mapowaniu adresów. Wtyczki wielojęzyczne (WPML/Polylang) przechowują dane w wielu tabelach – upewnij się, że search-replace objął je wszystkie. Jeśli korzystasz z niestandardowych tabel, sprawdź, czy eksport/import nie pominął ich przez filtrację prefiksów.

3. Serwery bez paneli i mikrooptymalizacje

Na serwerach VPS z SSH użyj rsync do inkrementalnego kopiowania i mysqldump z parametrami ograniczającymi blokady. Skonfiguruj PHP-FPM zgodnie z dostępną pamięcią, zoptymalizuj MySQL (buffer pool, slow query log) i logrotate. Rozważ staging z automatycznym seedowaniem danych i skrypty do powtarzalnych wdrożeń (Makefile lub prosty bash), by skrócić czas przyszłych migracji.

4. Zmiana struktury mediów

Jeżeli zmieniasz lokalizację lub sposób przechowywania mediów (np. z lokalnych uploadów na S3/Spaces), wykonaj osobny etap: synchronizację plików, podmianę URL w bazie oraz aktualizację wtyczki offload. Przetestuj generowanie miniaturek i dostępność plików historycznych. Ustal politykę wersjonowania i retencji, aby nieusunięte stare zasoby nie podnosiły kosztów i nie zaśmiecały CDN.

5. Audyt bezpieczeństwa po migracji

Zmień wszystkie hasła (baza, FTP/SFTP, użytkownicy admin), zaktualizuj klucze w wp-config i ogranicz dostęp do panelu logowania (rate limit, CAPTCHA, 2FA). Sprawdź uprawnienia plików i katalogów, wyłącz wylistowanie katalogów, włącz WAF lub reguły ModSecurity. Przejrzyj logi autoryzacji i skonfiguruj alerty przy próbach siłowych.

6. Gdy domena zostaje ta sama

Nawet jeśli przenosisz stronę bez zmiany domeny, zaplanuj okno, w którym zawartość nie będzie edytowana, by uniknąć rozdwojenia treści. Zastosuj plik hosts do testów i finalny „delta import” danych zmienionych od pierwszego zrzutu. Po przełączeniu przywróć edycję i sprawdź, czy wszystkie komentarze, zamówienia i rejestracje znalazły się w nowej bazie.

7. Najczęstsze problemy i szybkie rozwiązania

  • Biała strona: sprawdź błędy PHP, wyłącz tymczasowo podejrzane wtyczki, podnieś memory_limit.
  • Brak miniaturek: upewnij się, że katalog uploads i ścieżki są poprawne; wygeneruj miniatury ponownie.
  • Logowanie przekierowuje w kółko: sprawdź cookies i adresy siteurl/home, wymuś HTTPS tylko po aktywnym certyfikacie.
  • 404 po przenosinach: zapisz ponownie odnośniki, sprawdź reguły w .htaccess/Nginx.
  • Wolne działanie: włącz object cache, zoptymalizuj zapytania, przejrzyj cron i harmonogramy zadań.

Na koniec zwróć uwagę na drobne, ale kluczowe detale: poprawne typy MIME, kompresję, brak zbędnych skryptów na front-endzie i aktualne mapy adresów. To często różnica między „działa” a „działa świetnie”.

Cały proces to nic innego jak dobrze zaplanowana migracja: kopia, przeniesienie, podmiana adresów, testy, przełączenie i optymalizacja. Pamiętaj o relacji między plikami a baza danych, która zapisuje większość konfiguracji i treści. Zadbaj o spójność, odstrzel wąskie gardła i przeprowadź kontrolę po wdrożeniu. Dzięki temu zmiana serwera będzie dla użytkowników niezauważalna, a dla Ciebie – przewidywalna i bezpieczna.

Drobna lista kontrolna do szybkiego użytku:

  • Kopia plików i bazy + test odtwarzania
  • Przeniesienie plików i konfiguracji
  • Import SQL i search-replace adresów
  • Weryfikacja logów błędów
  • HTTPS i certyfikat, przekierowania 301
  • Cache i CDN, testy wydajności
  • Aktualizacja rekordów DNS i monitoring

Aby uniknąć niespodzianek, trzymaj się checklist, zapisuj napotkane problemy i rozwiązania. Z czasem wypracujesz własny szablon procesu, który skróci kolejne wdrożenia.

Po migracji zachowaj minimalny zestaw narzędzi do diagnostyki: dostęp do logów, WP-CLI, prosty skrypt do sprawdzania statusów, oraz monitor uptime. Regularnie weryfikuj spójność kopii zapasowych i odświeżaj klucze w konfiguracji. Jeśli strona korzysta z pamięci podręcznej, pamiętaj o cyklicznym czyszczeniu cache i reindeksacji wyszukiwarek. Dzięki temu nowa infrastruktura pozostanie stabilna i szybka na dłużej.

< Powrót

Zapisz się do newslettera


Zadzwoń Napisz