migracja WordPress

Migracja WordPress – przewodnik krok po kroku [2026]

Planujesz przenieść swoją stronę WordPress na nowy hosting? Zmieniasz domenę? A może tylko aktualizujesz środowisko deweloperskie? Migracja WordPress to proces, który może wydawać się skomplikowany, ale z odpowiednim przygotowaniem i narzędziami przejdziesz przez nią gładko i bez stresu.

W tym przewodniku pokażę Ci dokładnie, jak przeprowadzić migrację WordPress krok po kroku – od przygotowania, przez wybór narzędzi, aż po testowanie i rozwiązywanie typowych problemów. Bez względu na to, czy jesteś freelancerem obsługującym klientów, czy właścicielem strony, ten przewodnik jest dla Ciebie.

Dlaczego migracja WordPress wymaga odpowiedniego podejścia?

Zanim przejdziemy do instrukcji, zrozujmy, dlaczego migracja WordPress to coś więcej niż tylko skopiowanie plików. WordPress to złożony system składający się z:

  • Plików (core WordPress, motywy, wtyczki, media)
  • Bazy danych (treści, ustawienia, użytkownicy)
  • Konfiguracji serwera (PHP, MySQL, .htaccess)
  • Zewnętrznych integracji (CDN, email, API)

Każdy z tych elementów musi być poprawnie przeniesiony i skonfigurowany. Jeden błąd może skutkować zepsutą stroną, utratą danych lub problemami z SEO.

Typy migracji WordPress

Zanim zaczniesz, określ, jakiego typu migrację WordPress przeprowadzasz:

1. Zmiana hostingu (ta sama domena)

  • Najprostsza – zachowujesz URL
  • Wymaga głównie transferu plików i bazy
  • Czas trwania: 1-3 godziny

2. Zmiana domeny (ten sam hosting)

  • Wymaga aktualizacji wszystkich URL w bazie
  • Potencjalne problemy z SSL
  • Czas trwania: 2-4 godziny

3. Zmiana hostingu i domeny

  • Najbardziej złożona
  • Łączy wyzwania obu powyższych
  • Czas trwania: 3-6 godzin

4. Z lokalnego środowiska na produkcję (lub odwrotnie)

  • Wymaga często dostosowania ścieżek
  • Problemy z różnymi wersjami PHP
  • Czas trwania: 2-4 godziny

5. Z podkatalogu do katalogu głównego (np. example.com/blogexample.com)

  • Specyficzne wyzwania z przekierowaniami
  • Wymaga dokładnych testów SEO
  • Czas trwania: 3-5 godzin

Przygotowanie do migracji – absolutne must-have

Krok 1: Pełny backup strony

Co musisz zbackupować:

  1. Wszystkie pliki WordPress
    • Katalog /wp-content/ (motywy, wtyczki, uploady)
    • Pliki core (wp-config.php, .htaccess, index.php)
    • Wszystkie niestandardowe pliki
  2. Kompletna baza danych
    • Pełny export przez phpMyAdmin lub CLI
    • Format .sql z kompresją gzip
  3. Dokumentacja konfiguracji
    • Wersja PHP
    • Limity pamięci
    • Ustawienia serwera
    • Lista aktywnych wtyczek
    • Dane dostępowe (FTP, cPanel, baza danych)

Jak utworzyć backup ręcznie:

bash

`# Backup plików (przez SSH) 
cd /ścieżka/do/wordpress 
tar -czf backup-pliki-$(date +%Y%m%d).tar.gz .
# Backup bazy danych 
mysqldump -u nazwa_użytkownika -p nazwa_bazy > backup-baza-$(date +%Y%m%d).sql 
gzip backup-baza-$(date +%Y%m%d).sql`

Weryfikacja backupu:

  • Sprawdź rozmiar plików (czy nie jest podejrzanie mały?)
  • Rozpakuj backup testowo
  • Przejrzyj początek i koniec pliku SQL (czy nie jest uszkodzony?)

Krok 2: Audyt przed migracją

Pobierz checklistę w PDF

Przed migracją zrób audyt z tą checklistą

Zanim zaczniesz migrację WordPress, przeprowadź audyt obecnej strony:

Checklist audytu:

  • Jaka wersja WordPress? (Dashboard → Aktualizacje)
  • Jaka wersja PHP i MySQL? (Panel hostingu lub Dashboard → Zdrowie witryny)
  • Lista wszystkich aktywnych wtyczek z wersjami □ Jaki motyw i czy jest child theme?
  • Czy są jakieś customowe pliki w root directory?
  • Rozmiar bazy danych (phpMyAdmin → sprawdź rozmiar)
  • Rozmiar katalogu uploads
  • Czy używane są hardcoded linki absolutne?
  • Czy jest aktywny CDN lub cache?
  • Jakie zewnętrzne integracje (analytics, email, CRM)?

Export ustawień kluczowych wtyczek:

Przed migracją wyeksportuj ustawienia wtyczek, które to umożliwiają:

  • SEO (Yoast, Rank Math) → Narzędzia → Export
  • Cache (WP Rocket, W3 Total Cache) → zapisz zrzut ekranu ustawień
  • Formularze kontaktowe → Export formularzy
  • Page buildery (Elementor) → System Info → skopiuj

Krok 3: Przygotowanie środowiska docelowego

Upewnij się, że nowy hosting spełnia wymagania:

Minimalne wymagania WordPress:

  • PHP 7.4+ (zalecane 8.1+)
  • MySQL 5.7+ lub MariaDB 10.3+
  • Mod_rewrite (Modyfikacja przepisywania) dla pretty permalinks
  • HTTPS / SSL

Zalecane ustawienia PHP dla migracji:

max_execution_time = 300 
memory_limit = 256M (lub więcej dla dużych stron) 
upload_max_filesize = 128M 
post_max_size = 128M 
max_input_time = 300

Przygotuj nową bazę danych:

  1. Utwórz pustą bazę MySQL na nowym hostingu
  2. Utwórz użytkownika z pełnymi uprawnieniami
  3. Zapisz dane dostępowe:
    • Nazwa bazy
    • Nazwa użytkownika
    • Hasło
    • Host (zazwyczaj localhost)

Metody migracji WordPress – narzędzia i wtyczki

Metoda 1: Wtyczka All-in-One WP Migration (najprostsza)

Kiedy używać: Małe i średnie strony (do 512MB), brak doświadczenia technicznego

Zalety:

  • Niezwykle prosta obsługa
  • Automatyczna zmiana URL
  • Brak potrzeby dostępu do bazy danych

Wady:

  • Limit 512MB w darmowej wersji
  • Płatne rozszerzenia dla większych stron
  • Mniej kontroli nad procesem

Instrukcja krok po kroku:

  1. Na starej stronie:
    • Zainstaluj wtyczkę „All-in-One WP Migration”
    • Przejdź do All-in-One WP Migration → Export
    • Wybierz „Export to File”
    • Poczekaj na wygenerowanie pliku
    • Pobierz plik .wpress
  2. Na nowej stronie:
    • Zainstaluj czystą kopię WordPress
    • Zainstaluj wtyczkę „All-in-One WP Migration”
    • Przejdź do All-in-One WP Migration → Import
    • Przeciągnij plik .wpress lub kliknij „Import From File”
    • Poczekaj na zakończenie importu
    • Zaloguj się używając starych danych

Obejście limitu 512MB (legalnie):

php

*// Dodaj do wp-config.php przed "That's all, stop editing!"* 
define('UPLOAD_MAX_FILESIZE', '2048M'); 
define('POST_MAX_SIZE', '2048M'); 
define('MAX_EXECUTION_TIME', '600');

Metoda 2: Duplicator (dla średnich i dużych stron)

Kiedy używać: Strony powyżej 512MB, potrzebujesz więcej kontroli

Zalety:

  • Profesjonalne narzędzie
  • Sprawdza integralność przed migracją
  • Dobra diagnostyka problemów
  • Opcje zaawansowane dla techników

Wady:

  • Bardziej skomplikowany proces
  • Wymaga więcej przestrzeni na serwerze
  • Czasem problemy z bardzo dużymi bazami

Instrukcja migracji Duplicatorem:

  1. Przygotowanie na starej stronie:
    • Zainstaluj wtyczkę „Duplicator”
    • Przejdź do Duplicator → Packages → Create New
    • Kliknij „Next” (lub dostosuj ustawienia zaawansowane)
    • Poczekaj na skan – napraw ewentualne błędy
    • Kliknij „Build” i poczekaj na pakiet
  2. Pobierz dwa pliki:
    • installer.php (skrypt instalatora)
    • [nazwa]_archive.zip (archiwum strony)
  3. Przygotowanie nowego serwera:
    • Utwórz pustą bazę danych
    • Prześlij oba pliki do rgłównego katalogu nowego hostingu
    • Upewnij się, że katalog jest pusty (usuń domyślne pliki WordPress)
  4. Instalacja na nowym serwerze:
    • Otwórz w przeglądarce: https://nowadomena.pl/installer.php
    • Zaakceptuj warunki i kliknij „Next”
    • Wprowadź dane do bazy:
      • Host: localhost (lub inny podany przez hosting)
      • Database Name: nazwa_nowej_bazy
      • User: nazwa_użytkownika
      • Password: hasło
    • Kliknij „Test Connection” → powinieneś zobaczyć „Success”
    • Kliknij „Next” i poczekaj na import
  5. Finalizacja:
    • Po zakończeniu zobaczysz podsumowanie
    • Zaloguj się do nowej strony (stare dane logowania)
    • WAŻNE: Usuń pliki installer.php i archiwum .zip ze względów bezpieczeństwa

Rozwiązywanie problemów Duplicatora:

Problem: "Archive file size exceeds web server's maximum upload" → Rozwiązanie: Prześlij pliki przez FTP zamiast przez przeglądarkę
Problem: "Table doesn't exist" podczas instalacji → Rozwiązanie: Sprawdź collation bazy (powinno być utf8mb4_unicode_ci)

Metoda 3: Ręczna migracja (maksymalna kontrola)

Kiedy używać: Bardzo duże strony, customowe setup, problemy z wtyczkami

Zalety:

  • Pełna kontrola nad procesem
  • Najszybsza dla dużych stron (gdy masz SSH)
  • Brak limitów rozmiaru
  • Rozumiesz dokładnie, co się dzieje

Wady:

  • Wymaga wiedzy technicznej
  • Ryzyko błędów przy edycji bazy
  • Czasochłonna dla początkujących

Instrukcja ręcznej migracji WordPress:

Krok 1: Export plików ze starego serwera

Przez FTP (FileZilla, Cyberduck):

  • Połącz się ze starym hostingiem
  • Pobierz cały katalog WordPress
  • Może trwać 30-120 min dla dużych stron

Przez SSH (znacznie szybsze):

bash

`# Skompresuj pliki 
cd /ścieżka/do/wordpress 
tar -czf strona-backup.tar.gz .
# Pobierz przez rsync (jeśli masz dostęp do obu serwerów) 
rsync -avz -e ssh strona-backup.tar.gz user@nowy-serwer:/ścieżka/docelowa/`

Krok 2: Export bazy danych

Przez phpMyAdmin:

  1. Zaloguj się do phpMyAdmin na starym hostingu
  2. Wybierz bazę danych WordPress
  3. Kliknij zakładkę „Export”
  4. Metoda: „Quick” (dla małych baz) lub „Custom” (dla dużych)
  5. Format: SQL
  6. Zaznacz „Add DROP TABLE” (ważne!)
  7. Kompresja: gzip
  8. Kliknij „Go” i pobierz plik

Przez SSH/Terminal (szybsze dla dużych baz):

bash

`# Export z kompresją 
mysqldump -u username -p database_name | gzip > wordpress-db-backup.sql.gz
# Dla większych baz - z dodatkowym buforem 
mysqldump -u username -p database_name \ 
--single-transaction \ 
--quick \ 
--lock-tables=false | gzip > wordpress-db-backup.sql.gz`

Krok 3: Import na nowym serwerze

Import plików:

Przez FTP:

  • Połącz się z nowym hostingiem
  • Prześlij wszystkie pliki do katalogu public_html (lub www)

Przez SSH:

bash

*# Rozpakuj archiwum* 
cd /ścieżka/do/nowego/wordpress 
tar -xzf strona-backup.tar.gz

Import bazy danych:

Przez phpMyAdmin:

  1. Zaloguj się do phpMyAdmin na nowym hostingu
  2. Wybierz nową pustą bazę danych
  3. Kliknij „Import”
  4. Wybierz plik .sql lub .sql.gz
  5. Kliknij „Go” i poczekaj (może trwać kilka minut)

Przez SSH:

bash

`# Import zwykłego pliku SQL 
mysql -u username -p database_name < wordpress-db-backup.sql
# Import skompresowanego pliku 
gunzip < wordpress-db-backup.sql.gz | mysql -u username -p database_name`

Krok 4: Aktualizacja wp-config.php

Edytuj plik wp-config.php na nowym serwerze:

php

*// Znajdź te linie i zaktualizuj danymi nowego hostingu* 
define('DB_NAME', 'nazwa_nowej_bazy'); 
define('DB_USER', 'nowy_user'); 
define('DB_PASSWORD', 'nowe_hasło'); 
define('DB_HOST', 'localhost'); *// lub inny host podany przez hosting*
//Opcjonalnie: zmień prefiksy tabel (jeśli konfliktują)* 
$table_prefix = 'wp_'; *// lub customowy prefiks*

Krok 5: Zmiana URL w bazie danych (jeśli zmieniasz domenę)

METODA A: WP-CLI (najszybsza i najbezpieczniejsza)

bash

`# Zmień URL jedną komendą 
wp search-replace 'https://stara-domena.pl' 'https://nowa-domena.pl' --all-tables
# Z dry-run (test bez zmian) 
wp search-replace 'https://stara-domena.pl' 'https://nowa-domena.pl' --all-tables --dry-run`

METODA B: Wtyczka Better Search Replace

  1. Zainstaluj wtyczkę „Better Search Replace”
  2. Przejdź do Tools → Better Search Replace
  3. Search for: https://stara-domena.pl
  4. Replace with: https://nowa-domena.pl
  5. Zaznacz wszystkie tabele
  6. Najpierw zaznacz „Run as dry run” (test)
  7. Sprawdź wyniki, potem odznacz dry run i uruchom

METODA C: Ręczne SQL (dla zaawansowanych)

sql

*- UWAGA: Najpierw BACKUP bazy!- Zmień URL w options* 
UPDATE wp_options SET option_value = REPLACE(option_value, '<https://stara-domena.pl>', '<https://nowa-domena.pl>') 
WHERE option_name = 'home' OR option_name = 'siteurl'; 
*- Zmień URL w postach* 
UPDATE wp_posts 
SET post_content = REPLACE(post_content, '<https://stara-domena.pl>', '<https://nowa-domena.pl>'); 
UPDATE wp_posts 
SET guid = REPLACE(guid, '<https://stara-domena.pl>', '<https://nowa-domena.pl>'); 
*- Zmień URL w meta* 
UPDATE wp_postmeta 
SET meta_value = REPLACE(meta_value, '<https://stara-domena.pl>', '<https://nowa-domena.pl>');

WAŻNE: Nigdy nie zmieniaj guid dla postów jeśli nie musisz – może to wpłynąć na RSS feedy.

Metoda 4: Managed WordPress Hosting (np. WP Engine, Kinsta)

Większość zarządzanych hostingów WordPress oferuje własne narzędzia migracji:

WP Engine:

  • Bezpłatny plugin „WP Engine Automated Migration”
  • Support zrobi migrację za Ciebie (included)

Kinsta:

  • MyKinsta → Sites → Add Site → Import from URL
  • Lub contact support dla kompleksowej migracji

SiteGround:

  • SG Site Scanner + Migrator
  • Lub manual przez plugin Duplicator

Najczęstsze problemy podczas migracji WordPress

Problem 1: Biały ekran śmierci (White Screen of Death)

Objawy: Strona wyświetla tylko biały ekran, brak komunikatów błędów

Przyczyny i rozwiązania:

A. Przekroczony limit pamięci PHP

php

*// Dodaj do wp-config.php (przed "That's all")* 
define('WP_MEMORY_LIMIT', '256M');

B. Niekompatybilny motyw lub wtyczka

php

*// Tymczasowo wyłącz wszystkie wtyczki - dodaj do wp-config.php* 
define('WP_DISABLE_PLUGINS', true);

Następnie zaloguj się i aktywuj wtyczki po kolei, aby znaleźć winowajcę.

C. Błąd w pliku .htaccess

  • Przez FTP usuń plik .htaccess
  • Zaloguj się do WordPress Admin
  • Przejdź do Ustawienia → Bezpośrednie odnośniki
  • Kliknij „Zapisz zmiany” (wygeneruje nowy .htaccess)

D. Włącz tryb debugowania:

php

*// Dodaj do wp-config.php* define('WP_DEBUG', true); define('WP_DEBUG_LOG', true); define('WP_DEBUG_DISPLAY', false);

Sprawdź plik /wp-content/debug.log dla szczegółów błędu.

Problem 2: Broken images/media (404 na obrazkach)

Objawy: Tekst się wyświetla, ale wszystkie obrazki są „złamane”

Przyczyny i rozwiązania:

A. Niepoprawne ścieżki w bazie danych

Prawdopodobnie nie zmieniłeś URL w bazie. Użyj Better Search Replace lub WP-CLI (patrz wyżej).

B. Nieprzesłany katalog uploads

Sprawdź czy istnieje /wp-content/uploads/ i zawiera pliki:

bash

ls -la wp-content/uploads/

Jeśli brak, prześlij katalog ze starego serwera.

C. Błędne uprawnienia do plików

bash

*# Ustaw poprawne uprawnienia* 
find /ścieżka/do/wordpress/wp-content/uploads -type d -exec chmod 755 {} \\; 
find /ścieżka/do/wordpress/wp-content/uploads -type f -exec chmod 644 {} \\;

D. CDN nadal wskazuje na starą lokalizację

Jeśli używasz CloudFlare, KeyCDN itp.:

  • Wyczyść cache CDN
  • Zaktualizuj ustawienia origin server
  • Poczekaj 24h na propagację DNS

Problem 3: Baza danych nie chce się zaimportować

Objawy: Błędy podczas importu SQL przez phpMyAdmin

Przyczyny i rozwiązania:

A. Plik SQL za duży dla phpMyAdmin

Zwiększ limity w php.ini:

ini

upload_max_filesize = 512M 
post_max_size = 512M 
max_execution_time = 600

Lub użyj SSH:

bash

mysql -u username -p database_name < backup.sql

B. Błąd collation

Jeśli widzisz błędy typu „Unknown collation: utf8mb4_unicode_520_ci”:

Edytuj plik SQL w edytorze tekstu (Notepad++, Sublime):

  • Znajdź wszystkie wystąpienia utf8mb4_unicode_520_ci
  • Zamień na utf8mb4_unicode_ci
  • Zapisz i importuj ponownie

C. Prefiksy tabel konfliktują

Jeśli na nowym hostingu już istnieją tabele z tym samym prefiksem:

Opcja 1: Usuń istniejące tabele (jeśli są puste)
Opcja 2: Zmień prefiks w wp-config.php i w SQL:

sql

*- W pliku SQL - zamień wszystkie wystąpienia- PRZED: wp_options- PO: wpnew_options*

Problem 4: 404 na wszystkich stronach oprócz homepage

Objawy: Homepage działa, ale wszystkie inne strony zwracają 404

Przyczyna: Permalinks nie są poprawnie skonfigurowane lub mod_rewrite nie działa

Rozwiązania:

A. Zapisz ponownie linki trwałe (najprostsze)

  • Zaloguj się do WordPress Admin
  • Przejdź do Ustawienia → Bezpośrednie odnośniki
  • Po prostu kliknij „Zapisz zmiany” (nic nie zmieniaj)

B. Sprawdź czy .htaccess istnieje i jest poprawny

Plik .htaccess powinien zawierać:

apache

`# BEGIN WordPress 
<IfModule mod_rewrite.c> 
RewriteEngine On 
RewriteBase / 
RewriteRule ^index\.php$ - [L] 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteRule . /index.php [L] 
</IfModule>
#END WordPress

C. Włącz mod_rewrite na serwerze

Skontaktuj się z hostingiem, aby upewnić się, że mod_rewrite jest włączony.

Problem 5: Nie mogę się zalogować do wp-admin

Objawy: Błąd „Incorrect password” mimo poprawnego hasła

Przyczyny i rozwiązania:

A. Sesje PHP zapisane w niewłaściwej lokalizacji

Wyczyść cookies w przeglądarce i spróbuj ponownie.

B. Resetuj hasło przez bazę danych

  1. Otwórz phpMyAdmin
  2. Znajdź tabelę wp_users
  3. Znajdź swojego użytkownika
  4. Kliknij „Edit”
  5. W polu user_pass wpisz: 21232f297a57a5a743894a0e4a801fc3
  6. Z menu „Function” wybierz MD5
  7. Zapisz – hasło to teraz: admin
  8. Zaloguj się i natychmiast zmień hasło

C. Dodaj nowego admina przez SQL

sql

INSERT INTO wp_users (user_login, user_pass, user_nicename, user_email, user_status`) 
VALUES ('emergency', MD5('temppassword123'), 'emergency', 'twoj@email.com', '0');
INSERT INTO wp_usermeta (umeta_id, user_id, meta_key, meta_value) 
VALUES (NULL, (SELECT ID FROM wp_users WHERE user_login = 'emergency'), 'wp_capabilities', 'a:1:{s:13:"administrator";s:1:"1";}');
INSERT INTO wp_usermeta (umeta_id, user_id, meta_key, meta_value) 
VALUES (NULL, (SELECT ID FROM wp_users WHERE user_login = 'emergency'), 'wp_user_level', '10');`

Zaloguj się jako emergency / temppassword123

Problem 6: Mixed content warnings (HTTP/HTTPS)

Objawy: Ikonka kłódki jest przekreślona, konsola pokazuje mixed content errors

Przyczyna: Niektóre zasoby (obrazki, CSS, JS) ładują się przez HTTP mimo że strona jest na HTTPS

Rozwiązania:

A. Really Simple SSL plugin

  • Zainstaluj i aktywuj – rozwiąże większość problemów automatycznie

B. Manualna naprawa przez search-replace

bash

wp search-replace '<http://twoja-domena.pl>' '<https://twoja-domena.pl>' --all-tables

C. Force HTTPS w wp-config.php

php

`// Dodaj na początku wp-config.php (przed "That's all") 
define('FORCE_SSL_ADMIN', true);
// Jeśli jesteś za proxy/load balancer 
if (isset($_SERVER['HTTP_X_FORWARDED_PROTO']) && $_SERVER['HTTP_X_FORWARDED_PROTO'] === 'https') { $_SERVER['HTTPS'] = 'on'; }`

Problem 7: „Error establishing database connection”

Objawy: Strona wyświetla tylko komunikat o błędzie połączenia z bazą

Przyczyny i rozwiązania:

A. Błędne dane w wp-config.php

Dokładnie sprawdź:

php

define('DB_NAME', 'dokładna_nazwa_bazy'); 
define('DB_USER', 'dokładna_nazwa_użytkownika'); 
define('DB_PASSWORD', 'dokładne_hasło'); *// uważaj na znaki specjalne!* 
define('DB_HOST', 'localhost'); *// lub inny host*

B. Użytkownik nie ma uprawnień do bazy

W phpMyAdmin → Privileges:

  • Upewnij się, że użytkownik ma przypisane uprawnienia do tej konkretnej bazy
  • Powinien mieć: SELECT, INSERT, UPDATE, DELETE, CREATE, DROP, ALTER

C. Baza danych nie istnieje

Sprawdź w phpMyAdmin czy baza o tej nazwie faktycznie istnieje. Może być literówka w nazwie.

D. Host bazy danych

Niektóre hostingi używają nietypowych hostów:

  • Zamiast localhost może być 127.0.0.1
  • Lub mysql.twojadomena.pl
  • Lub konkretny adres IP
  • Sprawdź dokumentację hostingu

Checklist Testowania – co sprawdzić po migracji WordPress

Po zakończeniu migracji WordPress nie odpalaj od razu na żywo! Systematyczne testowanie zapobiegnie problemom.

Pobierz checklistę w PDF

Sprawdź stronę po migracji

Poziom 1: Testy podstawowe (must-have)

Homepage ładuje się poprawnie

  • Wyświetla się cała zawartość
  • Obrazki się ładują
  • Menu działa
  • Footer się wyświetla

Możesz się zalogować do wp-admin

  • Stare dane logowania działają
  • Dashboard się ładuje bez błędów

Strony i posty działają

  • Otwórz 5-10 różnych stron/postów
  • Sprawdź czy formatowanie jest ok
  • Obrazki w treści się wyświetlają

Permalinki działają

  • Wszystkie strony mają clean URLs
  • Brak 404 na znanym contencie

Formularze kontaktowe działają

  • Wyślij testową wiadomość
  • Sprawdź czy przyszła (inbox i spam)

SSL/HTTPS działa poprawnie

  • Brak warningów mixed content
  • Zielona kłódka w przeglądarce
  • Automatic redirect HTTP → HTTPS

Poziom 2: Testy funkcjonalności (zalecane)

Wszystkie wtyczki działają

  • Sprawdź dashboard każdej kluczowej wtyczki
  • Testuj funkcje (np. slider, galerie, formularze)
  • Nie ma błędów PHP w debug.log

Motyw wyświetla się poprawnie

  • Header, footer, sidebar
  • Wszystkie sekcje homepage
  • Responsywność (mobile, tablet, desktop)
  • Customizer settings są zachowane

Media library

  • Obrazki się wyświetlają w bibliotece
  • Możesz upload nowe obrazki
  • Thumbnails się generują

Wyszukiwarka

  • Wpisz popularne query
  • Sprawdź czy wyniki są sensowne

Komentarze (jeśli używasz)

  • Stare komentarze się wyświetlają
  • Możesz dodać nowy komentarz testowy

E-commerce (WooCommerce/Easy Digital Downloads)

  • Produkty się wyświetlają
  • Koszyk działa
  • Checkout (test transaction)
  • Payment gateways są skonfigurowane
  • Email notifications działają

Multi-language (jeśli używasz WPML/Polylang)

  • Wszystkie języki się przełączają
  • Tłumaczenia są kompletne
  • Language switcher działa

Custom post types

  • Portfolio, testimonials, team members itp.
  • Wszystkie custom fields są zachowane

Poziom 3: Testy techniczne (dla profesjonalistów)

Performance/Speed

  • PageSpeed Insights (min. 90/100)
  • GTmetrix report
  • Czas ładowania poniżej 3s
  • TTFB poniżej 600ms

SEO technical

  • XML sitemap generuje się (yourdomain.com/sitemap.xml)
  • Robots.txt jest poprawny
  • Meta titles i descriptions się wyświetlają
  • Structured data (schema.org) – test w Google Rich Results

Database integrity

bash

*# Przez WP-CLI* 
wp db check 
wp db optimize

Broken links

Analytics i tracking

  • Google Analytics śledzi wizyty
  • Google Tag Manager fire
  • Facebook Pixel (jeśli używasz)
  • Conversion tracking

Email delivery

  • Test emails z różnych formularzy
  • WooCommerce order notifications
  • Password reset email
  • Sprawdź w mail-tester.com (scoring min. 8/10)

Cron jobs

bash

wp cron event list *# sprawdź scheduled tasks* 
wp cron test *# test czy cron działa*

Security

  • Scan przez Sucuri SiteCheck
  • Sprawdź uprawnienia do plików (644/755)
  • Usuń niepotrzebne pliki (installer.php, backup files)
  • Zmień domyślne prefiksy tabel (jeśli nie zmieniłeś)

Poziom 4: Cross-browser i device testing

Desktop browsers

  • Chrome (Windows & Mac)
  • Firefox
  • Safari (Mac)
  • Edge

Mobile devices

  • iPhone (Safari)
  • Android (Chrome)
  • Tablet (iPad)

Responsive breakpoints

  • 320px (small phone)
  • 768px (tablet)
  • 1024px (laptop)
  • 1920px (desktop)

Checklist (dodatkowa) dla migracji z zmianą domeny

Pobierz checklistę w PDF

Przeprowadź migrację ze zmianą domeny bez problemu!
Z tą checklistą sprawdź DODATKOWO!

Jeśli zmieniasz domenę, dodatkowo sprawdź:

Redirects 301

  • Stara domena przekierowuje na nową (całą witrynę)
  • Pojedyncze strony kierują do odpowiedników
  • Użyj Redirect Checker online tool

DNS propagacja

  • Sprawdź w whatsmydns.net czy propagacja zakończona
  • Upewnij się, że oba A records (www i non-www) wskazują na nowy serwer

SSL dla nowej domeny

  • Certyfikat SSL zainstalowany
  • Auto-renewal włączony
  • Mixed content resolved

Aktualizacja w Google

  • Google Search Console – dodaj nową własność
  • Zgłoś nową sitemap
  • Narzędzie do żądania zmiany adresu
  • Google Analytics – update własność

Update w social media

  • Facebook – update URL
  • Twitter/X – update URL
  • LinkedIn – update strony firmy
  • Open Graph tags pokazują poprawne zdjęcia

Update linki zewnętrzne (external links)

  • Podpis e-mail
  • Katalogi firm
  • Posty gościnne na innych blogach
  • Linki w bio na social media

Optymalizacja po migracji WordPress

Po zakończonej migracji WordPress to idealny moment na czyszczenie i optymalizację.

1. Oczyść bazę danych

bash

`# Przez WP-CLI 
wp db optimize

# Usuń rewizje postów 
wp post delete $(wp post list --post_type='revision' --format=ids) --force

# Usuń transients 
wp transient delete --all

# Usuń spam comments 
wp comment delete $(wp comment list --status=spam --format=ids) --force`

Lub użyj wtyczki WP-Optimize lub Advanced Database Cleaner.

2. Regeneruj miniatury

Jeśli motyw używa innych rozmiarów miniatur:

bash

wp media regenerate --yes

Lub wtyczka: Regenerate Thumbnails

3. Ustaw cache

Zainstaluj i skonfiguruj cache plugin:

  • WP Rocket (płatny, ale wart każdej złotówki)
  • W3 Total Cache (darmowy, zaawansowany)
  • WP Super Cache (darmowy, prosty)

Podstawowa konfiguracja:

  • Enable page caching
  • Enable browser caching
  • Minify HTML, CSS, JS
  • Enable GZIP compression
  • Lazy load images

4. Konfiguracja CDN

Dla globalnych odbiorców rozważ CDN:

  • CloudFlare (darmowy tier wystarczy)
  • BunnyCDN (tani i szybki)
  • KeyCDN (dobry performance)

5. Optymalizacja obrazu

Zainstaluj plugin do automatycznej kompresji:

  • ShortPixel (100 free/month)
  • Imagify (100 MB/month free)
  • Smush (unlimited free, ale wolniejszy)

6. Wzmocnienie bezpieczeństwa

Po migracji zabezpiecz stronę:

php

`// wp-config.php - disable file editing define('DISALLOW_FILE_EDIT', true);
*// Zmień security keys// Generuj nowe na: https://api.wordpress.org/secret-key/1.1/salt/*`

Zainstaluj security plugin:

  • Wordfence (comprehensive)
  • Sucuri Security (lightweight)
  • iThemes Security (user-friendly)

Enable 2FA dla konta admin:

  • Two Factor Authentication plugin
  • Lub native 2FA (WordPress 5.6+)

Pobierz mój nowy przewodnik: „WordPress Security Kit”!

Zapisz się na mój newsletter i ochroń swoją stronę przed hakerami!

Przełączenie na produkcję – ostatnie kroki

Pre-launch checklist – Lista kontrolna przed uruchomieniem

  • Wszystkie testy przeszły
  • Backup nowej strony stworzony
  • DNS rekordy gotowe do zmiany
  • Email powiadomienia wysłane do klienta/zespołu
  • Strona konserwacji gotowa (na wypadek problemów)
  • Rollback – plan przygotowany

Zmiana DNS (dla migracji z zmianą domeny)

  1. Obniż TTL 24h przed migracją
    • Zmień TTL na 300s (5 minut)
    • Czekaj 24h na propagację
  2. W dniu migracji:
    • Zmień A record na IP nowego serwera
    • Jeśli używasz CloudFlare, włącz orange cloud (proxy)
    • Poczekaj 5-60 minut na propagację
  3. Po propagacji:
    • Test czy domena wskazuje na nowy serwer: ping yourdomain.com
    • Sprawdź w różnych lokalizacjach: whatsmydns.net
    • Po 24h zwiększ TTL z powrotem (3600-86400)

Monitoring po przełączeniu

Pierwsze 48h po migracji WordPress to kluczowy okres:

Minuty 0-30:

  • Sprawdzaj każde 5 minut czy strona działa
  • Monitoruj dzienniki błędów w czasie rzeczywistym
  • Monitorowanie czasu sprawności (UptimeRobot, Pingdom)

Godziny 1-24:

  • Sprawdzaj co godzinę
  • Monitoruj Google Analytics w czasie rzeczywistym
  • Sprawdź współczynnik błędów w Search Console
  • Monitoruj zasoby serwera (CPU, RAM, disk)

Dni 2-7:

  • Sprawdzaj 2x dziennie
  • Przegląd dzienniki błędów
  • Monitorowanie wydajności
  • Opinie użytkowników

Rollback plan

Jeśli coś pójdzie bardzo źle, musisz mieć plan wycofania:

  1. Zachowaj backup starej strony przez minimum 30 dni
  2. Zachowaj stare rekordy DNS zapisane
  3. Procedura rollback:
    • Zmień DNS z powrotem na stary serwer
    • W przypadku tej samej domeny: przywróć backup na starym serwerze
    • Komunikat dla użytkowników o problemach technicznych

Kiedy rollback:

  • Strona nie działa > 10 minut i nie wiesz dlaczego
  • Masowa utrata danych
  • Krytyczne naruszenie bezpieczeństwa
  • Nie działa e-commerce przez > 5 minut

Czyszczenie po migracji

Po udanej migracji i okresie monitorowania:

Usuń niepotrzebne pliki

  • Backup na serwerze
  • installer.php (Duplicator)
  • .wpress files (All-in-One WP Migration)
  • Dzienniki debugowania

Wyłącz tryb debugowania

php

*// w wp-config.php* define('WP_DEBUG', false); define('WP_DEBUG_LOG', false);

Dezaktywuj wtyczki migracyjne

  • Duplicator
  • All-in-One WP Migration
  • Better Search Replace (Zostaw na wypadek, ale nie muszą być aktywne)

Anuluj stary hosting

  • Po 30 dniach bez problemów
  • Pobierz finalny backup przed anulowaniem
  • Anuluj automatyczne odnawianie

Update dokumentów

  • Nowe dane dostępowe w password manager
  • Zaktualizuj wiki/dokumentację techniczną
  • Powiadom zespół o nowych referencjach

Najlepsze praktyki dla przyszłych migracji

Każda migracja WordPress to lekcja. Oto jak robić to lepiej następnym razem:

1. Planuj z wyprzedzeniem

  • Migracje w środku tygodnia (wt-czw) lepsze niż weekend
  • Unikaj okresy wzmożonego ruchu
  • Poinformuj użytkowników z 7-dniowym wyprzedzeniem
  • Migruj w poza godzinami szczytu (2-6 rano)

2. Automatyzuj co się da

  • Używaj WP-CLI dla powtarzalne zadania
  • Skrypty bash dla standardowych operacji
  • CI/CD dla staging → przepływy produkcyjne

3. Dokumentuj proces

Twórz własny checklist dla każdego typu migracji:

  • Wyjątkowe wyzwania każdego projektu
  • Śledzenie czasu (ile co zajmuje)
  • Wyciągnięte wnioski

4. Testy na staging first

Nigdy nie migruj bezpośrednio na produkcję:

  1. Migruj na staging/subdomenę
  2. Testuj wszystko
  3. Napraw problemy
  4. Dopiero potem produkcja

5. Komunikacja jest kluczem

  • Ogłoszenie przed migracją (7 dni przed)
  • Dzień powiadomienia (tu migrujemy, może być przestój)
  • Raport po migracji (co się zmieniło, znane problemy)
  • Follow-up (prosba o feedback)

Podsumowanie – migracja WordPress bez stresu

Migracja WordPress nie musi być stresująca, jeśli podejdziesz do niej systematycznie:

  1. Przygotuj się – backup, audyt, plan
  2. Wybierz właściwe narzędzie – wtyczka dla prostych stron, ręcznie dla złożonych
  3. Testuj dokładnie – lepiej 2 godziny testów niż 2 dni naprawiania w panice
  4. Monitoruj po przełączeniu – pierwsze 48h to kluczowy okres
  5. Dokumentuj – przyszłe-ty podziękuje teraźniejszemu-ty

Pamiętaj: nawet najbardziej doświadczeni developerzy spotykają się z problemami podczas migracji. Kluczem jest mieć backup i plan B. Z tym przewodnikiem jesteś gotowy na migrację WordPress każdego rozmiaru.

Powodzenia z migracją! I pamiętaj – pierwszy raz jest najtrudniejszy. Za trzecim razem będziesz robił to z zamkniętymi oczami.


Pomogłam Ci? Zostaw komentarz i powiedz, jak przebiegła Twoja migracja WordPress. Jeśli masz pytania lub napotkałeś problemy nie omówione w tym przewodniku, chętnie pomogę w komentarzach!

Bądź na bieżąco...

otrzymuj najnowsze wiadomości, aktualizacje i wiele innych rzeczy co 2 tygodnie.

Zostaw komentarz

Przewijanie do góry