Strona główna  /  Instalacja i migracja  /  Jak zmienić adres URL WordPress po migracji?

✦ AI
Ekran komputera z kodem źródłowym i ustawieniami bazy danych, symbolizujący proces technicznej konfiguracji strony WWW.

Jak zmienić adres URL WordPress po migracji?

Po migracji WordPressa sama zmiana adresu w ustawieniach nie wystarczy. Trzeba także podmienić stary URL w bazie danych, najlepiej za pomocą wtyczki Better Search Replace. Przed każdą operacją wykonaj kopię zapasową bazy.

Dlaczego zmiana adresu w kokpicie to za mało?

W panelu WordPressa przejdź do Ustawienia → Ogólne i zmień wartości w polach „Adres WordPressa (URL)” oraz „Adres witryny (URL)”. To aktualizuje podstawowy adres instalacji, ale nie poprawia automatycznie wszystkich odnośników zapisanych wcześniej.

Stary adres może nadal znajdować się w treści wpisów, shortcode’ach, adresach obrazów oraz meta-danych przechowywanych między innymi w tabelach wp_posts i wp_postmeta. W efekcie pojawiają się niedziałające obrazy, błędy 404 albo przekierowania do poprzedniej domeny.

Przygotuj kopię i wybierz metodę zmiany

Kopia zapasowa bazy danych jest obowiązkowa. Operacje wyszukiwania i zamiany mogą zmienić wiele rekordów jednocześnie, a bez backupu ich odtworzenie może być trudne lub niemożliwe. Zapisz kopię przez panel hostingu, narzędzie eksportu bazy albo phpMyAdmin.

W większości przypadków wybierz wtyczkę. Bezpośrednie zapytania SQL pozostaw osobom, które znają strukturę bazy WordPressa i potrafią przywrócić ją z kopii:

Metoda Wymagana wiedza Bezpieczeństwo danych serializowanych Dla kogo?
Better Search Replace Mała Wysokie, wtyczka obsługuje serializację Dla większości użytkowników
SQL w phpMyAdmin Duża Niższe, ręczna zamiana może uszkodzić dane Dla zaawansowanych użytkowników

Jak zmienić adres URL za pomocą Better Search Replace?

Ta metoda jest najbezpieczniejsza, gdy domena zmieniła się razem z hostingiem albo gdy chcesz podmienić adres także w zapisanych ustawieniach wtyczek.

  1. Zainstaluj i aktywuj wtyczkę Better Search Replace z poziomu Wtyczki → Dodaj nową.
  2. Otwórz Narzędzia → Better Search Replace.
  3. W polu „Search for” wpisz pełny stary adres, na przykład https://stara-domena.pl, a w polu „Replace with” nowy adres, na przykład https://nowa-domena.pl.
  4. Zaznacz wszystkie tabele, jeśli chcesz zaktualizować odwołania w całej instalacji WordPressa.
  5. Uruchom opcję „Dry Run”. Tryb testowy wyszukuje rekordy, ale nie zapisuje zmian. Sprawdź, czy liczba znalezionych elementów wygląda wiarygodnie.
  6. Jeśli wynik jest prawidłowy, wyłącz „Dry Run” i uruchom wyszukiwanie oraz zamianę ponownie.

W bazie WordPressa mogą znajdować się dane serializowane, czyli zapisane razem z informacją o długości tekstu. Zwykła zamiana tekstu w SQL może rozbieżność tej długości uszkodzić i spowodować błędy w ustawieniach motywu lub wtyczek. Better Search Replace aktualizuje takie dane w sposób dostosowany do ich struktury.

Jak zmienić adres URL w phpMyAdmin?

Bezpośrednia edycja bazy przydaje się, gdy nie masz dostępu do kokpitu WordPressa. Najpierw sprawdź w pliku wp-config.php, z której bazy korzysta instalacja. Zwróć uwagę na wartość DB_NAME, a następnie otwórz tę bazę w phpMyAdmin.

Przed wykonaniem zapytań sprawdź także prefiks tabel. Nie każda instalacja używa domyślnego wp_. W bazie może on wyglądać na przykład tak: wp123_. W poniższych zapytaniach zastąp wp_ rzeczywistym prefiksem.

  1. Otwórz phpMyAdmin i wybierz bazę wskazaną w pliku wp-config.php.
  2. Przejdź do zakładki SQL i wykonaj zapytanie aktualizujące adresy home oraz siteurl.
  3. Zaktualizuj adresy w treści wpisów oraz identyfikatorach, używając właściwego prefiksu tabel.
  4. Sprawdź działanie strony i panelu administracyjnego, a następnie wyczyść pamięć podręczną.

Przykładowe zapytania wyglądają następująco:

UPDATE wp_options
SET option_value = REPLACE(option_value, 'https://stara-domena.pl', 'https://nowa-domena.pl')
WHERE option_name IN ('home', 'siteurl');

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');

UPDATE wp_postmeta
SET meta_value = REPLACE(meta_value, 'https://stara-domena.pl', 'https://nowa-domena.pl');

To rozwiązanie nie jest tak bezpieczne jak Better Search Replace, ponieważ proste zapytania REPLACE() nie rozumieją struktury danych serializowanych. Nie wykonuj ich bez aktualnej kopii bazy i pewności, że wskazujesz właściwe tabele.

Co sprawdzić, gdy strona po zmianie nie działa?

Po aktualizacji otwórz stronę w trybie prywatnym i sprawdź kilka podstron, obrazy, formularze oraz logowanie do /wp-admin. Jeśli pojawiają się błędy, przejdź przez poniższą listę:

  • Wyczyść cache wtyczki oraz pamięć podręczną przeglądarki.
  • Wejdź w Ustawienia → Bezpośrednie odnośniki i zapisz ustawienia ponownie, aby WordPress odtworzył reguły w pliku .htaccess.
  • Sprawdź, czy plik .htaccess znajduje się w katalogu głównym instalacji i zawiera reguły właściwe dla WordPressa.
  • Jeśli zmienił się hosting, zweryfikuj w wp-config.php wartości DB_NAME, DB_USER, DB_PASSWORD i DB_HOST.
  • Jeśli domena została skierowana na nowy serwer, sprawdź rekordy DNS. Ich propagacja może potrwać do 24 godzin.

Najbezpieczniejszy schemat jest prosty: wykonaj backup, zmień podstawowy adres w ustawieniach WordPressa, uruchom Better Search Replace z trybem „Dry Run”, a następnie sprawdź całą stronę. Gdy po tych czynnościach nadal występuje błąd 500, 403 albo problem z połączeniem z bazą, potrzebna będzie osobna diagnostyka konfiguracji serwera.

Redakcja wpinternals.pl

WordPressa znamy od kuchni – budujemy na nim strony, migrujemy serwisy i optymalizujemy ich wydajność. Piszemy o wtyczkach, motywach, hostingu i bezpieczeństwie tak, by poradzili sobie także początkujący. Dbamy o to, by Twoja strona była szybka, stabilna i bezpieczna.

Może Cię również zainteresować

Potrzebujesz więcej informacji?