WordPress przekierowuje na obce strony
Odwiedzający trafiają na cudze witryny, a w wynikach Google zamiast oferty pojawia się spam. To włamanie, a nie usterka - i samo czyszczenie plików nie wystarczy.
Objaw jest charakterystyczny: wpisujesz adres swojej strony, a przeglądarka ląduje gdzie indziej. Czasem dzieje się to tylko przy wejściu z Google, czasem tylko na telefonie, a z Twojego komputera wszystko wygląda normalnie — bo złośliwy kod rozpoznaje administratora i jego oszczędza.
To nie jest usterka. Przekierowania na obce adresy oznaczają, że ktoś ma dostęp do Twojej strony. Celem jest zwykle ruch i pozycje, które wypracowałeś — dlatego atakujący dba, żeby infekcja została niezauważona jak najdłużej.
Zanim zaczniesz: odetnij i zabezpiecz
- Zrób pełną kopię plików i bazy danych. Nawet zainfekowaną — będzie potrzebna do analizy i jako punkt odwrotu.
- Zmień hasła: do panelu WordPressa, FTP/SSH, bazy danych i panelu hostingu. Jeśli tego nie zrobisz, posprzątasz, a kod wróci tą samą drogą.
- Sprawdź listę użytkowników w panelu. Konta administratorów, których nie zakładałeś, usuń.
Gdzie siedzi złośliwy kod
W praktyce prawie zawsze w kilku z tych miejsc:
- Pliki motywu, najczęściej
header.php,footer.phpifunctions.php— doklejony blok JavaScriptu albo długi ciąg zakodowany w base64. - Tabela
wp_options, w polachsiteurlihome. Jeśli widnieje tam obcy adres, to pierwsze miejsce do poprawienia. - Tabela
wp_posts— wstrzyknięte skrypty w treści wpisów. - Plik
.htaccess— reguły przekierowujące ruch przychodzący z wyszukiwarek. - Podrzucone pliki o niewinnych nazwach w
wp-content/uploads. Katalog na zdjęcia nie powinien zawierać ani jednego pliku.php.
Mając dostęp SSH, dobrze zacząć od wyszukania typowych wzorców:
grep -rn "base64_decode\|eval(" wp-content/ --include="*.php" | head -50
find wp-content/uploads -name "*.php"
Czyszczenie
Najpewniejsza metoda to wymiana wszystkiego, co da się wymienić, zamiast wycinania fragmentów:
- Pobierz czystą paczkę WordPressa i nadpisz
wp-adminorazwp-includesw całości. - Wtyczki i motyw zainstaluj od nowa z oficjalnych źródeł. Nie leczy się zainfekowanej wtyczki — wymienia się ją.
- W bazie popraw
siteurlihome, a potem przejrzyj treści pod kątem wstrzykniętych skryptów. - Wygeneruj na nowo
.htaccessprzez zapisanie bezpośrednich odnośników. - Usuń wszystkie pliki PHP z katalogu
uploads.
Najważniejszy krok: zamknij drogę wejścia
To etap, który najczęściej się pomija — i dlatego infekcja wraca po kilku dniach. Atakujący wszedł którąś z tych dróg:
- nieaktualna wtyczka lub motyw ze znaną podatnością (najczęstszy przypadek),
- słabe hasło administratora lub FTP,
- inna, zaniedbana strona na tym samym koncie hostingowym,
- porzucona wtyczka, która nie dostaje już poprawek.
Zajrzyj do logów dostępu z okresu, w którym pojawiły się przekierowania. Szukaj żądań POST do nietypowych adresów i wejść na pliki, których nie powinno być. To zwykle wskazuje drogę.
Po sprzątaniu
Zgłoś stronę do ponownego sprawdzenia w Google Search Console, w sekcji Bezpieczeństwo. Bez tego ostrzeżenie w wynikach wyszukiwania potrafi wisieć tygodniami, nawet gdy strona jest już czysta. Przez kolejne dni obserwuj, czy coś nie wraca.
Włącz automatyczne aktualizacje przynajmniej dla poprawek bezpieczeństwa i usuń wtyczki, z których nie korzystasz. Wyłączona wtyczka nadal leży na serwerze i nadal może być furtką.
Nie udaje się?
Jeśli problem zostaje albo wolisz nie eksperymentować na działającej stronie, napisz do nas - sprawdzimy to za Ciebie. Diagnoza nic nie kosztuje.
Pomoc przy WordPressiePozostałe poradniki
Drupal 10 kończy wsparcie
Drupal 10 przestaje dostawać poprawki bezpieczeństwa 9 grudnia 2026. Jeśli strona na nim stoi, zostało kilka tygodni na decyzję - a jej koszt zależy głównie od tego, z której wersji startujesz.
Od czego zacząć z AI w firmie
Większość nieudanych wdrożeń AI nie przewraca się na technologii, a na wyborze procesu. Dlatego zaczynamy od tego, co policzalne i powtarzalne, a nie od tego, co najbardziej widowiskowe.
Strona wolno się ładuje
Wolna strona to nie jedna usterka, a suma kilku. Zaczynamy od pomiaru, bo bez niego optymalizacja jest zgadywaniem - i zwykle poprawia to, co i tak było szybkie.
Wygasł certyfikat SSL
Zamiast strony odwiedzający widzi czerwone ostrzeżenie i musi kliknąć „mimo to przejdź dalej”. Większość takich przypadków to wygasły certyfikat albo niedokończone odnowienie.
Przeniesienie strony na inny hosting
Migracja wychodzi dobrze albo źle w zależności od kolejności działań. Najdroższy błąd to przełączenie DNS przed sprawdzeniem, czy strona na nowym serwerze w ogóle działa.
Błąd 500 w WordPressie
HTTP 500 to komunikat serwera, że coś przerwało wykonanie kodu. Sam w sobie nic nie mówi - cała praca polega na dotarciu do logu.
Biały ekran w WordPressie
Zamiast strony widzisz pustą biel. To jeden z najczęstszych objawów i w większości przypadków da się go rozbroić w kilkanaście minut.