Jak zmienić domenę w WordPress. Kompletny przewodnik techniczny
Zmiana domeny WordPress krok po kroku: wp-config.php, WP-CLI search-replace, zapytania SQL, przekierowania 301, certyfikat SSL i najczęstsze pułapki.

Zmiana domeny w WordPress to operacja, która wygląda prosto na papierze, ale w praktyce potrafi położyć stronę na kilka godzin. Adres starej domeny jest zakodowany w dziesiątkach miejsc: w bazie danych, plikach konfiguracyjnych, zserializowanych tablicach PHP i ścieżkach do mediów. Poniżej znajdziesz kompletną procedurę, którą stosuję przy migracjach domen dla klientów.
Wymagania wstępne
Zanim zaczniesz, upewnij się że masz:
- Dostęp SSH do serwera (lub przynajmniej phpMyAdmin)
- WP-CLI zainstalowane na serwerze (zdecydowanie zalecane)
- Pełny backup plików i bazy danych
- Dostęp do panelu DNS nowej domeny
- Dostęp do panelu hostingowego (dodanie domeny)
Backup jest obowiązkowy. Nie backup "chyba mam gdzieś na hostingu", tylko świeży, zweryfikowany backup bazy i plików. Bez tego nie zaczynaj.
Krok 1. Podpięcie nowej domeny do serwera
Zaloguj się do panelu hostingowego i dodaj nową domenę jako alias lub addon domain wskazujący na katalog instalacji WordPress. Następnie skonfiguruj rekordy DNS:
nowa-domena.pl. A 123.45.67.89
www.nowa-domena.pl. CNAME nowa-domena.pl.Propagacja DNS trwa od kilku minut do 24 godzin. Sprawdź postęp:
dig nowa-domena.pl +short
# Powinno zwrócić IP Twojego serweraDopóki DNS się nie propaguje, możesz przetestować nową domenę dodając wpis do /etc/hosts na swoim komputerze:
123.45.67.89 nowa-domena.plKrok 2. Wymuszenie nowej domeny w wp-config.php
Otwórz wp-config.php i dodaj dwie stałe przed linią require_once ABSPATH . 'wp-settings.php';:
define('WP_HOME', 'https://nowa-domena.pl');
define('WP_SITEURL', 'https://nowa-domena.pl');Te stałe nadpisują wartości siteurl i home z tabeli wp_options. Po zapisaniu pliku WordPress zacznie odpowiadać pod nową domeną.
Ważne: Użyj https://, nie http://. Jeśli SSL nie jest jeszcze skonfigurowany, użyj tymczasowo http:// i zmień na https:// po kroku 4.
Krok 3. Zamiana domeny w bazie danych
To kluczowy krok. Stara domena siedzi w:
wp_options:siteurl,homei dziesiątki opcji wtyczekwp_posts:guid,post_content(linki w treści, obrazki)wp_postmeta: metadane, dane page builderów (Elementor, WPBakery)wp_comments: URL-e autorów komentarzy- Tablice specyficzne dla wtyczek (WooCommerce, Yoast, itp.)
Metoda zalecana: WP-CLI
# Dry run, podgląd zmian bez ich wykonania
wp search-replace 'https://stara-domena.pl' 'https://nowa-domena.pl' --dry-run --all-tables
# Wykonanie zamiany
wp search-replace 'https://stara-domena.pl' 'https://nowa-domena.pl' --all-tables
# Zamień też wersję z http i www
wp search-replace 'http://stara-domena.pl' 'https://nowa-domena.pl' --all-tables
wp search-replace 'http://www.stara-domena.pl' 'https://nowa-domena.pl' --all-tables
wp search-replace 'https://www.stara-domena.pl' 'https://nowa-domena.pl' --all-tablesFlaga --all-tables jest istotna. Bez niej WP-CLI pominie tabele spoza standardowego prefiksu wp_, w tym tabele WooCommerce czy innych wtyczek.
Dlaczego WP-CLI, a nie SQL? WP-CLI poprawnie obsługuje zserializowane dane PHP. WordPress przechowuje wiele opcji jako zserializowane tablice, np.:
a:2:{s:4:"name";s:22:"https://stara-domena.pl";s:3:"url";s:22:"https://stara-domena.pl";}Zwróć uwagę na s:22:, czyli długość stringa. Jeśli zmienisz domenę zwykłym SQL REPLACE, długość stringa się zmieni, ale s:22: pozostanie stare. WordPress nie odczyta takich danych. Widgety, opcje motywu i ustawienia wtyczek się zepsują.
Metoda awaryjna: SQL (tylko proste instalacje)
Jeśli nie masz WP-CLI i strona nie używa page builderów ani skomplikowanych wtyczek:
UPDATE wp_options
SET option_value = REPLACE(option_value, 'stara-domena.pl', 'nowa-domena.pl')
WHERE option_name IN ('siteurl', 'home');
UPDATE wp_posts
SET guid = REPLACE(guid, 'stara-domena.pl', 'nowa-domena.pl');
UPDATE wp_posts
SET post_content = REPLACE(post_content, 'stara-domena.pl', 'nowa-domena.pl');
UPDATE wp_postmeta
SET meta_value = REPLACE(meta_value, 'stara-domena.pl', 'nowa-domena.pl');
UPDATE wp_comments
SET comment_author_url = REPLACE(comment_author_url, 'stara-domena.pl', 'nowa-domena.pl');Uwaga: Te zapytania złamią zserializowane dane. Dla prostych blogów może to nie być problem, ale dla sklepów WooCommerce lub stron z Elementorem lepiej użyć WP-CLI.
Krok 4. Certyfikat SSL
Stary certyfikat był wystawiony na starą domenę. Wygeneruj nowy:
# Let's Encrypt z Certbot (nginx)
certbot --nginx -d nowa-domena.pl -d www.nowa-domena.pl
# Let's Encrypt z Certbot (apache)
certbot --apache -d nowa-domena.pl -d www.nowa-domena.plW panelach hostingowych (cPanel, DirectAdmin) certyfikat Let's Encrypt generujesz jednym kliknięciem w sekcji SSL.
Po wygenerowaniu certyfikatu zmień w wp-config.php adres na https:// (jeśli wcześniej użyłeś http://).
Krok 5. Przekierowanie 301 ze starej domeny
Utrzymaj starą domenę z przekierowaniem 301 przez minimum 6-12 miesięcy. To mówi Google: "strona przeniosła się na stałe" i przekazuje wartość SEO na nową domenę.
Apache (.htaccess)
RewriteEngine On
RewriteCond %{HTTP_HOST} ^(www\.)?stara-domena\.pl$ [NC]
RewriteRule ^(.*)$ https://nowa-domena.pl/$1 [R=301,L]Nginx
server {
listen 80;
listen 443 ssl;
server_name stara-domena.pl www.stara-domena.pl;
return 301 https://nowa-domena.pl$request_uri;
}Nie usuwaj starej domeny. Linki zewnętrzne, zakładki użytkowników, wpisy w Google, to wszystko wskazuje na starą domenę. Przekierowanie zapewnia, że te linki nadal działają.
Krok 6. Czyszczenie i weryfikacja
# Wyczyść cache WordPressa
wp cache flush
# Wyczyść transient
wp transient delete --all
# Wyczyść rewrite rules
wp rewrite flushChecklist po migracji:
- Strona główna ładuje się pod nową domeną
- Panel admina (
/wp-admin) działa - Obrazki w treści się wyświetlają
- Linki wewnętrzne prowadzą do nowej domeny
- Formularz kontaktowy wysyła maile
- WooCommerce: koszyk, checkout, płatności (jeśli dotyczy)
- Przekierowanie 301 ze starej domeny działa (
curl -I stara-domena.pl) - SSL działa, zielona kłódka, brak mixed content
- Google Search Console: dodaj nową domenę, zgłoś zmianę adresu
- Google Analytics: zaktualizuj adres witryny
Najczęstsze problemy
Biały ekran (White Screen of Death)
Najczęściej literówka w wp-config.php. Sprawdź logi:
tail -f /var/log/php-error.log
# lub
wp --debugPętla przekierowań (ERR_TOO_MANY_REDIRECTS)
Konflikt między wymuszeniem HTTPS w .htaccess, wtyczką SSL (Really Simple SSL) i stałymi w wp-config.php. Rozwiązanie: wyłącz wtyczkę SSL, usuń reguły HTTPS z .htaccess, zostaw tylko stałe w wp-config.php.
Obrazki nie ładują się
Stara domena wciąż jest w atrybutach src obrazków w wp_posts.post_content. Uruchom wp search-replace jeszcze raz z pełnymi URL-ami (ze schematem).
Mixed content (kłódka z ostrzeżeniem)
Część zasobów (CSS, JS, obrazki) ładuje się po http:// zamiast https://. Uruchom:
wp search-replace 'http://nowa-domena.pl' 'https://nowa-domena.pl' --all-tablesZepsute widgety i opcje motywu
Użyłeś SQL REPLACE zamiast WP-CLI. Zserializowane dane mają złe długości stringów. Jedyne rozwiązanie: przywróć backup i powtórz procedurę z WP-CLI.

O autorze
Mirosław Parcz
Programista i administrator serwerów
Programista i administrator serwerów z 16+ letnim doświadczeniem. Specjalizacja: WordPress/WooCommerce, aplikacje webowe, hosting, wydajność, bezpieczeństwo, integracje AI.
Spodobało się? Podaj dalej.
Powiązane artykuły

PHP 8.2 traci wsparcie 31 grudnia. Jaka wersja PHP dla WordPressa na 2027
Koniec wsparcia PHP 8.2 wypada 31 grudnia 2026, a PHP 8.1 jest bez łatek od grudnia 2025. Tabela wersji PHP z datami, ryzyka dla strony na starym PHP, rekomendacja której wersji użyć i procedura bezpiecznej zmiany bez wywalenia strony.

AI Act od 2 sierpnia 2026. Co musisz zmienić na stronie WordPress, jeśli używasz sztucznej inteligencji
Drugiego sierpnia 2026 wchodzą w życie nowe obowiązki dotyczące przejrzystości sztucznej inteligencji. Dotyczą każdej polskiej firmy z czatem AI na stronie (Tidio, LiveChat, Smartsupp), obrazami z Midjourney lub artykułami pisanymi z pomocą ChatGPT. Sprawdź czy Cię dotyczą, jakie są kary do 15 milionów euro i jak wdrożyć rozwiązanie w WordPress w trzech wariantach: gotową wtyczką, w polskim czacie albo własnym kodem.

WordPress 7.0 wchodzi 20 maja. Co naprawdę się zmienia i co zepsuje twoją stronę
WordPress 7.0 rekomenduje PHP 8.3, dodaje Web Client AI API i upraszcza rejestrację bloków. Lista zmian, breaking changes i kolejność aktualizacji.
Potrzebujesz pomocy?
mDiv może zająć się tym za Ciebie. Bezpiecznie, z backupem i bez przestojów.
Napisz do mnie