Przejście z HTTP na HTTPS w WordPressie wymaga nie tylko aktywnego certyfikatu SSL. Trzeba jeszcze zmienić adresy witryny, ustawić przekierowanie 301 i zaktualizować odnośniki w bazie danych. Dopiero wtedy unikniesz mieszanej zawartości (mixed content) i problemów z indeksowaniem.
Co przygotować przed migracją?
Zanim zmienisz ustawienia WordPressa lub bazę danych, sprawdź, czy masz dostęp do wszystkich potrzebnych narzędzi:
- Aktywny certyfikat SSL skonfigurowany dla domeny.
- Dostęp do panelu administracyjnego WordPressa.
- Dostęp do FTP, menedżera plików hostingu albo pliku
.htaccess. - Aktualną kopię zapasową bazy danych, a najlepiej także plików strony.
Nie pomijaj kopii bazy danych. Błędna zamiana adresów może uszkodzić zapisane dane lub uniemożliwić poprawne działanie witryny. Backup pozwoli szybko przywrócić poprzedni stan.
Jak przejść z HTTP na HTTPS w WordPressie?
Ręczna migracja jest zwykle lepszym rozwiązaniem niż stałe korzystanie z wtyczki, która naprawia adresy podczas każdego ładowania strony. Zmiany zapisane w ustawieniach, pliku konfiguracyjnym i bazie pozostają niezależne od dodatkowego rozszerzenia.
| Metoda | Wydajność | Stabilność | Rekomendacja |
|---|---|---|---|
| Wtyczka automatyczna, na przykład Really Simple SSL | Może dodawać obciążenie przy obsłudze zasobów | Zależna od aktywnej wtyczki | Rozwiązanie awaryjne lub dla początkujących |
| Konfiguracja ręczna | Brak stałego narzutu po wykonaniu zmian | Niezależna od wtyczki | Zalecana przy stałej migracji |
- Zmień adresy w ustawieniach WordPressa. W panelu przejdź do Ustawienia → Ogólne. W polach „Adres WordPressa (URL)” i „Adres witryny (URL)” zamień
http://nahttps://, a następnie zapisz zmiany. Sprawdź dokładnie domenę przed zatwierdzeniem, ponieważ literówka może zablokować dostęp do panelu. - Ustaw przekierowanie 301 w pliku
.htaccess. Plik znajdziesz zwykle w katalogu głównym instalacji WordPressa, na przykład wpublic_html. Pobierz jego kopię, a następnie dodaj regułę na początku pliku, przed sekcją# BEGIN WordPress. - Zamień adresy w bazie danych. Wtyczka Better Search Replace pozwala jednorazowo wyszukać adres własnej domeny z protokołem HTTP i zastąpić go wariantem HTTPS, także w treściach, ustawieniach motywu i danych wtyczek.
W pliku .htaccess użyj następujących reguł:
RewriteEngine On
RewriteCond %{HTTPS} !=on
RewriteRule ^ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
Jeżeli w pliku znajduje się już RewriteEngine On, nie dodawaj tej dyrektywy drugi raz. W takim przypadku wklej tylko warunek i regułę przekierowania. Nie usuwaj pozostałych reguł WordPressa.
Kod 301 oznacza stałe przeniesienie adresu. Informuje przeglądarki i wyszukiwarki, że wersja HTTPS zastąpiła HTTP, dzięki czemu sygnały SEO mogą zostać przekazane na nowy adres. Kod 302 oznacza przekierowanie tymczasowe i nie jest właściwym wyborem dla trwałej migracji całej strony.
Aktualizacja adresów w bazie danych
Zainstaluj i aktywuj Better Search Replace, a następnie przejdź do Narzędzia → Better Search Replace. W polu wyszukiwania wpisz pełny adres własnej domeny z HTTP, na przykład http://twojadomena.pl. W polu zamiany wpisz jego wersję HTTPS, czyli https://twojadomena.pl. Zaznacz wszystkie tabele.
Najpierw uruchom operację w trybie dry run. Pozwala on sprawdzić liczbę potencjalnych zmian bez modyfikowania danych. Jeśli wynik jest prawidłowy, odznacz tryb testowy i wykonaj właściwą zamianę. Zamieniaj pełny adres własnej domeny, a nie samo http://, ponieważ niektóre zewnętrzne zasoby mogą nie obsługiwać HTTPS.
- Wpisz adres własnej domeny z prefiksem
http://w polu wyszukiwania. - Wpisz ten sam adres z prefiksem
https://w polu zamiany. - Zaznacz wszystkie tabele i uruchom najpierw tryb testowy.
- Po sprawdzeniu wyniku wykonaj właściwą zamianę, a po zakończeniu wyłącz i usuń wtyczkę.
Na dużych stronach zmianę można wykonać także przez WP-CLI po SSH, korzystając z polecenia wp search-replace. To rozwiązanie wymaga jednak dostępu do serwera i wiedzy potrzebnej do bezpiecznej pracy z bazą.
Jak usunąć mixed content?
Mieszana zawartość występuje wtedy, gdy strona otwiera się przez HTTPS, ale część obrazów, arkuszy stylów, skryptów, filmów lub czcionek nadal jest pobierana przez HTTP. Przeglądarka może wtedy wyświetlać ostrzeżenie zamiast pełnej kłódki, a niektóre zasoby mogą zostać zablokowane.
Otwórz stronę, naciśnij F12 i przejdź do zakładki Console. Komunikaty mixed content wskażą adresy ładowane przez HTTP. Sprawdź je również w kodzie źródłowym strony, używając skrótu Ctrl+U i wyszukując http://twojadomena.pl.
Jeżeli problem dotyczy elementów zapisanych w motywie, widgetach lub ustawieniach page buildera, popraw je ręcznie. W przypadku Elementora może być potrzebne użycie jego własnej funkcji zamiany adresów URL. Po zmianach wyczyść pamięć podręczną WordPressa, wtyczki cache i przeglądarki.
Co sprawdzić po migracji?
Po zakończeniu prac przejdź przez poniższą listę:
- Wersja
https://otwiera stronę bez ostrzeżenia certyfikatu. - Adres HTTP przekierowuje do HTTPS kodem 301.
- Podstrony, obrazy, formularze i pliki CSS działają prawidłowo.
- W konsoli przeglądarki nie ma komunikatów o mixed content.
- Wtyczka Better Search Replace została wyłączona i usunięta.
- Wersja HTTPS została dodana do Google Search Console.
W Google Search Console dodaj właściwość z adresem HTTPS. Jeśli wcześniej używałeś osobnych wersji domeny z „www” i bez niego, sprawdź oba warianty. Przekierowanie możesz zweryfikować narzędziem typu Redirect Checker, wpisując adres HTTP i sprawdzając, czy odpowiedź to 301, a następnie 200 dla adresu HTTPS.
Jeśli po wdrożeniu pojawi się pętla przekierowań albo strona przestanie się otwierać, tymczasowo wycofaj ostatnią zmianę w .htaccess lub skontaktuj się z administratorem hostingu. Nie włączaj równocześnie kilku mechanizmów wymuszających HTTPS, ponieważ mogą tworzyć konflikt.