Jak przenieść stronę WordPress na inny serwer – krok po kroku

Migracja strony WordPress polega na przeniesieniu całej witryny – plików, bazy danych i konfiguracji – z jednego serwera na inny. Innymi słowy, jest to proces zmiany środowiska hostingowego, na którym działa nasza strona internetowa. Migrację warto przeprowadzić w wielu sytuacjach. Na przykład, gdy obecny hosting nie spełnia oczekiwań (strona działa zbyt wolno lub często występują awarie), kiedy kończy się abonament u dotychczasowego dostawcy i znaleźliśmy lepszą ofertę, lub gdy potrzebujemy więcej zasobów (mocy obliczeniowej, miejsca na dysku) dla rozwijającej się strony. Często również migracja jest konieczna, gdy przenosimy stronę z serwera deweloperskiego (lokalnego lub testowego) na serwer produkcyjny dostępny publicznie w internecie.

Warto pamiętać, że przeniesienie strony to proces, który należy starannie zaplanować, aby zminimalizować ewentualne przestoje strony i uniknąć utraty danych. Migracja WordPressa może wydawać się skomplikowana dla początkujących, ale przy odpowiednim przygotowaniu i instrukcjach krok po kroku jest jak najbardziej do wykonania. W tym artykule omówimy zarówno metody manualne, jak i automatyczne (za pomocą wtyczek) przenoszenia strony WordPress na inny serwer, a także kwestie związane z przenoszeniem domeny i potencjalnymi problemami technicznymi.

Dlaczego wybór nowego serwera ma znaczenie? Otóż jakość i parametry nowego hostingu bezpośrednio wpływają na działanie Twojej strony po migracji. Lepszy serwer może oznaczać szybsze wczytywanie witryny, większą stabilność i dostępność, a także lepsze wsparcie techniczne czy dodatkowe funkcje (np. automatyczne kopie zapasowe, certyfikat SSL, narzędzia cache). Z kolei przeniesienie strony na serwer o gorszych parametrach niż poprzedni może spowodować spowolnienie działania strony lub inne ograniczenia (np. mniejszy limit bazy danych, starsza wersja PHP). Dlatego przed migracją warto dobrze rozważyć wybór nowego dostawcy hostingu – sprawdzić wymagania techniczne WordPressa (wersję PHP, MySQL/MariaDB, obsługę niezbędnych rozszerzeń PHP), ofertę wsparcia, limity transferu, a także opinie innych użytkowników. Wybór odpowiedniego serwera to klucz do bezproblemowej migracji i dalszego, sprawnego funkcjonowania strony WordPress.

Przygotowanie do migracji

Zanim przystąpimy do właściwej migracji, należy odpowiednio się przygotować. W tej fazie kluczowe jest zadbanie o aktualną kopię zapasową strony oraz upewnienie się, że docelowy serwer spełnia wszystkie niezbędne wymagania techniczne. Dzięki dobremu przygotowaniu zminimalizujemy ryzyko błędów podczas przenosin i skrócimy czas ewentualnej niedostępności witryny.

Backup strony i bazy danych (jak wykonać ręcznie i automatycznie?)

Pierwszym krokiem przed migracją jest wykonanie pełnej kopii zapasowej strony – zarówno plików WordPress (motywy, wtyczki, multimedia, wszystkie pliki w katalogu WordPress), jak i bazy danych MySQL, która zawiera zawartość (posty, strony, użytkowników, ustawienia itd.). Posiadanie aktualnego backupu to zabezpieczenie na wypadek, gdyby coś poszło nie tak podczas migracji. Backup można wykonać na dwa sposoby: manualnie lub automatycznie za pomocą wtyczek.

Backup manualny:
Aby ręcznie wykonać kopię zapasową, należy najpierw pobrać wszystkie pliki strony. Można to zrobić, łącząc się z serwerem przez FTP (np. za pomocą klienta FTP takiego jak FileZilla lub Total Commander) i kopiując cały katalog WordPress (zazwyczaj zawartość katalogu public_html lub www na serwerze). Ważne jest, aby skopiować wszystkie foldery (w tym wp-content, zawierający wgrane media, motywy i wtyczki, oraz pliki WordPressa) oraz pliki znajdujące się w głównym katalogu instalacji (np. wp-config.php, .htaccess i inne). Następnie należy wykonać eksport bazy danych. Jeśli masz dostęp do panelu administracyjnego serwera (np. phpMyAdmin w cPanelu lub innym panelu), zaloguj się do niego, wybierz odpowiednią bazę danych WordPressa i skorzystaj z opcji Eksport (zazwyczaj można pozostawić domyślne ustawienia formatowania SQL). Spowoduje to pobranie pliku .sql z zawartością bazy danych. Alternatywnie, jeśli nie masz phpMyAdmin, można użyć narzędzia wiersza poleceń (np. polecenie mysqldump na serwerze) do wygenerowania pliku z bazą danych. Upewnij się, że zarówno paczka plików strony, jak i plik bazy danych są bezpiecznie zapisane na twoim komputerze lub innym bezpiecznym miejscu.

Backup automatyczny (przy pomocy wtyczek):
Jeżeli nie czujesz się pewnie w wykonywaniu kopii ręcznie, możesz skorzystać z wtyczek WordPress, które ułatwiają tworzenie backupów. Popularne wtyczki do tworzenia kopii zapasowych to m.in. UpdraftPlus, BackWPup czy Duplicator. Po zainstalowaniu takiej wtyczki w obecnej witrynie możesz jednym kliknięciem utworzyć pełną kopię strony. Przykładowo, wtyczka UpdraftPlus pozwala na utworzenie backupu plików i bazy danych oraz zapisanie go w wybranej lokalizacji (np. w chmurze Dropbox, Google Drive lub na serwerze FTP). Z kolei Duplicator tworzy pakiet instalacyjny zawierający pliki strony oraz zrzut bazy danych, co przyda się w dalszym procesie migracji. Pamiętaj jednak, że po wykonaniu automatycznego backupu również powinieneś pobrać wygenerowane pliki kopii zapasowej na swój komputer – tak, aby mieć je pod ręką, gdy będziesz przenosić stronę na nowy serwer.

Sprawdzenie wymagań technicznych nowego serwera

Kolejnym elementem przygotowań jest upewnienie się, że nowy serwer (nowy hosting) spełnia wymagania potrzebne do działania WordPressa oraz że jest gotowy na przyjęcie Twojej strony. Warto sprawdzić następujące kwestie:

  • Wersja PHP i bazy danych: WordPress ma określone wymagania co do minimalnej wersji PHP (np. WordPress 6.x wymaga PHP 7.4 lub nowszego, zalecany jest PHP 8+) oraz MySQL/MariaDB. Zaloguj się na nowy serwer lub sprawdź w jego dokumentacji, jaką wersję PHP oferuje i czy w razie potrzeby możesz ją zmienić na wyższą. Upewnij się także, że serwer ma zainstalowaną bazę danych MySQL lub MariaDB w wersji kompatybilnej z WordPressem (np. MySQL 5.7+ lub MariaDB 10.3+).
  • Miejsce na dysku i limity: Zweryfikuj, czy na nowym hostingu jest wystarczająco dużo miejsca, aby pomieścić całą Twoją witrynę (pliki + baza danych). Sprawdź limity wielkości bazy danych, maksymalny rozmiar pojedynczego pliku jaki możesz wgrać (limit upload, co może mieć znaczenie przy imporcie bazy przez phpMyAdmin lub wtyczkę) oraz ewentualne ograniczenia w liczbie plików.
  • Dostęp do narzędzi: Upewnij się, że masz dostęp do panelu zarządzania bazami danych (phpMyAdmin lub inny) na nowym serwerze, albo że możesz utworzyć bazę danych i użytkownika bazy. Sprawdź dostęp do FTP/SFTP, abyś mógł wgrać pliki strony na nowy serwer. Jeśli korzystasz z konkretnego panelu hostingowego (np. cPanel, Plesk, DirectAdmin), zapoznaj się z nim – gdzie tworzy się bazy, konta użytkowników bazy, gdzie umieszczać pliki strony itp.
  • Domena i SSL: Jeśli przenosisz również domenę lub wskazujesz domenę na nowy serwer, upewnij się, że nowy hosting pozwala podpiąć tę domenę i że możesz skonfigurować dla niej certyfikat SSL (certyfikat SSL jest ważny, jeśli Twoja strona działa na HTTPS). Wiele hostingów oferuje automatyczny Let’s Encrypt – warto sprawdzić, czy trzeba coś włączyć, aby certyfikat zadziałał po migracji.
  • Inne ustawienia: Jeżeli Twoja strona wymaga niestandardowych ustawień (np. specjalnych modułów PHP, bibliotek, określonych wersji oprogramowania), zweryfikuj, czy nowy serwer to zapewnia. Warto też sprawdzić, czy nowy serwer nie ma ustawionych restrykcyjnych zabezpieczeń, które mogłyby blokować działanie niektórych wtyczek (czasem zabezpieczenia serwera mogą np. blokować skrypty generujące duże obciążenie).

Dokonanie tych sprawdzeń przed migracją pozwoli uniknąć sytuacji, w której po przeniesieniu danych strona nie działa z powodu niespełnionych wymagań lub braku dostępu do potrzebnych funkcji. Jeśli nowy serwer jest gotowy i skonfigurowany pod WordPressa, możemy przejść do właściwego procesu przenoszenia strony.

Manualna migracja strony WordPress

Metoda manualna polega na samodzielnym skopiowaniu wszystkich elementów strony i odtworzeniu ich na nowym serwerze. Poniżej przedstawiamy poszczególne kroki takiego procesu krok po kroku.

Eksport bazy danych MySQL

Pierwszym etapem jest wyeksportowanie bazy danych WordPressa ze starego serwera. Baza danych zawiera całą treść Twojej strony (posty, komentarze, ustawienia itp.), więc jest krytycznym elementem migracji. Aby dokonać eksportu bazy:

  1. Zaloguj się do narzędzia do zarządzania bazą danych na starym serwerze. Najczęściej będzie to phpMyAdmin (dostępny w panelu hostingu). Alternatywnie, możesz użyć innego narzędzia bazodanowego lub polecenia w konsoli (np. mysqldump, jeśli masz dostęp SSH).
  2. Wybierz odpowiednią bazę danych przypisaną do Twojej strony WordPress. Jeśli na serwerze jest wiele baz, upewnij się, że wybierasz tę właściwą (jej nazwę znajdziesz np. w pliku wp-config.php w zmiennej DB_NAME).
  3. Użyj opcji eksportu – w phpMyAdmin znajdziesz zakładkę „Export” (Eksport). Zaznacz wszystkie tabele bazy danych (domyślnie powinny być zaznaczone) i wybierz format SQL. Z reguły standardowe ustawienia eksportu wystarczą (szybki eksport w formacie SQL). Rozpocznij eksport i pobierz wygenerowany plik .sql na swój komputer.
  4. Sprawdź wielkość i integralność pliku – upewnij się, że plik SQL nie jest podejrzanie mały (co mogłoby sugerować, że nie wszystkie dane zostały wyeksportowane). Możesz otworzyć plik w edytorze tekstowym i sprawdzić, czy wygląda na kompletny (np. zawiera wpisy z tabeli wp_posts, wp_options itd.).

Jeśli nie masz phpMyAdmin, a masz dostęp SSH do serwera, możesz wyeksportować bazę, wykonując komendę:

bashKopiujmysqldump -u nazwa_uzytkownika -p nazwa_bazy_danych > backup.sql

Po wywołaniu komendy podaj hasło do bazy danych, a narzędzie utworzy plik backup.sql ze zrzutem bazy. Taki plik należy potem pobrać na swój komputer (np. przez SCP lub SFTP).

Przenoszenie plików strony przez FTP

Kolejnym krokiem jest przeniesienie plików strony WordPress ze starego serwera na nowy. WordPress składa się z wielu plików: samego rdzenia WordPressa (core), plików motywów, wtyczek, przesłanych mediów (obrazków, dokumentów) oraz dodatkowych plików konfiguracyjnych. Aby skopiować pliki:

  1. Połącz się ze starym serwerem przez FTP/SFTP. Użyj do tego klienta FTP (np. FileZilla, WinSCP, Total Commander lub inny). Dane dostępu FTP (host, login, hasło) znajdziesz w panelu hostingowym starego dostawcy.
  2. Zlokalizuj katalog z instalacją WordPressa. Często jest to katalog public_html, htdocs lub www. W środku powinieneś zobaczyć pliki takie jak wp-config.php, wp-login.php, foldery wp-content, wp-admin, wp-includes itp. To potwierdza, że jesteś w odpowiednim miejscu.
  3. Pobierz wszystkie pliki na dysk lokalny. Najlepiej zaznaczyć cały katalog WordPress (oraz jego podkatalogi) i skopiować na swój komputer. Proces ten może potrwać kilka minut (w zależności od wielkości strony i szybkości łącza). Upewnij się, że skopiowały się wszystkie pliki. Częstym błędem jest pominięcie plików ukrytych (np. plik .htaccess jest plikiem ukrytym – w kliencie FTP trzeba mieć włączone pokazywanie plików ukrytych, aby go zobaczyć i skopiować).
  4. Przygotuj pliki do wgrania na nowy serwer. Jeśli masz możliwość, możesz spakować pobrane pliki do jednego archiwum (ZIP) – to czasem ułatwia wgrywanie na nowy serwer (jedno duże przesłanie i rozpakowanie na serwerze jest szybsze niż setki małych plików przez FTP). Jednak jeśli nie masz takiej opcji, możesz również przesłać je po prostu przez FTP na nowy serwer, plik po pliku.

Gdy masz już lokalną kopię plików, pora przenieść je na nowy serwer:

  1. Połącz się z nowym serwerem przez FTP/SFTP. Użyj danych FTP nowego hostingu (które powinieneś otrzymać po założeniu konta hostingowego). Na nowym serwerze również znajdź katalog przeznaczony na strony (np. początkowo może być pusty katalog public_html lub inny wskazany w dokumentacji hostingu).
  2. Wgraj pliki strony na nowy serwer. Skopiuj całą zawartość swojej strony (wszystkie pliki i foldery WordPressa) do katalogu na nowym hostingu. Upewnij się, że struktura katalogów jest zachowana – tzn. pliki WordPressa (takie jak index.php, wp-config.php itd.) są w głównym katalogu witryny na nowym serwerze, a katalog wp-content wraz z zawartością (uploads, plugins, themes) również został poprawnie przeniesiony.
  3. Sprawdź, czy wszystkie pliki się wgrały. Porównaj rozmiar katalogu lokalnego z plikami strony z rozmiarem katalogu na serwerze, by upewnić się, że nic nie brakuje. Jeżeli pominąłeś archiwizację i przesyłasz pliki pojedynczo, istnieje ryzyko, że niektóre pliki mogły się nie skopiować (np. z powodu przerwania połączenia). W razie wątpliwości spróbuj ponownie przesłać brakujące elementy.

Edycja pliku wp-config.php

Po przeniesieniu plików, ale przed uruchomieniem strony na nowym serwerze, musisz dostosować plik konfiguracyjny WordPressa, czyli wp-config.php. Ten plik zawiera informacje o połączeniu z bazą danych i kilka innych ustawień, które mogą wymagać aktualizacji w nowym środowisku.

Znajdź wśród wgranych plików na nowym serwerze plik wp-config.php (powinien być w głównym katalogu WordPressa). Otwórz go w edytorze tekstowym (na kopii lokalnej lub poprzez edycję pliku na serwerze, jeżeli panel na to pozwala). W pliku tym najważniejsze sekcje do zmiany to:

  • DB_NAME, DB_USER, DB_PASSWORD: Te trzy stałe definiują nazwę bazy danych, nazwę użytkownika bazy oraz hasło do bazy danych. Musisz je zmienić na te utworzone na nowym serwerze. Zanim to zrobisz, upewnij się, że na nowym hostingu stworzyłeś bazę danych i użytkownika (w panelu hostingu zwykle jest sekcja MySQL, gdzie można dodać nową bazę i użytkownika oraz nadać mu prawa do tej bazy). Wpisz odpowiednio nowe dane w wp-config.php.
  • DB_HOST: Domyślnie w większości przypadków jest to localhost (serwer baz danych lokalny względem serwera WWW). Jednak u niektórych dostawców hostingu ten adres może być inny (np. nazwa hosta bazy danych może mieć postać mysql.nazwahostingu.pl lub IP serwera bazy). Sprawdź w dokumentacji hostingu lub panelu, jaki adres hosta MySQL zastosować. Jeśli jest inny, zaktualizuj wartość stałej DB_HOST.
  • Prefiks tabel (table_prefix): Zazwyczaj nie trzeba tego zmieniać podczas migracji, ponieważ przenosimy tę samą bazę z tym samym prefiksem. Jeśli jednak na nowym serwerze planujesz użyć innego prefiksu dla tabel (co raczej się nie zdarza przy migracji, chyba że masz specjalne powody), upewnij się, że prefiks w wp-config.php zgadza się z prefiksem tabel w zaimportowanej bazie.
  • Klucze zabezpieczeń, adresy URL: Pozostałe ustawienia w wp-config.php zazwyczaj nie wymagają zmian. Jeśli jednak zmieniasz także domenę witryny przy migracji, możesz tymczasowo ustawić w wp-config.php stałe WP_HOME i WP_SITEURL z nowym adresem URL, aby strona poprawnie się wyświetlała na nowej domenie (więcej o migracji domeny w dalszej części artykułu).

Po edycji wp-config.php zapisz zmiany i zamknij plik. Teraz WordPress na nowym serwerze powinien być skonfigurowany do połączenia z nową bazą danych.

Import bazy danych na nowym serwerze

Mając już utworzoną (pustą) bazę danych na nowym serwerze i skonfigurowany plik wp-config.php, kolejnym krokiem jest import danych do tej bazy, czyli wgranie zawartości Twojej starej strony (postów, użytkowników, itp.) do nowej bazy danych.

Aby zaimportować bazę danych na nowym serwerze:

  1. Otwórz narzędzie do zarządzania bazami danych na nowym hostingu (np. phpMyAdmin lub inne dostępne). Zaloguj się danymi nowej bazy (nazwą użytkownika i hasłem, o ile wymagane, lub poprzez panel).
  2. Upewnij się, że wybrana jest właściwa, świeżo utworzona baza danych. Nowa baza powinna być pusta (bez tabel).
  3. Wybierz opcję Import. W phpMyAdmin jest zakładka „Import”. Kliknij „Wybierz plik” i wskaż plik .sql z eksportem starej bazy danych (ten, który wcześniej pobrałeś). Możesz zostawić domyślne ustawienia importu i zatwierdź rozpoczęcie importowania.
  4. Poczekaj na zakończenie procesu. W zależności od wielkości bazy i szybkości serwera, import może potrwać od kilku sekund do kilku minut. Po zakończeniu powinieneś zobaczyć komunikat o pomyślnym imporcie danych. Jeśli pojawią się błędy (np. przekroczony maksymalny rozmiar pliku, limit czasu, czy błędy składni SQL), trzeba będzie rozwiązać te problemy – np. podzielić plik SQL na mniejsze części, skorzystać z innej metody importu (SSH i komenda mysql), lub poprosić wsparcie hostingu o pomoc przy imporcie dużej bazy.
  5. Zweryfikuj, czy wszystkie tabele się zaimportowały. Odśwież widok bazy w narzędziu i sprawdź, czy widać listę tabel WordPressa (np. wp_posts, wp_comments, wp_users itp.). Jeżeli tak, to baza danych została przeniesiona.

Po imporcie baza danych na nowym serwerze zawiera już wszystkie dane ze starej strony. W połączeniu z wcześniej przeniesionymi plikami oraz poprawnie ustawionym wp-config.php, Twoja strona jest już prawie gotowa do działania na nowym serwerze.

Testowanie poprawności działania strony po migracji

Gdy wszystko jest już przeniesione, nadszedł czas na sprawdzenie, czy strona działa poprawnie na nowym serwerze, zanim udostępnimy ją odwiedzającym (zwłaszcza jeśli zmieniamy też konfigurację domeny).

Najpierw, jeśli domena pozostaje ta sama, a zmieniliśmy tylko serwer, możemy chcieć przetestować stronę jeszcze przed przestawieniem DNS na nowy serwer. Ponieważ domena wciąż wskazuje na stary serwer (dopóki nie zmienimy tego ustawienia), bezpośrednie wejście na adres URL może nadal pokazywać starą stronę. Aby obejrzeć stronę na nowym serwerze przed zmianą DNS, można posłużyć się jedną z metod:

  • Edytuj plik hosts na swoim komputerze: Jest to metoda dla zaawansowanych użytkowników. W pliku systemowym hosts (w Windows: C:\Windows\System32\drivers\etc\hosts, w Mac/Linux: /etc/hosts) można dodać wpis przypisujący naszą domenę do adresu IP nowego serwera. Dzięki temu tylko na Twoim komputerze przeglądarka będzie kierować domenę na nowy serwer, pozwalając Ci sprawdzić działanie strony przed propagacją DNS. Po testach nie zapomnij usunąć lub dezaktywować ten wpis.
  • Tymczasowy adres URL / tymczasowa domena: Niektórzy dostawcy hostingu oferują tymczasowy adres (subdomenę) dla Twojego konta, pod którym można zobaczyć stronę. Alternatywnie, jeśli przenosisz na zupełnie nową domenę, możesz dokonać testów korzystając właśnie z tej nowej domeny (o ile już ją skierujesz na nowy serwer).

Jeśli nie możesz skorzystać z powyższych metod, często po prostu trzeba przeprowadzić migrację domeny (zmianę DNS) i przez chwilę obserwować stronę, ale najlepiej wykonać to w okresie mniejszego ruchu, by ewentualne problemy dotknęły jak najmniej użytkowników.

Podczas testów zwróć uwagę na:

  • Czy strona się poprawnie wczytuje (czy nie pojawia się białe okno lub komunikaty błędów PHP).
  • Czy możesz zalogować się do panelu WordPress (/wp-admin) na nowym serwerze.
  • Czy wyświetlają się wszystkie obrazy i działają pliki multimedialne.
  • Czy linki wewnętrzne działają (przejdź do kilku podstron, zobacz czy nie ma błędów 404).
  • Czy działają funkcjonalności, np. formularze kontaktowe, wyszukiwarka na stronie, komentarze itp.
  • Jeśli zmienił się adres strony (domena), sprawdź, czy wszystkie odnośniki odwołują się do nowego adresu (czasem konieczne jest wyszukanie w bazie starych adresów URL i zamiana na nowe – omówimy to w sekcji o migracji domeny).

Jeśli zauważysz jakiekolwiek problemy, nie panikuj. Często przyczyną są drobnostki, które łatwo naprawić. W dalszej części artykułu (sekcja o najczęstszych problemach) znajdziesz wskazówki, jak rozwiązać typowe kłopoty pojawiające się po migracji. Gdy testy wypadną pomyślnie i masz pewność, że strona działa jak należy, można przystąpić do zmiany konfiguracji domeny (jeśli to konieczne), aby skierować ruch użytkowników na nowy serwer.

Automatyczne metody migracji

Migracja manualna daje pełną kontrolę nad procesem, ale wymaga wykonania wielu kroków ręcznie. Dla osób mniej doświadczonych technicznie lub po prostu chcących zaoszczędzić czas istnieją automatyczne sposoby migracji strony WordPress przy użyciu specjalnych wtyczek. Wtyczki te potrafią zautomatyzować proces tworzenia kopii strony i odtworzenia jej na nowym serwerze, często sprowadzając cały proces do kilku kliknięć. Poniżej omówimy najpopularniejsze wtyczki migracyjne oraz przedstawimy przykładowy przebieg migracji za pomocą wtyczki, a także porównamy zalety i wady takiego rozwiązania.

Najlepsze wtyczki do migracji WordPress

Na rynku istnieje wiele wtyczek ułatwiających przenoszenie witryny WordPress. Do najczęściej polecanych należą m.in. Duplicator, All-in-One WP Migration oraz UpdraftPlus (który jest głównie wtyczką do backupu, ale oferuje również funkcje migracji). Oto krótkie omówienie tych narzędzi:

  • Duplicator: Jedna z najpopularniejszych wtyczek do migracji. Pozwala spakować całą stronę (pliki + baza danych) w jeden pakiet instalacyjny. Po zainstalowaniu Duplicatora na starej stronie tworzysz tzw. „pakiet” (package), który składa się z pliku archiwum (z całą zawartością strony) oraz skryptu instalacyjnego installer.php. Następnie przenosisz te pliki na nowy serwer i odpalasz skrypt instalacyjny, który automatycznie rozpakowuje pliki i importuje bazę danych. Duplicator ma wersję darmową, która w wielu przypadkach wystarcza, oraz wersję Pro z dodatkowymi funkcjami (np. obsługą większych witryn, migracją wielostronnych instalacji multisite, czy kopiowaniem bezpośrednio między serwerami).
  • All-in-One WP Migration: Bardzo prosty w obsłudze plugin do migracji. Działa na zasadzie eksportu i importu. Na starej stronie instalujesz wtyczkę, wykonujesz Export – wtyczka pakuje całą stronę do jednego pliku (o rozszerzeniu .wpress). Następnie na nowym serwerze (w nowej świeżej instalacji WordPress lub w środowisku przygotowanym specjalnie pod import) instalujesz tę samą wtyczkę i korzystasz z opcji Import, wskazując wcześniej pobrany plik. Po chwili strona zostaje odtworzona. All-in-One WP Migration w wersji darmowej ma limit wielkości importowanego pliku (około 512 MB), co w przypadku większych stron może wymagać wykupienia rozszerzenia lub zastosowania obejścia. Niemniej dla małych i średnich witryn jest to bardzo wygodne narzędzie.
  • UpdraftPlus: Popularna wtyczka do tworzenia kopii zapasowych, która posiada również opcję migracji/klonowania strony (funkcja Migrator w wersji premium, choć kopię można też odtworzyć ręcznie). UpdraftPlus umożliwia wykonanie backupu plików i bazy danych na starym serwerze, a następnie odtworzenie go na nowej stronie. Proces polega na zainstalowaniu UpdraftPlus na obu instalacjach WordPress (starej i nowej). Na starej wykonujemy backup (który dzielony jest na archiwa: osobno baza danych, wtyczki, motywy, przesłane pliki itd.), a następnie przenosimy te pliki backupu do nowej instalacji (np. wgrywając je przez FTP do katalogu wp-content/updraft na nowym serwerze) i tam, poprzez wtyczkę, dokonujemy ich importu (opcja Restore). UpdraftPlus jest szczególnie przydatny, jeśli już używasz go do regularnych kopii – wówczas migracja to po prostu przywrócenie backupu na innym serwerze.

Oprócz powyższych istnieją też inne wtyczki, takie jak Migrate Guru (darmowa wtyczka do migracji działająca przez zewnętrzne serwery – dobry wybór przy bardzo dużych stronach, ponieważ zdjęcie obciążenia na zewnętrzny serwer ułatwia przenosiny) czy WPvivid Backup Plugin (łączący funkcje backupu i migracji). Wybór wtyczki zależy od preferencji oraz wielkości i specyfiki strony. Duplicator i All-in-One WP Migration są najczęściej wybierane ze względu na swoją prostotę i skuteczność.

Jak przeprowadzić migrację krok po kroku przy użyciu wtyczki

Przedstawimy teraz ogólny przebieg migracji przy użyciu wtyczki na przykładzie Duplicatora (inne wtyczki działają na podobnej zasadzie, choć szczegóły mogą się różnić).

  1. Instalacja wtyczki na starej stronie: Zaloguj się do kokpitu WordPress na stronie, którą chcesz przenieść. Przejdź do sekcji Wtyczki → Dodaj nową i wyszukaj wtyczkę „Duplicator”. Zainstaluj i aktywuj ją.
  2. Utworzenie pakietu migracyjnego: Po aktywacji wtyczki w menu WordPress pojawi się sekcja Duplicator. Przejdź do niej i rozpocznij tworzenie nowego „pakietu” (przycisk Create New lub podobny). Wtyczka przeprowadzi Cię przez kreator: sprawdzi stan systemu (czy wszystkie pliki są dostępne, czy nie przekroczono limitów, itp.), a następnie pozwoli Ci rozpocząć proces archiwizacji. Rozpocznij budowanie pakietu (etap Build). Może to potrwać kilka minut, w zależności od wielkości witryny. Po zakończeniu powinieneś otrzymać dwa pliki: installer.php oraz plik archiwum (najczęściej z rozszerzeniem .zip lub .daf).
  3. Pobranie pakietu i przygotowanie nowego serwera: Pobierz na swój komputer oba pliki wygenerowane przez Duplicatora (installer.php oraz archiwum z kopią strony). Teraz przygotuj nowy serwer. Na nowym hostingu utwórz nową bazę danych MySQL oraz użytkownika (zanotuj nazwę bazy, nazwę użytkownika i hasło – przydadzą się za chwilę). Upewnij się także, że katalog, do którego mają trafić pliki strony, jest pusty (jeśli jest tam domyślna instalacja WordPress, możesz ją usunąć, ponieważ Duplicator odtworzy pliki samodzielnie).
  4. Przeniesienie plików pakietu na nowy serwer: Połącz się z nowym serwerem przez FTP/SFTP (tak jak wcześniej) i skopiuj do głównego katalogu witryny plik installer.php oraz archiwum z pakietem (zip/daf). Upewnij się, że pliki wgrały się poprawnie.
  5. Uruchomienie instalatora Duplicatora: Teraz czas uruchomić proces odtworzenia strony. W przeglądarce wpisz adres swojej nowej strony z dopiskiem /installer.php. Przykładowo, jeśli domena wskazująca na nowy serwer to mojadomena.pl, wejdź na mojadomena.pl/installer.php. Powinien załadować się interfejs instalacyjny Duplicatora. Przechodząc przez kolejne kroki instalatora, zostaniesz poproszony o podanie danych nowej bazy danych (tej, którą utworzyłeś: nazwa bazy, użytkownik, hasło, host – zwykle localhost). Wtyczka sprawdzi połączenie, a następnie zaoferuje opcje dotyczące aktualizacji adresów URL (Duplicator automatycznie może zamienić stare adresy URL na nowe, jeśli zmienia się domena; jeśli pozostaje ta sama, i tak może dokonać rekalkulacji ścieżek). Rozpocznij proces – skrypt zaimportuje bazę danych i rozpakowuje pliki strony na serwerze.
  6. Zakończenie i weryfikacja: Po pomyślnym przebiegu instalacji Duplicator wyświetli odpowiednie komunikaty (np. przypomnienie o usunięciu plików instalatora). Zaloguj się do panelu WordPress na nowym serwerze (dane logowania pozostaną takie same jak na starej stronie, bo zostały przeniesione) i sprawdź, czy wszystko działa. Duplicator zwykle automatycznie usuwa plik instalacyjny po zakończeniu, ale jeśli tego nie zrobił, usuń ręcznie plik installer.php oraz paczkę zip z serwera (są już niepotrzebne, a dla bezpieczeństwa nie powinny pozostawać online). Przejdź się po stronie, by upewnić się, że migracja się udała.

Podobny przebieg czeka Cię przy użyciu innych wtyczek, choć może być nieco prostszy (np. All-in-One WP Migration pomija etap ręcznego tworzenia bazy – import wtyczką potrafi sam utworzyć struktury bazy, jednak i tak trzeba mieć utworzoną instalację WordPress na nowym serwerze, by zainstalować wtyczkę importującą). Zawsze jednak warto po migracji zalogować się na stronę i przetestować jej działanie, analogicznie jak opisano to w sekcji testowania po migracji manualnej.

Zalety i wady automatycznych metod migracji

Korzystanie z wtyczek migracyjnych ma szereg zalet, ale wiąże się też z pewnymi ograniczeniami. Poniżej zestawienie plusów i minusów automatycznej migracji:

Zalety:

  • Prostota i oszczędność czasu: Wtyczki automatyzują wiele kroków, dzięki czemu migracja jest mniej pracochłonna i łatwiejsza dla osób nietechnicznych. Nie trzeba ręcznie eksportować bazy ani konfigurować wp-config.php – narzędzie zrobi to za Ciebie.
  • Mniejsze ryzyko błędów ludzkich: Ponieważ większość operacji wykonuje skrypt, maleje ryzyko pominięcia jakiegoś pliku czy literówki przy wpisywaniu danych bazy. Dobrze zaprojektowane wtyczki sprawdzają też integralność backupu i informują, jeśli coś poszło nie tak.
  • Dodatkowe funkcje: Niektóre wtyczki, jak Duplicator czy UpdraftPlus, pozwalają na szereg dodatkowych opcji – np. zaplanowanie regularnych backupów, klonowanie strony na środowisko testowe, czy wybiórczą migrację (tylko wybrane treści). To czyni je uniwersalnymi narzędziami przydatnymi nie tylko jednorazowo.
  • Przydatne przy zmianie domeny: Wtyczki często mają wbudowane mechanizmy zastępowania adresów URL podczas migracji (np. Duplicator czy All-in-One WP Migration automatycznie zaktualizują wpisy w bazie z starą domeną na nową, jeśli to wymagane). Dzięki temu unikasz ręcznego szukania i zamieniania adresów w bazie danych.

Wady:

  • Ograniczenia przy dużych stronach: Wtyczki mogą mieć problemy przy bardzo dużych stronach (duża baza danych, tysiące obrazów). Mogą wystąpić ograniczenia czasu wykonywania skryptu PHP, limity pamięci lub rozmiaru plików. Np. All-in-One WP Migration ma wspomniany limit 512 MB w darmowej wersji – przy większych stronach trzeba wykupić rozszerzenie lub kombinować, by podzielić migrację. Duplicator z kolei może wymagać zwiększenia parametrów serwera na czas tworzenia pakietu (jeśli strona jest bardzo duża, proces tworzenia archiwum może się nie powieść przy domyślnych limitach).
  • Konieczność instalacji wtyczek: By użyć wtyczki migracyjnej, musisz mieć możliwość zainstalowania jej na starej stronie (oraz często na nowej). Jeśli masz ograniczenia dostępu do wtyczek (np. w jakiejś niestandardowej dystrybucji WordPressa) lub brak miejsca na instalację kolejnej wtyczki, może to być utrudnienie. Po migracji również warto taką wtyczkę odinstalować, jeśli nie będzie już potrzebna.
  • Potencjalne problemy kompatybilności: Choć rzadko, zdarza się, że wtyczka migracyjna może nie zadziałać poprawnie z powodu nietypowej konfiguracji serwera lub konfliktu z inną wtyczką. Wówczas i tak trzeba znać podstawy migracji ręcznej, by dokończyć proces.
  • Zostawienie plików tymczasowych: Jeśli po migracji zapomnimy usunąć plików używanych przez wtyczkę (np. pakietu Duplicatora czy skryptu instalacyjnego), mogą one stanowić potencjalne zagrożenie bezpieczeństwa lub zajmować niepotrzebnie miejsce. Należy zawsze pamiętać o czyszczeniu po zakończonej migracji.
  • Koszt niektórych rozwiązań: Większość wtyczek ma darmowe wersje, ale pewne funkcje (jak np. migracja wielkich witryn w Duplicatorze czy migracja w UpdraftPlus) mogą wymagać płatnej licencji. Dla jednorazowej operacji zwykle wystarczy darmowa wersja, jednak warto mieć świadomość ograniczeń.

Podsumowując, automatyczne metody migracji są świetnym rozwiązaniem dla większości użytkowników przenoszących swoje strony. Zdecydowanie skracają czas pracy i zmniejszają ryzyko błędów. W przypadku bardzo dużych lub krytycznych stron warto jednak znać również metody manualne na wypadek, gdyby wtyczka zawiodła. Dobrą praktyką jest wykonanie własnego backupu niezależnie od wtyczki (np. samej bazy danych), aby mieć plan B w razie niespodziewanych trudności.

Migracja domeny i konfiguracja DNS

W przypadku przenoszenia strony na inny serwer zazwyczaj chcemy, aby była ona dostępna pod tym samym adresem (domeną) co wcześniej. To oznacza, że po skopiowaniu plików i bazy na nowy hosting, musimy skierować ruch z naszej domeny na ten nowy serwer. Operacja ta odbywa się poprzez zmianę ustawień DNS dla domeny. Poniżej wyjaśniamy, jak poprawnie przeprowadzić taką zmianę oraz co to jest propagacja DNS i jaki ma wpływ na dostępność strony.

Jak poprawnie skonfigurować domenę na nowym serwerze?

Aby domena wskazywała na nowy serwer, musimy zaktualizować jej konfigurację DNS. Są dwie główne sytuacje:

  • Domena pozostaje u tego samego rejestratora (nie przenosisz jej do innej firmy), zmienia się tylko hosting: W takim przypadku logujesz się do panelu zarządzania domeną u swojego rejestratora (czy może to być panel tej samej firmy hostingowej, jeśli tam domenę rejestrowałeś, lub oddzielny panel rejestratora domen). Tam należy znaleźć ustawienia DNS dla danej domeny. Najprostszym sposobem jest edycja rekordu typu A dla swojej domeny (oraz ewentualnie rekordu www jeśli jest osobno) – rekord A wskazuje adres IP serwera, na który kieruje domena. Po migracji powinien on wskazywać adres IP nowego serwera. Odczytaj adres IP serwera z panelu nowego hostingu (często wyświetlany jako „adres serwera” lub można znaleźć go przypisanego do Twojego konta hostingowego). Następnie w konfiguracji DNS domeny zmień stary adres IP na nowy. Zapisz zmiany.
  • Przenosisz domenę do innego operatora lub zmieniasz serwery nazw (DNS): Czasem zdarza się, że zmieniając hosting decydujesz również o przeniesieniu obsługi domeny do nowego dostawcy (np. aby mieć wszystko w jednym miejscu). Wtedy zamiast edytować rekord A, często wykonuje się zmianę serwerów nazw (DNS servers/nameservers) przypisanych do domeny. Nowy hosting prawdopodobnie poda Ci adresy swoich serwerów DNS (np. w formie ns1.nowyhosting.pl, ns2.nowyhosting.pl). Musisz wtedy w panelu rejestratora domeny ustawić, że domena używa tych nowych serwerów nazw. Gdy to zrobisz, konfiguracja szczegółowych rekordów (A, MX, CNAME itp.) będzie zarządzana na nowym serwerze (zwykle w panelu hostingu jest wtedy możliwość dodania domeny do konta i tam ustawiasz, jaki adres IP dla niej przypisać). Pamiętaj, że przed zmianą serwerów nazw upewnij się, że dodałeś domenę do konta na nowym hostingu i skonfigurowałeś tam strefę DNS (często hosting robi to automatycznie po dodaniu domeny do konta).

Po dokonaniu zmian DNS, prędzej czy później domena zacznie wskazywać na nowy serwer. Jeśli miałeś poprawnie przeniesioną stronę (pliki i bazę) na nowy hosting, to w momencie, gdy DNS zaczną kierować na nowy serwer, użytkownicy zobaczą już przeniesioną wersję strony.

Co w sytuacji, gdy zmieniamy adres strony (domenę) na inny?
Może się zdarzyć, że migracja obejmuje nie tylko zmianę serwera, ale i zmianę samej domeny (np. rebranding firmy i nowy adres WWW). W takim przypadku proces przenoszenia plików i bazy jest podobny, ale dodatkowo po zaimportowaniu bazy na nowym serwerze trzeba zaktualizować w niej wszystkie odniesienia do starego adresu URL na nowy. WordPress zapisuje adres witryny w wielu miejscach (tabele wp_options, wp_posts – np. linki w treści postów, adresy obrazków, itp.). Najlepiej użyć do tego specjalnej wtyczki lub narzędzia (np. wtyczka Better Search Replace umożliwia przeszukanie bazy i zamianę ciągów tekstowych – w tym przypadku starego URL na nowy). Można też posłużyć się skryptem intersearch/replace lub WP-CLI (komendą search-replace). Po dokonaniu takiej zamiany strona będzie działać pod nową domeną. Nie zapomnij również ustawić przekierowań 301 ze starej domeny na nową, aby użytkownicy (oraz wyszukiwarki) trafiający na stary adres zostali automatycznie przekierowani do nowego. Ustawienia takich przekierowań można zrobić w .htaccess na starym serwerze lub (jeśli przeniosłeś domenę do nowego hostingu) za pomocą reguł w pliku .htaccess w katalogu starej strony (jeśli jest jeszcze aktywna) lub w konfiguracji serwera.

Czas propagacji DNS i co to oznacza dla dostępności strony?

Po zmianie konfiguracji DNS następuje proces zwany propagacją DNS. Polega on na tym, że informacje o nowym przypisaniu domeny do adresu IP rozchodzą się po wszystkich serwerach DNS na świecie. Nie dzieje się to natychmiast – każda zmiana DNS potrzebuje czasu, aby zaktualizowały ją poszczególne serwery pośredniczące (ISP itd.).

Typowy czas propagacji DNS wynosi od kilku godzin do maksymalnie 24-48 godzin. W praktyce często już w ciągu kilku godzin większość użytkowników będzie trafiać na nowy serwer, ale zawsze warto liczyć się z tym, że pełna propagacja może potrwać nawet do dwóch dni. W tym okresie różni użytkownicy mogą trafiać na różne serwery:

  • Jedni zobaczą już stronę na nowym serwerze,
  • Inni (ci, u których jeszcze DNS się nie zaktualizował) wciąż będą trafiać na starą lokalizację.

Z tego powodu ważne jest, aby przez czas propagacji nie wyłączać od razu starego hostingu i nie usuwać od razu starych plików. Najlepiej utrzymać starą stronę przez te 1-2 dni, nawet jeśli docelowo chcemy z niego zrezygnować. Dzięki temu użytkownicy, którzy jeszcze trafiają na stary serwer, nadal zobaczą działającą (starą) wersję witryny zamiast błędu. Jeśli w tym czasie trzeba wprowadzać pilne zmiany w treści strony, warto dokonać ich równolegle na obu kopiach (co jednak w praktyce rzadko jest konieczne w tak krótkim oknie).

Aby przyspieszyć propagację lub przynajmniej upewnić się, że Twój lokalny komputer widzi aktualne DNS, możesz:

  • Wyczyścić cache DNS na swoim komputerze (np. poleceniem ipconfig /flushdns w Windows lub odpowiednimi poleceniami w macOS/Linux).
  • Skorzystać z narzędzi online do sprawdzania propagacji DNS (wpisując „DNS propagation check” znajdziesz serwisy pokazujące, na jakie IP wskazuje domena w różnych częściach świata).
  • Ustawić niski TTL (Time To Live) rekordu domeny na kilkanaście minut, przed dokonaniem zmiany IP – jeśli wiesz z wyprzedzeniem o migracji, możesz dzień wcześniej obniżyć TTL starego rekordu A do np. 300 sekund. Dzięki temu serwery DNS nie będą długo cache’owały starego adresu i po zmianie szybciej zaczną odpytywać o nowy. Pamiętaj jednak, by zrobić to zawczasu – obniżenie TTL zacznie obowiązywać dopiero dla zapytań po jego ustawieniu.

W okresie propagacji warto monitorować ruch i zachowanie strony. Po upływie około 48 godzin można zakładać, że cały ruch powinien już trafiać na nowy serwer. Wówczas, jeśli wszystko działa poprawnie, można bezpiecznie wypowiedzieć starą usługę hostingową (lub jeśli to ta sama firma – usunąć starą instancję strony).

Migracja domeny (czy to poprzez zmianę DNS, czy zmianę adresu strony) jest ostatnim krokiem procesu przenoszenia strony WordPress na inny serwer. Kiedy domena prawidłowo wskazuje na nową lokalizację, można uznać, że migracja została zakończona. Niemniej jednak, zawsze warto jeszcze przez jakiś czas obserwować stronę i być przygotowanym na ewentualne problemy. Poniżej omawiamy najczęstsze z nich i sposoby radzenia sobie, gdyby się pojawiły.

Najczęstsze problemy podczas migracji i jak je rozwiązać

Nawet przy najlepszym przygotowaniu, podczas migracji strony WordPress mogą pojawić się pewne problemy. Poniżej opisujemy najczęstsze z nich oraz wskazujemy możliwe rozwiązania, co pozwoli Ci szybko przywrócić stronę do pełnej sprawności.

Strona nie działa po migracji – białe okno lub błędy 500

Jednym z typowych scenariuszy jest sytuacja, w której po przeniesieniu strony i wejściu na jej adres, zamiast oczekiwanej zawartości widzisz zupełnie pustą stronę (tzw. biały ekran śmierci – white screen of death) lub komunikat błędu serwera 500 (Internal Server Error). Przyczyny takiego stanu mogą być różne:

  • Błędy PHP lub niekompatybilność wtyczek/tematu: Nowy serwer może mieć inną wersję PHP niż poprzedni, co czasem ujawnia błędy w starych wtyczkach czy motywie. Biały ekran często oznacza wystąpienie poważnego błędu PHP, który nie jest wyświetlany z uwagi na wyłączone raportowanie błędów.
  • Niepełne przeniesienie plików: Jeśli któryś z kluczowych plików WordPressa (lub wtyczek) nie skopiował się poprawnie, strona może się nie załadować.
  • Niewczytana lub uszkodzona konfiguracja .htaccess: Plik .htaccess (w przypadku serwerów Apache/LiteSpeed) może zawierać reguły, które powodują błąd 500, np. jeśli moduły konfiguracyjne różnią się między serwerami.

Jak to naprawić?
Przede wszystkim włącz tryb debugowania, aby zobaczyć konkretny błąd. W pliku wp-config.php na nowym serwerze znajdź linię WP_DEBUG i ustaw ją na true:

phpKopiujdefine( 'WP_DEBUG', true );
define( 'WP_DEBUG_DISPLAY', true );

Następnie ponownie załaduj stronę – jeśli problem leży w kodzie PHP, powinien wyświetlić się komunikat błędu wskazujący plik i linię powodującą błąd. Na podstawie tego komunikatu można zidentyfikować problem (np. problematyczna wtyczka). Jeśli widzisz, że błąd powoduje konkretna wtyczka, możesz spróbować tymczasowo ją wyłączyć: zaloguj się na serwer przez FTP i zmień nazwę folderu tej wtyczki w wp-content/plugins (np. dodaj _OFF na końcu nazwy folderu). To dezaktywuje wtyczkę. Sprawdź, czy strona ruszy bez niej. Jeśli tak, prawdopodobnie wtyczka jest niekompatybilna z nowym środowiskiem (np. wymaga innej wersji PHP) lub wystąpił błąd przy jej przenoszeniu – być może warto ją zaktualizować do nowszej wersji lub ponownie zainstalować.

Jeżeli błąd dotyczy motywu (co rzadziej się zdarza), można podobnie tymczasowo zmienić motyw na domyślny: przez bazę danych (tabela wp_options, wartości template i stylesheet) lub poprzez usunięcie/zmianę nazwy folderu aktualnego motywu w wp-content/themes – WordPress wtedy powinien przełączyć się na domyślny motyw.

W przypadku błędu 500 bez konkretnej informacji, warto:

  • Sprawdzić plik .htaccess – spróbuj na chwilę zmienić jego nazwę (np. na .htaccess_old), aby wyeliminować wpływ reguł w nim zawartych. Jeśli po tej zmianie strona zacznie działać lub pokaże inny komunikat, problem leżał w regułach (np. moduł mod_rewrite może być wyłączony lub inne dyrektywy powodują błąd). W takiej sytuacji możesz wygenerować na nowo plik .htaccess logując się do WP-Admin i zapisując od nowa bez zmian ustawienia Bezpośrednich odnośników (Permalinks) – WordPress sam zapisze domyślne działające reguły.
  • Sprawdzić logi błędów serwera – wiele hostingów udostępnia podgląd logów (error_log). Tam mogą być cenne wskazówki (np. informacja o braku pamięci, jeśli błąd spowodowało przekroczenie limitu pamięci PHP, co z kolei można naprawić zwiększając limit w php.ini lub wp-config.php dyrektywą WP_MEMORY_LIMIT).
  • Upewnić się, że wszystkie pliki są na swoim miejscu – porównaj rozmiar folderu wp-content lub liczby plików z oryginałem.

Po zdiagnozowaniu przyczyny podejmij odpowiednie kroki: doinstaluj brakujące pliki, dostosuj wersję PHP (jeśli wtyczka wymaga starszej, rozważ aktualizację wtyczki zamiast obniżania wersji PHP), włącz wymagane moduły na serwerze (np. jeśli błąd dotyczył braku rozszerzenia PHP dla danej funkcjonalności, można doinstalować to rozszerzenie w konfiguracji serwera lub poprosić wsparcie hostingu).

Błędne przekierowania i problem z htaccess

Czasem po migracji możesz zauważyć, że wejście na stronę przekierowuje na inny adres niż zamierzony, albo że pojawiają się pętle przekierowań (np. błąd „Too many redirects”). Może to mieć kilka przyczyn:

  • Stary adres w ustawieniach WordPressa: Jeśli zmieniła się domena lub struktura URL, a w bazie danych nadal figuruje stary adres witryny, WordPress może próbować przekierować ruch do tego adresu (tak działa mechanizm utrzymujący jednolitość URL). Na przykład przeniosłeś stronę z domeny stara-domena.pl na nowa-domena.pl, ale w tabeli wp_options pola siteurl i home wciąż mają stara-domena.pl – wówczas przy wejściu na nowa-domena.pl WordPress przekieruje z powrotem na stara-domena.pl. Podobnie, jeśli przeniosłeś stronę z podkatalogu do głównego katalogu lub odwrotnie, mogą wystąpić przekierowania.
  • Reguły w .htaccess lub konfiguracji serwera: Być może na starym serwerze miałeś ustawione wymuszanie HTTPS albo przekierowanie z www na bez www (lub odwrotnie). Jeśli te reguły przeszły na nowy serwer, a zmieniły się okoliczności (np. początkowo nie masz certyfikatu SSL na nowym serwerze, a reguła wymusza HTTPS – wtedy strona może nie otwierać się poprawnie).
  • Cache przeglądarki lub wtyczek cache: Wreszcie, pamięć podręczna przeglądarki lub wtyczka cache na stronie może przekierowywać na podstawie starych ustawień.

Jak rozwiązać problemy z przekierowaniami?

  • Najpierw upewnij się, że podstawowe adresy WordPress są poprawne. Możesz to sprawdzić logując się do panelu (jeśli możesz) w Ustawieniach ogólnych – pola Adres WordPress (URL) i Adres witryny (URL). Jeśli nie możesz wejść do panelu, zajrzyj do bazy danych: tabela wp_options, opcje siteurl i home. Powinny one odzwierciedlać aktualny adres strony. W razie potrzeby popraw je (np. bezpośrednio w phpMyAdmin). Alternatywnie, możesz w pliku wp-config.php dodać tymczasowo linie wymuszające adres: phpKopiujdefine('WP_HOME', 'https://nowa-domena.pl'); define('WP_SITEURL', 'https://nowa-domena.pl'); zastępując nowa-domena.pl właściwym adresem. To nadpisze ustawienia z bazy i pozwoli uniknąć przekierowania do starego adresu.
  • Następnie sprawdź plik .htaccess (jeśli strona działa na Apache/LiteSpeed). Usuń lub skomentuj (poprzez # na początku linii) wszelkie stare reguły przekierowań dotyczące domeny czy HTTPS, które mogą powodować konflikt. Jeżeli np. nie masz jeszcze skonfigurowanego SSL, a jest tam reguła RewriteCond %{HTTPS} off ... RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI}, to albo zainstaluj certyfikat SSL na nowym serwerze, albo tymczasowo usuń tę regułę do czasu włączenia SSL.
  • W przypadku pętli przekierowań między wersją z www i bez www, upewnij się, że zarówno konfiguracja DNS, jak i ustawienia WordPress są spójne co do używania www lub nie. Najlepiej zdecydować się na jedną wersję (np. zawsze bez www) i odpowiednio ustawić adresy witryny oraz reguły przekierowań 301 na tę wersję docelową.
  • Opróżnij cache przeglądarki i wyczyść cache na stronie (jeśli używasz wtyczki cache typu WP Super Cache, W3 Total Cache itp., usuń stare pliki cache). Czasem przeglądarka może pamiętać stare przekierowanie (tzw. cached redirect), więc dla pewności można sprawdzić w trybie prywatnym lub innej przeglądarce.

Po tych działaniach spróbuj ponownie. Jeżeli problem ustąpił, przyczyną było coś z powyższej listy. Jeśli nadal występują przekierowania, spróbuj użyć narzędzi deweloperskich przeglądarki lub narzędzia online (np. redirect checker), aby prześledzić łańcuch przekierowań i zidentyfikować, skąd one pochodzą.

Problemy z bazą danych i błędy połączenia MySQL

Kolejny częsty problem to komunikaty błędu związane z bazą danych, np. klasyczny „Error establishing a database connection” (Błąd podczas nawiązywania połączenia z bazą danych). Oznacza to, że WordPress na nowym serwerze nie może połączyć się z bazą danych. Możliwe przyczyny:

  • Błędnie wpisane dane dostępu do bazy w pliku wp-config.php. Literówka w nazwie bazy, użytkownika lub hasła, albo pozostawienie starej nazwy bazy zamiast nowej.
  • Nieutworzenie użytkownika bazy lub nieprzypisanie mu odpowiednich uprawnień do nowej bazy. Na niektórych hostingach po utworzeniu nowej bazy trzeba oddzielnie dodać istniejącego użytkownika do tej bazy i nadać mu prawa (SELECT, INSERT, UPDATE, DELETE etc.).
  • Inny adres hosta bazy (DB_HOST) – jak wspomniano wcześniej, czasem zamiast „localhost” trzeba użyć innej nazwy hosta, jeśli tego nie zrobiliśmy, połączenie nie zostanie nawiązane.
  • Baza danych nie została zaimportowana lub import nie powiódł się w całości, wskutek czego tabela użytkowników WordPressa (wp_users) nie istnieje – co również może dawać błąd połączenia lub błędy podczas logowania.

Rozwiązanie:

  • Otwórz plik wp-config.php na nowym serwerze i zweryfikuj wpisy DB_NAME, DB_USER, DB_PASSWORD, DB_HOST. Porównaj je z informacjami z panelu hostingu (nazwa bazy i użytkownika często bywa prefiksowana nazwą użytkownika konta, łatwo o pomyłkę). Popraw ewentualne błędy i zapisz plik.
  • Wejdź do panelu zarządzania bazami danych na hostingu i sprawdź, czy baza danych o podanej nazwie istnieje i czy widnieje w niej konto użytkownika przypisane z odpowiednimi uprawnieniami. Jeśli nie – utwórz użytkownika lub dodaj istniejącego do bazy.
  • Jeżeli błąd wciąż występuje, spróbuj zalogować się do phpMyAdmin na nowym serwerze używając danych z wp-config (nazwa bazy, użytkownik, hasło). Jeśli logowanie się nie uda, dane są niepoprawne (lub konto nie ma dostępu do tej bazy). Jeśli logowanie zadziała, oznacza to, że dane są poprawne, a przyczyna może leżeć gdzie indziej – np. w samej treści bazy.
  • Sprawdź, czy po imporcie bazy wszystkie tabele się prawidłowo wgrały. Jeśli import został przerwany lub wystąpiły błędy, to część tabel mogła się nie załadować. W efekcie WordPress może nie znaleźć oczekiwanych danych i zgłaszać błąd. W takiej sytuacji spróbuj ponowić import bazy (np. usuń niedokończone tabele i zaimportuj jeszcze raz, albo zaimportuj brakujące tabele ręcznie).
  • Czasem komunikat „Error establishing a database connection” może pojawić się też, gdy baza działa, ale np. ma inną przedrostek tabel niż oczekuje WordPress (zdefiniowany w wp-config.php). Upewnij się, że wartość $table_prefix jest taka sama jak prefix zaimportowanych tabel (domyślnie wp_). Jeśli w trakcie importu zmieniałeś prefix lub importowałeś do bazy, gdzie były już tabele o tej nazwie i zmieniłeś prefix, dopilnuj spójności.

Po wykonaniu powyższych kroków większość problemów z połączeniem do bazy powinna zostać rozwiązana. Gdy strona zacznie się wczytywać, a jedynie np. podczas logowania do wp-admin widzisz komunikat o błędnych danych, upewnij się, że logujesz się właściwym hasłem (używasz konta admin z przeniesionej bazy). Jeśli hasło nie działa, możesz skorzystać z opcji resetu hasła lub zmienić je ręcznie w bazie (hasła WordPress są hashowane, ale możesz w polu user_pass wpisać nowy hash wygenerowany np. na podstawie znanego hasła).

Brak niektórych obrazów i plików po migracji

Po przeniesieniu strony może się okazać, że część obrazków na stronie się nie wyświetla, lub brakuje pewnych plików (np. załączników do postów). Najczęstszą przyczyną jest niepełne skopiowanie wszystkich plików podczas migracji. Może się tak zdarzyć, jeśli:

  • Podczas pobierania plików ze starego serwera pominąłeś jakiś katalog (np. nie skopiowałeś całego wp-content/uploads, lub zapomniałeś o niestandardowym folderze z plikami).
  • Transfer FTP został przerwany i nie wznowił się poprawnie, przez co część plików nie dotarła na nowy serwer.
  • Nazwy plików mogą różnić się wielkością liter między systemami (rzadko, ale gdy przenosisz między serwerami Linux/Windows, np. plik Obrazek.JPG może być traktowany inaczej).
  • Adresy URL do plików wskazują na starą domenę lub lokalizację, mimo że pliki są fizycznie na serwerze.

Jak naprawić brakujące pliki?

  • Ponownie przejrzyj kopię plików na swoim komputerze (jeśli taką masz) i porównaj z tym, co jest na nowym serwerze. Jeśli zauważysz brakujące elementy, wgraj je. W szczególności sprawdź katalog wp-content/uploads rok po roku, miesiąc po miesiącu, czy liczba plików się zgadza.
  • Jeśli nie masz pewności, możesz skorzystać z wtyczki Broken Link Checker lub podobnej, która po uruchomieniu w panelu WordPress przeskanuje stronę pod kątem niedziałających linków/obrazków. Wskaże Ci, które URL-e nie działają.
  • Gdy okaże się, że obrazy faktycznie są na serwerze, ale wciąż się nie wyświetlają, sprawdź ścieżki do tych plików. Kliknij prawym przyciskiem na brakujący obrazek i skopiuj jego adres URL. Zobacz, czy adres ten wskazuje poprawną domenę i strukturę katalogów. Jeśli np. wskazuje na stary adres (co będzie widać po domenie w URL), oznacza to, że musisz zaktualizować adresy w treści swojej strony (ponownie: wtyczka Better Search Replace może pomóc) lub że np. używasz wtyczki CDN, która jeszcze wskazuje na stare zasoby.
  • Innym powodem niewyświetlania mediów może być brak ustawionych praw dostępu do plików na nowym serwerze. Upewnij się, że pliki graficzne mają odpowiednie uprawnienia (najczęściej 644 dla plików, 755 dla folderów) – choć jeśli kopiowałeś z serwera na serwer, to prawa powinny zostać zachowane.

Najczęściej brak obrazków rozwiązuje ponowne przesłanie brakujących plików. Dlatego tak ważne jest wykonanie pełnego backupu przed migracją – jeśli coś zginie po drodze, zawsze można sięgnąć do kopii i uzupełnić luki.

Jak sprawdzić poprawność migracji i co zrobić, jeśli coś nie działa?

Po wykonaniu wszystkich kroków migracji i wprowadzeniu poprawek, warto gruntownie przetestować stronę, by mieć pewność, że wszystko działa jak należy. Oto lista czynności kontrolnych, które warto wykonać:

  • Przegląd wszystkich podstron: Przeklikaj stronę, przejdź do różnych podstron, wpisów na blogu, stron kontaktowych itp. Szukaj błędów 404 lub elementów, które się nie ładują.
  • Sprawdź funkcjonalności: Jeśli na stronie są formularze (np. kontaktowy), wyślij testową wiadomość. Sprawdź, czy działają mechanizmy jak wyszukiwarka, koszyk (jeśli to sklep WooCommerce), system komentarzy, galerie obrazów, odtwarzacze wideo itd.
  • Zaloguj się do panelu administracyjnego: Upewnij się, że logowanie działa, a w Kokpicie nie ma żadnych błędów ani alertów o problemach (np. brak połączenia z API jakichś usług itp.).
  • Weryfikuj integracje zewnętrzne: Jeżeli strona ma integracje, jak np. płatności online, integrację z systemem mailingowym, API Google Maps, upewnij się, że po migracji klucze API i konfiguracje działają (czasem nowy serwer może wymagać np. odblokowania połączeń wychodzących).
  • Sprawdź szybkość i wydajność: To nie tyle kwestia poprawności, co obserwacji – zobacz, czy strona na nowym serwerze wczytuje się przynajmniej równie dobrze jak na starym. Jeśli jest zauważalnie wolniejsza, może to być sygnał, by włączyć odpowiednie mechanizmy cache, zoptymalizować konfigurację serwera lub poszukać przyczyny (czasem różnice w konfiguracji bazy danych lub wersji PHP mogą wpływać na wydajność konkretnych zapytań).

Jeśli którykolwiek z testów wykaże problem, przeanalizuj go. Wiele rozwiązań omawialiśmy powyżej. Kilka dodatkowych wskazówek:

  • Jeśli problem jest trudny do zlokalizowania, spróbuj porównać zachowanie strony na starym i nowym serwerze (o ile stara wciąż działa). Może jakaś część strony nie działała już wcześniej, a migracja nie ma z tym związku?
  • Pamiętaj, że zawsze masz kopię zapasową. Jeśli coś poszło naprawdę nie tak i strona na nowym serwerze jest poważnie uszkodzona, a brakuje Ci czasu na analizę, rozważ przywrócenie strony na stary serwer (jeśli to możliwe) lub ponowną migrację od zera – tym razem np. z wykorzystaniem innej metody (jeśli manualna zawiodła, spróbuj wtyczki lub odwrotnie).
  • W razie wątpliwości skontaktuj się z supportem hostingu. Dobre firmy hostingowe często pomagają w migracjach lub przynajmniej wskażą logi i możliwe problemy po swojej stronie. Czasem okaże się, że np. na nowym serwerze brakowało jakiegoś modułu PHP i wsparcie może go włączyć.

Na koniec, gdy strona działa poprawnie i minął okres propagacji DNS, możesz odetchnąć z ulgą – migracja zakończyła się sukcesem. Warto zachować sobie notatki z procesu (co zostało zmienione, jakie problemy wystąpiły), bo może to być przydatne przy kolejnych migracjach lub aktualizacjach. Pamiętaj też, aby kontynuować regularne wykonywanie backupów już na nowym serwerze, aby zawsze mieć zabezpieczenie na przyszłość.

< Powrót

Zapisz się do newslettera


Zadzwoń Napisz