Przejdź do treści
Programista przenosi stronę WordPress na inny serwer, dwa laptopy i lista kontrolna migracji

Jak przenieść stronę WordPress na inny serwer? Trzy metody, zero przerwy w działaniu i lista tego, co się psuje po migracji

Jak przenieść stronę WordPress na inny serwer, opisuje każdy hosting w Polsce: eksportujesz, importujesz, zmieniasz DNS, gotowe. I faktycznie, w połowie przypadków to działa. Druga połowa trafia do mnie tydzień później z formularzem, który przestał wysyłać maile, z galerią, która pokazuje puste kafelki, i z pytaniem, dlaczego strona przez dwie doby raz była, raz jej nie było. Przeniosłem kilkadziesiąt stron i sklepów między hostingami i ten tekst jest napisany od tej strony: jak skopiować pliki to najmniejszy problem, ważniejsze jest, jak zrobić to bez przerwy w działaniu i co sprawdzić potem, zanim zamkniesz stary serwer.

Jak przenieść stronę WordPress na inny serwer?

Stronę WordPress przenosisz na inny serwer w czterech krokach: robisz pełną kopię plików i bazy danych, wgrywasz ją na nowy serwer wtyczką do migracji albo ręcznie przez FTP i phpMyAdmin, testujesz stronę na nowym serwerze przed zmianą adresów i dopiero wtedy przełączasz rekordy DNS domeny. Przy małej stronie to godzina do dwóch, bez przerwy w działaniu.

Sęk w tym trzecim kroku. Większość poradników go pomija i każe zmienić DNS zaraz po imporcie, więc pierwsze błędy widzą Twoi klienci, a nie Ty. Drugi pomijany element to dzień przygotowań przed samą migracją, który decyduje, czy przełączenie potrwa pięć minut, czy dobę. Poniżej opisuję trzy metody przenosin, od najprostszej do najbardziej kontrolowanej, a potem to, czego w tamtych poradnikach nie ma: przygotowanie, test przed przełączeniem, różnicę między przeniesieniem strony a domeny i listę rzeczy, które po migracji psują się najczęściej.

Kiedy przenosić stronę, a kiedy szkoda zachodu

Zanim odpowiesz sobie na pytanie, jak przenieść stronę WordPress na inny serwer, odpowiedz na wcześniejsze: czy w ogóle. Przenosiny mają sens, gdy hosting jest realnym hamulcem. Objawy: strona ładuje się kilka sekund mimo cache, panel WordPressa zacina się przy zapisie, hosting nie daje aktualnej wersji PHP, kopie zapasowe są płatne albo nie ma ich wcale, a na pytanie o awarię dostajesz odpowiedź po dwóch dniach. Do tego cena. Hosting pod stronę firmową kosztuje dziś od około 150 do 400 zł rocznie, pod sklep 300-600 zł, i jeśli płacisz dwa razy tyle za pakiet z 2019 roku, przenosiny zwracają się w pierwszym roku.

Nie ma sensu przenosić strony z powodu jednej awarii albo dlatego, że ktoś polecił Ci swój hosting z linkiem. Migracja to ryzyko, choć małe, i dwie godziny pracy. Rób to, gdy przez kilka miesięcy widzisz, że obecny serwer Ci szkodzi. A jeśli problemem jest stara strona, a nie serwer, migracja nic nie da i lepiej rozważyć przebudowę strony, przy okazji na nowym hostingu.

Ja kieruję klientów na SEOhost. To link afiliacyjny: jeśli kupisz przez niego, dostanę prowizję, Ty zapłacisz tyle samo. Ważniejsze jest co innego: jeśli kupisz domenę albo hosting na SEOhost za moim pośrednictwem, przeniesienie strony robię za darmo, z wyjątkiem sklepów internetowych, które wyceniam osobno, bo mają zamówienia i integracje. Dla firmowej strony wizytówki to zwykle oznacza, że czytanie dalszej części tego tekstu jest opcjonalne. Dla sklepu i dla tych, którzy wolą zrobić to sami, czytaj dalej.

Zanim zaczniesz: kopia, dostępy, TTL i zamrożenie zmian

Cztery rzeczy dzień przed migracją. Bez nich każda z metod poniżej może się udać, ale nie musi.

  1. Pełna kopia zapasowa na dysk, poza obydwoma serwerami: pliki (cały katalog WordPressa, a nie sam wp-content) i baza danych w pliku .sql. Nie kopia w panelu hostingu, tylko plik, który masz u siebie. Stary hosting po wypowiedzeniu potrafi skasować konto szybciej, niż myślisz.
  2. Dostępy zebrane w jednym miejscu: FTP lub SFTP do obu serwerów, phpMyAdmin do obu, panel nowego hostingu, panel rejestratora domeny. Połowa nieudanych migracji, jakie widziałem, stanęła na tym, że ktoś nie pamiętał, gdzie ma domenę.
  3. Obniżenie TTL rekordów DNS domeny do 300 sekund, czyli pięciu minut, dzień wcześniej. TTL mówi serwerom na świecie, jak długo mają pamiętać stary adres. Przy domyślnych 24 godzinach część odwiedzających zobaczy stary serwer jeszcze przez dobę po przełączeniu. Przy pięciu minutach przełączenie jest niemal natychmiastowe.
  4. Zamrożenie zmian na starej stronie. Od momentu zrobienia kopii do przełączenia DNS nikt nie publikuje wpisów, nie edytuje produktów i nie odpowiada na komentarze, bo to wszystko zostanie na starym serwerze. Przy sklepie z zamówieniami to osobny temat, o którym piszę w liście po migracji.

Sprawdź też, jaką wersję PHP ma stary serwer, a jaką nowy. Skok o dwie wersje w górę bywa powodem białego ekranu po migracji, i winna jest wtedy stara wtyczka, nie migracja. Lepiej wiedzieć to wcześniej niż szukać po fakcie.

Metoda 1: wtyczka do migracji

Najprostsza droga i dla większości stron firmowych wystarczająca. Na nowym serwerze instalujesz czystego WordPressa (jednym kliknięciem w panelu hostingu, o czym pisałem w tekście co to jest WordPress), a wtyczka pakuje starą stronę do jednego pliku i rozpakowuje ją na nowej. Trzy wtyczki, które mają sens, i czym się różnią:

  • Duplicator. Tworzy paczkę ze strony i osobny plik instalatora. Nie wymaga instalowania WordPressa na nowym serwerze, bo instalator robi wszystko sam, i to on radzi sobie najlepiej ze zmianą adresu strony, jeśli przy okazji zmieniasz domenę. Moim zdaniem najlepszy wybór do przenosin między hostingami.
  • All-in-One WP Migration. Najprostszy w obsłudze: eksport do pliku, import przeciągnięciem. Darmowa wersja ma limit rozmiaru importowanego pliku, więc przy stronie z dużą galerią albo sklepie trzeba płacić za rozszerzenie albo wybrać inną wtyczkę. Dla małej strony firmowej działa bez zarzutu.
  • UpdraftPlus. Przede wszystkim wtyczka do kopii zapasowych do chmury. Przywracanie na inny adres wymaga płatnego dodatku, za to jeśli już robisz nią kopie, migracja jest naturalnym przedłużeniem.

Ograniczenia tej metody: duże strony wysypują się na limicie czasu wykonania skryptu na tanim hostingu, a wtyczka przenosi także to, czego nie chcesz, czyli śmieci w bazie, nieużywane motywy i pliki cache. Przed eksportem wyczyść stronę: usuń nieaktywne wtyczki i motywy, wyczyść cache, opróżnij kosz. Paczka będzie mniejsza, a import szybszy.

Metoda 2: ręcznie, przez FTP i bazę danych

Metoda dla stron, przy których wtyczki odmawiają, i dla tych, którzy chcą wiedzieć, co się dzieje. Kolejność:

  1. Pobierz cały katalog WordPressa ze starego serwera przez FTP (najlepiej SFTP, jeśli hosting go daje). Zwykle to public_html albo katalog o nazwie domeny.
  2. Wyeksportuj bazę danych z phpMyAdmin: wybierz bazę, zakładka Eksport, metoda szybka, format SQL.
  3. Na nowym serwerze utwórz w panelu pustą bazę danych i użytkownika z pełnymi uprawnieniami. Zapisz nazwę bazy, użytkownika, hasło i host bazy, bo nowy hosting rzadko używa „localhost”.
  4. Zaimportuj plik SQL do nowej bazy przez phpMyAdmin. Przy bazie powyżej kilkudziesięciu megabajtów import przez przeglądarkę potrafi się wywalić na limicie; wtedy panel hostingu zwykle ma osobny importer albo prosisz support o import z pliku.
  5. Wgraj pliki na nowy serwer i w pliku wp-config.php wpisz nowe dane bazy: nazwę, użytkownika, hasło, host. Sprawdź też prefiks tabel, bo jeśli na starym serwerze był inny niż wp_, w nowym config musi być ten sam.

I tu jest rzecz, której nie ma w większości poradników. Jeśli przy okazji zmieniasz adres strony (z domeny tymczasowej na docelową, z http na https, z www na bez www), zwykły import bazy nie wystarczy. WordPress zapisuje adresy w tysiącach miejsc w bazie, a część z nich w formie serializowanej, gdzie obok adresu stoi jego długość w znakach. Podmiana adresu w edytorze tekstu albo zapytaniem SQL psuje te wpisy i po migracji znikają ustawienia motywu, widgety i część konfiguracji buildera. Adresy podmienia się narzędziem, które rozumie serializację: wtyczką typu Better Search Replace albo poleceniem search-replace w WP-CLI, jeśli nowy hosting daje dostęp do terminala. Przy tej samej domenie ten krok pomijasz.

Metoda 3: migrator w panelu hostingu

Coraz więcej hostingów ma w panelu narzędzie, które po podaniu danych FTP starego serwera samo pobiera pliki i bazę i stawia stronę u siebie. Jeśli nowy hosting to oferuje, to najszybsza droga, bo omija limity przeglądarki i wtyczek. Wadą jest to, że nie widzisz, co robi, i po zakończeniu i tak musisz przejść listę kontrolną z końca tego tekstu. Osobna opcja to prośba do supportu nowego hostingu o przeniesienie: część firm robi to w cenie, część za opłatą, a jakość bywa różna. Ja przy własnych migracjach używam terminala i WP-CLI, bo to jedyna droga, która działa identycznie na każdej stronie, ale to już narzędzie dla kogoś, kto robi to regularnie.

Test na nowym serwerze przed zmianą DNS

To ten krok, który odróżnia migrację bez przerwy od migracji z dwudniową awarią. Zanim dotkniesz DNS, obejrzyj stronę na nowym serwerze, tak jakby domena już na niego wskazywała. Są dwa sposoby.

Pierwszy: plik hosts na Twoim komputerze. Dopisujesz w nim linię z adresem IP nowego serwera i nazwą Twojej domeny, i od tej chwili tylko Twój komputer widzi stronę z nowego serwera, a cały świat nadal ze starego. Klikasz po podstronach, wysyłasz testowy formularz, logujesz się do panelu, sprawdzasz zdjęcia. Jak coś nie działa, naprawiasz, a nikt poza Tobą tego nie widział. Po testach usuwasz linię z pliku hosts.

Drugi: domena tymczasowa, którą większość hostingów przydziela do konta. Prostszy, ale strona na tymczasowym adresie ma inne adresy w bazie, więc część rzeczy (linki bezwzględne, ustawienia motywu) wygląda inaczej niż będzie wyglądać po przełączeniu. Do sprawdzenia, czy w ogóle działa, wystarczy; do dokładnego testu lepszy jest plik hosts.

Zmiana DNS: przeniesienie strony to nie przeniesienie domeny

Ludzie mylą te dwie rzeczy i to źródło większości nieporozumień z hostingami. Przeniesienie strony to skopiowanie plików i bazy na inny serwer. Domena zostaje tam, gdzie była, u dotychczasowego rejestratora, i tylko wskazujesz jej nowy serwer. Robisz to w panelu rejestratora, na jeden z dwóch sposobów: zmieniasz serwery nazw (delegację DNS) na te, które podał nowy hosting, i wtedy wszystkie rekordy prowadzi nowy hosting, albo zostawiasz obsługę DNS u rejestratora i zmieniasz tylko rekord A na adres IP nowego serwera. Druga opcja jest bezpieczniejsza, gdy masz przy domenie pocztę u kogoś innego, bo zmiana delegacji bez przeniesienia rekordów MX odcina maile.

Przeniesienie domeny to zmiana rejestratora, czyli firmy, w której domena jest zarejestrowana i za którą płacisz co roku. Wymaga kodu AuthInfo od obecnego rejestratora, odblokowania domeny i potwierdzenia u nowego, a trwa od kilku godzin do kilku dni. Nie musisz tego robić, żeby przenieść stronę. Robisz to, gdy chcesz mieć domenę i hosting w jednym panelu albo obecny rejestrator jest drogi. Jeśli robisz obie rzeczy naraz, najpierw przenieś stronę i przełącz DNS, a transfer domeny zrób po tygodniu, gdy wszystko działa. Dwa ruchome elementy jednego dnia to za dużo.

Po zmianie rekordów propagacja trwa od kilku minut (jeśli obniżyłeś TTL dzień wcześniej) do 24-48 godzin (jeśli nie). W tym czasie stary serwer musi działać, więc nie wypowiadaj starego hostingu przed przełączeniem, tylko tydzień po nim.

Co sprawdzić po migracji: lista tego, co się psuje

Ta lista powstała z napraw, które robiłem po cudzych migracjach. W kolejności od najczęstszego problemu.

  • Maile z formularzy. Nowy serwer ma inną konfigurację poczty i formularz kontaktowy często przestaje dostarczać wiadomości albo lądują w spamie. Wyślij testowe zgłoszenie z każdego formularza. Najpewniejsze rozwiązanie to wtyczka SMTP podpięta pod skrzynkę firmową, nie wysyłka „z serwera”.
  • Certyfikat SSL. Na nowym serwerze trzeba go wystawić od nowa, zwykle jednym kliknięciem w panelu, ale dopiero po tym, jak DNS wskaże nowy serwer. Do tego czasu przeglądarki mogą pokazać ostrzeżenie. Po wystawieniu sprawdź, czy strona wymusza https i czy nie ma „mieszanej zawartości”, czyli obrazków wczytywanych po http.
  • Bezpośrednie odnośniki. Podstrony zwracają 404, bo brakuje reguł w .htaccess. Wejdź w ustawienia odnośników i kliknij zapisz bez zmian. To odtwarza plik.
  • Cache. Wtyczka cache pamięta stare ścieżki serwera. Wyczyść cały cache, a jeśli nowy hosting ma własny (na przykład LiteSpeed), skonfiguruj go od nowa i wyłącz duplikaty.
  • Wersja PHP i biały ekran. Jeśli po migracji strona jest pusta albo pokazuje błąd krytyczny, w panelu hostingu przełącz PHP na wersję ze starego serwera, sprawdź, że działa, a potem podnoś wersję i szukaj wtyczki, która nie wytrzymała.
  • Zadania cykliczne. WordPress uruchamia cron przy odwiedzinach, ale część hostingów blokuje to i zaplanowane wpisy, kopie i wysyłki newslettera stają. Sprawdź w panelu, czy cron systemowy jest ustawiony, albo skonfiguruj go u nowego dostawcy.
  • Uprawnienia plików i uploady. Jeśli po migracji nie da się wgrać zdjęcia do biblioteki, winne są uprawnienia katalogu uploads. Support hostingu naprawia to w minutę, ale trzeba o tym wiedzieć.
  • Adresy zaszyte na sztywno. Motyw albo builder potrafi trzymać pełny adres starego serwera tymczasowego w CSS albo w ustawieniach. Wyszukaj stary adres w bazie narzędziem, o którym pisałem przy metodzie ręcznej.
  • Sklep WooCommerce. Przy sklepie na czas migracji włącz tryb „tylko do odczytu”: wyłącz możliwość składania zamówień (najprościej komunikat i wyłączona kasa) na godzinę, w której robisz kopię i przełączasz DNS, najlepiej w nocy. Po przełączeniu porównaj liczbę zamówień na starym i nowym serwerze, sprawdź, czy bramka płatności dostarcza potwierdzenia (adresy powiadomień są na domenie, więc przy tej samej domenie nic nie zmieniasz), i wykonaj testowe zamówienie. Sklep z zamówieniami w trakcie przenosin to jedyny przypadek, w którym odradzam robienie tego samemu za pierwszym razem, i dlatego przy sklepach WooCommerce wyceniam migrację osobno.
  • Google. Przy tej samej domenie nic nie zgłaszasz w Search Console, adresy się nie zmieniają i pozycje zostają. Pozycje tracą strony, które przy migracji zmieniły adresy podstron bez przekierowań albo przez dwa dni zwracały błędy serwera, i odbudowa tego to praca z zakresu pozycjonowania, nie administracji. Po migracji sprawdź w Search Console, czy nie rośnie liczba błędów indeksowania, a jeśli chcesz mieć pewność, że nic nie ucierpiało, zrób bezpłatny audyt strony, który sprawdza szybkość, indeksację i SSL po zmianie.

Ile trwa i ile kosztuje przeniesienie WordPressa

Jak przenieść stronę WordPress na inny serwer, już wiesz, zostaje pytanie o czas i pieniądze. Mała strona firmowa: godzina do dwóch pracy plus dzień na obniżenie TTL i dzień na obserwację po przełączeniu. Strona z dużą galerią albo blogiem z kilkuset wpisami: pół dnia, głównie przez czas kopiowania plików. Sklep: dzień, w tym okno nocne na przełączenie. Koszt samodzielnie to zero złotych i Twój czas, o ile nie kupujesz płatnej wersji wtyczki.

U mnie przeniesienie strony wyceniam po rozmowie (przykłady migracji połączonych z SEO są w realizacjach), bo zależy od wielkości, liczby integracji i tego, czy przy okazji zmieniasz domenę. Wyjątek opisałem wyżej: przy zakupie hostingu lub domeny na SEOhost przez mój link migracja strony jest bezpłatna. Jeśli po przenosinach chcesz, żeby ktoś pilnował aktualizacji, kopii i awarii, opisałem to przy opiece nad stronami WordPress i WooCommerce, a przy sklepach w ramach obsługi e-commerce.

Od czego zacząć

Dziś: pełna kopia na dysk, zebranie dostępów, obniżenie TTL. Jutro: import na nowy serwer, test przez plik hosts, przełączenie DNS wieczorem. Za tydzień: wypowiedzenie starego hostingu, dopiero gdy wszystko działa i nikt nie zgłosił błędu.

Jeśli wolisz, żeby zrobił to ktoś, kto robił to kilkadziesiąt razy: wypełnij formularz bezpłatnej wyceny i zaznacz „przebudowa strony” albo opisz w polu uwag, skąd i dokąd przenosisz. Oddzwaniam w godzinach roboczych, a przy stronie firmowej z hostingiem kupionym przez mnie na SEOhost wracam po prostu z terminem, bez faktury. Pilna sprawa, bo stary hosting właśnie wygasa: 798 702 759.

Najczęstsze pytania o przenoszenie WordPressa

Czy przeniesienie strony na inny serwer obniży pozycje w Google?

Nie, jeśli domena i adresy podstron zostają te same, a strona nie zwraca błędów w trakcie przełączania. Pozycje spadają po migracjach, które zmieniły adresy bez przekierowań albo trwały dwa dni z niedziałającą stroną. Obniżony TTL i test przed zmianą DNS eliminują oba ryzyka.

Czy da się przenieść WordPressa bez FTP i bazy danych?

Tak, wtyczką do migracji, na przykład Duplicatorem albo All-in-One WP Migration, która pakuje pliki i bazę do jednego archiwum i rozpakowuje je na nowym serwerze z poziomu panelu WordPressa. Przy dużych stronach darmowe wersje mają limity rozmiaru, wtedy zostaje metoda ręczna albo migrator w panelu hostingu.

Ile trwa propagacja DNS po zmianie serwera?

Od kilku minut do 48 godzin, zależnie od TTL rekordów. Jeśli dzień przed migracją obniżysz TTL do 300 sekund, przełączenie widać niemal od razu. Przy domyślnych ustawieniach część odwiedzających widzi stary serwer jeszcze przez dobę, dlatego stary hosting musi w tym czasie działać.

Co z pocztą e-mail przy przenoszeniu strony?

Jeśli poczta działa na tym samym hostingu co strona, przenosisz też skrzynki i rekordy MX, i to jest osobna operacja z własnym oknem czasowym. Jeśli poczta jest u innego dostawcy, zmieniaj tylko rekord A domeny, a nie całą delegację DNS, bo inaczej odetniesz maile. Formularze na stronie po migracji podepnij pod SMTP.

Czy przenosić domenę razem z hostingiem?

Nie musisz. Przeniesienie strony wymaga tylko wskazania domenie nowego serwera w panelu obecnego rejestratora. Transfer domeny do nowego rejestratora to osobny proces z kodem AuthInfo, który zrób najwcześniej tydzień po udanej migracji strony, żeby nie mieszać dwóch zmian w jednym dniu.

Przewijanie do góry
Zadzwoń Darmowa wycena