mDiv.plmDiv.pl
OfertaHostingOpiekaCennikKontakt
Wycena
wyceń swój spokój
OfertaHostingOpiekaCennikKontaktWycena projektu
mDiv.plmDiv.pl
arrow_backBaza wiedzy
WordPress12 min czytania2026-04-26

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.

Kod źródłowy na ekranie monitora

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 serwera

Dopó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.pl

Krok 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, home i dziesiątki opcji wtyczek
  • wp_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-tables

Flaga --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.pl

W 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 flush

Checklist 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 --debug

Pę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-tables

Zepsute 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.

Potrzebujesz pomocy?

Mogę zająć się tym za Ciebie — bezpiecznie, z backupem i bez przestojów.

Napisz do mnie
mDiv.plmDiv.pl

Twój projekt w dobrych rękach

Firma

  • Oferta
  • Kontakt
  • Baza wiedzy
  • Status usług

Usługi

  • Cennik
  • Wycena projektu
  • Opieka

Informacje

  • Regulamin
  • Polityka prywatności
  • RODO

Kontakt

mDiv.pl - Mirosław Parcz

Pl. Konstytucji 3 Maja 3/55

32-300 Olkusz, Polska

Tel:+48 696 46M4I7R3E5K

NIP: PL6371987110

© 2026 mDiv.pl. Wszelkie prawa zastrzeżone.

Projekt i realizacja: mDiv.pl