Zhakowany WordPress: co robić w pierwszej godzinie i jak się zabezpieczyć
Zhakowany WordPress? Objawy włamania, plan działania na pierwszą godzinę, sprzątanie, prośba o sprawdzenie w Google Search Console i 10 zabezpieczeń, które wdrożysz w 30 minut.
Klient dzwoni, że po wejściu na Twoją stronę trafił na kasyno. Ty otwierasz ją na komputerze i wszystko wygląda normalnie. Albo w Google pod nazwą firmy pojawiają się nagle japońskie napisy i oferty tanich leków. To typowe objawy zhakowanego WordPressa, a od tego, co zrobisz w pierwszej godzinie, zależy, czy atak się powtórzy i jak długo Google będzie ostrzegać przed Twoją stroną.
Poniżej znajdziesz objawy włamania, plan na pierwszą godzinę, sposób na zdjęcie ostrzeżenia w Google Search Console i 10 zabezpieczeń na około 30 minut. Opieram się na zaleceniach WordPress.org i dokumentacji Google.
Objawy: po czym poznać, że WordPress został zhakowany
Włamanie rzadko widać na stronie głównej. Złośliwy kod często działa tylko dla części odwiedzających, żeby właściciel jak najdłużej niczego nie zauważył. Najczęstsze sygnały:
- Przekierowania tylko dla niektórych. Google w pomocy do Search Console opisuje skrypty dodane przez hakerów, które przekierowują użytkowników telefonów na złośliwe strony. Ty wpisujesz adres na komputerze i widzisz zwykłą stronę, a klient wchodzący z wyników Google na smartfonie trafia na oszustwo.
- Obce podstrony w Google. Wpisz w wyszukiwarkę
site:twojadomena.pli przejrzyj wyniki. Japońskie tytuły, leki, kasyna albo podróbki markowych ubrań to zwykle spam wstrzyknięty przez hakerów. Wariant z japońskimi znakami Google nazywa „Japanese keyword hack”: to automatycznie generowane podstrony z linkami do sklepów z podróbkami. - Nowi administratorzy. W panelu WordPressa jest konto, którego nikt w firmie nie zakładał, albo Search Console informuje, że ktoś nowy potwierdził własność Twojej strony. Według Google to mocna wskazówka, że doszło do włamania.
- Ostrzeżenia Google. Przy Twojej stronie w wynikach wyszukiwania pojawia się dopisek „Ta strona mogła paść ofiarą ataku hakerów”, a Chrome pokazuje pełnoekranowe ostrzeżenie, na przykład o złośliwym oprogramowaniu.
- Blokada od hostingu. Dostawca wyłącza stronę albo przysyła maila o złośliwych plikach. WordPress.org wymienia to wśród jednoznacznych oznak włamania.
- Maile firmowe w spamie. Zhakowana strona bywa używana do rozsyłania spamu, a wtedy adres IP serwera trafia na czarne listy. Gdy poczta działa na tym samym serwerze, cierpią też Twoje oferty.
Uwaga na pułapkę: zhakowane podstrony potrafią pokazywać zwykłemu odwiedzającemu błąd 404, a robotowi Google spam. Żeby zobaczyć to, co widzi Google, użyj w Search Console narzędzia do sprawdzania adresów URL i przycisku „Sprawdź URL wersji opublikowanej”.
Czego nie robić w pierwszych minutach
Pierwszy odruch to skasować wszystko albo kliknąć „przywróć kopię” w panelu hostingu. Oba ruchy bywają błędem:
- Nie kasuj plików na ślepo. Tracisz ślady, po których da się ustalić, którędy weszli hakerzy. Usuniesz objaw, a luka zostanie.
- Nie przywracaj kopii bez zamknięcia luki. Kopia sprzed ataku zwykle ma tę samą dziurę, na przykład nieaktualną wtyczkę, więc atak może się powtórzyć.
- Nie zmieniaj haseł z komputera, który może być zainfekowany. WordPress.org przypomina, że atak często zaczyna się od trojana na komputerze właściciela, który wykrada hasła do FTP i panelu.
- Nie proś Google o sprawdzenie od razu. Google pisze wprost, że przedwczesna prośba tylko wydłuża czas, przez który strona jest oznaczona jako niebezpieczna.
Plan działania na pierwszą godzinę
Tę listę warto wydrukować i trzymać razem z danymi do hostingu. Czasy są orientacyjne.
- Zapisz objawy (5 minut). Co widzisz, od kiedy i na jakim urządzeniu. Zrób zrzuty ekranu i zanotuj ostatnie zmiany na stronie, na przykład nową wtyczkę. Od tego zaczyna poradnik WordPress.org dla zhakowanych stron.
- Zadzwoń do hostingu (10 minut). Zapytaj, co wykryli i w których plikach. Poproś o logi serwera, zanim zostaną skasowane, i o listę kopii zapasowych z datami.
- Zrób kopię zainfekowanej strony (10 minut). Pliki i bazę danych pobierz na dysk poza serwerem, do folderu z wyraźną nazwą, na przykład
ZAINFEKOWANA-2026-10-25. Google i WordPress.org zalecają to przed jakimkolwiek usuwaniem. Ta kopia służy do analizy, nigdy do przywracania. - Ogranicz szkody (5 minut). Jeśli strona przekierowuje klientów na oszustwa albo rozsyła złośliwe pliki, poproś hosting o tymczasowe wyłączenie strony.
- Przeskanuj komputer (2 minuty na start). Uruchom pełne skanowanie antywirusem na komputerze, z którego logujesz się do WordPressa. Kolejne kroki wykonaj z innego, czystego urządzenia.
- Zmień hasła (10 minut). Panel hostingu, FTP/SFTP, użytkownik bazy danych (nowe hasło wpisz też w
wp-config.php), wszyscy administratorzy WordPressa i skrzynka e-mail, na którą przychodzą linki do resetu haseł. Potem podmień klucze bezpieczeństwa wwp-config.phpna nowe z oficjalnego generatora WordPress.org. To wyloguje wszystkich, także włamywacza. - Usuń obce konta (5 minut). W WordPressie przejrzyj użytkowników z rolą Administrator, a w Search Console Ustawienia → Użytkownicy i uprawnienia. Przed usunięciem zapisz login, e-mail i datę utworzenia konta. Usuń też ze strony token weryfikacyjny włamywacza (plik HTML albo znacznik meta), bo inaczej, jak pisze Google, usunięty właściciel może ponownie potwierdzić własność.
- Zaktualizuj i przeskanuj (10 minut). Zaktualizuj WordPressa, wtyczki i motywy. Uruchom skaner w panelu (WordPress.org wymienia m.in. Wordfence i Sucuri) i skaner z zewnątrz, na przykład Sitecheck. Aktualizacja zamyka lukę, ale nie usuwa plików dodanych przez hakerów.
Jeśli na stronie są zamówienia, konta klientów albo zapisane wiadomości z formularza, sprawdź, czy dane mogły wyciec. Zgodnie z art. 33 RODO administrator zgłasza naruszenie do UODO bez zbędnej zwłoki, w miarę możliwości nie później niż w ciągu 72 godzin od jego stwierdzenia, chyba że jest mało prawdopodobne, by naruszenie powodowało ryzyko dla praw lub wolności klientów. Zgłoszenie wysłane po 72 godzinach musi wyjaśniać przyczyny opóźnienia, a przy wysokim ryzyku art. 34 RODO wymaga też zawiadomienia samych klientów. Formularz jest na stronie UODO. To ogólna informacja, a nie porada prawna (stan prawny na 25.10.2026), więc ocenę konkretnego wycieku skonsultuj z prawnikiem albo inspektorem ochrony danych.
Sprzątanie: kopia sprzed ataku albo ręczne czyszczenie
Kopia sprzed ataku to najszybsza droga, jeśli masz kopię z datą sprzed pierwszych objawów, najlepiej o kilka dni starszą, bo kod mógł trafić na serwer wcześniej. Po przywróceniu od razu: aktualizacje, nowe hasła i skan. W sklepie najpierw spisz z zainfekowanej kopii zamówienia złożone po dniu kopii, bo przywrócenie je usunie.
Ręczne czyszczenie zostaje, gdy kopii nie ma albo jest za stara. WordPress.org zaleca podmianę przez SFTP katalogów wp-admin i wp-includes na świeże, w tej samej wersji, którą masz. Reinstalacja z panelu nie wystarczy, bo nadpisuje pliki, ale nie usuwa tych dodanych przez hakerów. Wtyczki i motywy pobierz od nowa z oficjalnych źródeł, a szczególnie przejrzyj .htaccess, index.php oraz header.php, footer.php i functions.php w motywie.
Osoba techniczna z dostępem SSH sprawdzi najważniejsze rzeczy szybciej przez WP-CLI:
# pliki WordPressa porównane z sumami kontrolnymi WordPress.org
wp core verify-checksums
# to samo dla wtyczek z oficjalnego katalogu
wp plugin verify-checksums --all
# administratorzy z datą założenia konta
wp user list --role=administrator --fields=ID,user_login,user_email,user_registered
# pliki PHP w katalogu na obrazki, gdzie nie powinno ich być
find wp-content/uploads -name "*.php"
Gdy strona jest czysta, zmień hasła jeszcze raz: WordPress.org zaleca to także wtedy, gdy zmieniono je już w chwili wykrycia ataku. Na koniec sprawdź stronę w moim narzędziu Zbadaj stronę. Nie szuka ono wirusów, ale w około 30 sekund pokaże, czy działa HTTPS, czy są nagłówki bezpieczeństwa i czy serwer nie zdradza wersji oprogramowania.
Google Search Console: jak zdjąć ostrzeżenie
Bez Search Console nie poprosisz Google o ponowne sprawdzenie. Jak dodać do niej stronę, opisuję w poradzie Strona firmowa nie wyświetla się w Google.
- Otwórz raport „Problemy dotyczące bezpieczeństwa”. Zobaczysz typ problemu, na przykład „Atak hakerów: wstrzyknięta zawartość” albo „Atak hakera: złośliwe oprogramowanie”, i przykładowe adresy.
- Zajrzyj też do raportu „Ręczne działania”. Jeśli jest tam wpis, po sprzątaniu poproś o sprawdzenie także w nim.
- Sprawdź przykładowe adresy narzędziem do sprawdzania adresów URL. Muszą pokazywać czystą treść albo błąd 404.
- Kliknij „Poproś o sprawdzenie” i krótko opisz, co zrobiono z każdym rodzajem problemu: usunięte podstrony, zaktualizowana wtyczka, zmienione hasła.
Ile to trwa? Według Google sprawdzenie strony wyłudzającej dane zajmuje około dnia, ze złośliwym oprogramowaniem kilka dni, a ze spamem wstrzykniętym przez hakerów nawet kilka tygodni.
10 zabezpieczeń na 30 minut
Lista opiera się na zaleceniach WordPress.org dotyczących zabezpieczania strony.
- Automatyczne aktualizacje (5 minut). Od WordPressa 5.5 włączysz je dla każdej wtyczki i motywu, a na liście wtyczek także zbiorczo.
- Usuń nieużywane wtyczki i motywy (4 minuty). Usuń, a nie tylko wyłącz: wyłączona wtyczka nadal leży na serwerze.
- Wtyczki tylko z pewnego źródła (2 minuty). WordPress.org pisze wprost: nie instaluj wtyczek ani motywów z niezaufanych źródeł, tylko z oficjalnego katalogu albo od znanych firm. Wersje „nulled”, czyli pirackie kopie płatnych wtyczek, według firmy Wordfence często zawierają ukryte furtki dla hakerów.
- Weryfikacja dwuetapowa (5 minut). Dla każdego administratora, na przykład wtyczką Two Factor od społeczności WordPress.org: kod z aplikacji w telefonie i kody zapasowe. Włącz ją też w panelu hostingu.
- Mniej administratorów (2 minuty). Pracownik, który dodaje wpisy, potrzebuje roli Redaktor albo Autor. Nie używaj loginu „admin”.
- Hasła z menedżera haseł i SFTP (3 minuty). Długie, unikalne hasło do każdego dostępu. Zamiast zwykłego FTP, który przesyła hasło otwartym tekstem, używaj SFTP.
- Kopie poza serwerem (5 minut). Kopia na tym samym serwerze może przepaść albo zostać zainfekowana razem ze stroną. Ustaw automatyczne kopie plików i bazy do chmury lub na inny serwer, trzymaj kilka wersji i raz na kwartał sprawdź, czy kopia się odtwarza.
- Aktualne PHP (1 minuta). WordPress.org zaleca PHP 8.3 lub nowsze, a PHP 8.2 dostaje poprawki bezpieczeństwa tylko do 31 grudnia 2026 r. Wersję zmienisz w panelu hostingu, po zrobieniu kopii.
- Powiadomienia z Search Console (2 minuty). Google wysyła zweryfikowanym właścicielom e-mail, gdy podejrzewa włamanie. Sprawdź, czy powiadomienia są włączone i czy nie łapie ich filtr poczty.
- Wyłącz edytor plików (1 minuta). Linijka poniżej, dopisana w
wp-config.php, blokuje edycję plików PHP z panelu. Nie zatrzyma każdego ataku, ale zamyka najprostszą drogę.
define( 'DISALLOW_FILE_EDIT', true );
Jest też droga, przy której większość tej listy znika. Prosta strona firmowa bez sklepu i kont klientów może działać jako zwykłe pliki, bez wtyczek do łatania. Tak przeniosłem ponad 200 podstron serwisu firmy Żukowscy z WordPressa i Elementora na Next.js w ramach modernizacji strony. Minus: zmiany w treści wymagają wtedy innego panelu albo mojej pomocy.
Podsumowanie
Przy włamaniu liczy się kolejność: najpierw notatki i kopia, potem hasła, konta i aktualizacje, na końcu sprzątanie i prośba do Google. Pośpiech z kasowaniem plików albo przywracaniem starej kopii często kończy się powtórką ataku.
Jeśli wolisz nie pilnować aktualizacji i kopii samodzielnie, robię to w ramach opieki technicznej od 149 zł netto miesięcznie. Audyt bezpieczeństwa z raportem i poprawkami kosztuje od 990 zł netto. Gdy strona jest już zhakowana, napisz do mnie: odpowiem w 24 godziny z planem działania i wyceną.
Najczęstsze pytania
Tylko jeśli kopia pochodzi sprzed włamania, a zaraz po jej przywróceniu zaktualizujesz WordPressa, wtyczki i motywy oraz zmienisz wszystkie hasła. Sama kopia ma tę samą lukę, przez którą weszli hakerzy, więc atak może się powtórzyć.
Według Google sprawdzenie strony wyłudzającej dane trwa około dnia, ze złośliwym oprogramowaniem kilka dni, a ze spamem wstrzykniętym przez hakerów nawet kilka tygodni. Prośbę wysyłasz w Search Console dopiero wtedy, gdy strona jest naprawdę czysta.
Skaner w panelu pomaga znaleźć zmienione pliki, ale nie widzi wszystkiego, a zdarza się złośliwy kod, który utrudnia jego działanie. Dlatego warto połączyć go ze skanem z zewnątrz, porównaniem plików z oryginałami i ręcznym przeglądem, a potem zamknąć lukę aktualizacjami i nowymi hasłami.
Jeśli mogły wyciec dane osobowe klientów, na przykład z zamówień albo formularzy, i naruszenie stwarza ryzyko dla tych osób, tak. Art. 33 RODO wymaga zgłoszenia bez zbędnej zwłoki, w miarę możliwości w ciągu 72 godzin od stwierdzenia naruszenia. Gdy masz wątpliwości, skonsultuj ocenę ryzyka z prawnikiem albo inspektorem ochrony danych.
Nie, bo złośliwe pliki i wpisy w bazie przeniosą się razem ze stroną. Zmiana hostingu ma sens dopiero po sprzątaniu, na przykład gdy obecny dostawca nie daje kopii zapasowych, logów albo aktualnego PHP.
Usługi związane z tematem
Masz podobny projekt?
Opisz, czego potrzebujesz, a w 24 godziny odeślę wycenę. Nowi klienci dostają 20% rabatu na pierwsze zlecenie.


