Usunięcie wirusów z WordPressa jest możliwe, ale wymaga podejścia krok po kroku: najpierw wykrycie infekcji, potem bezpieczna kopia zapasowa, skanowanie i czyszczenie plików oraz bazy danych, a na końcu zabezpieczenie strony i zgłoszenie jej jako „czystej” do Google i hostingu.

Co właściwie oznacza „wirus” na WordPressie?

W kontekście WordPressa pod słowem „wirus” najczęściej kryje się złośliwe oprogramowanie (malware) umieszczone w plikach strony lub bazie danych.

Może to być m.in.:

  • kod dokonujący przekierowań na obce strony,
  • backdoor (ukryte wejście dla atakującego),
  • skrypt wstrzykujący spam SEO do treści,
  • kod służący do phishingu (podszywanie się pod inne serwisy) lub rozsyłania spamu mailowego.

Większość poradników podkreśla, że infekcja dotyczy zwykle pliku motywu, wtyczek, katalogu uploads lub tabel w bazie danych, a rzadziej samego silnika WordPress, który można łatwo nadpisać czystą kopią.

Jak rozpoznać, że WordPress jest zainfekowany?

Objawy widoczne dla użytkowników

Administratorzy i firmy hostingowe wymieniają kilka typowych objawów:

  • strona przekierowuje użytkowników na inne witryny (np. z reklamami, pornografią, scamem),
  • na stronie pojawiają się wyskakujące okna, nieoczekiwane reklamy lub „alerty bezpieczeństwa”, których wcześniej nie było,
  • w treści wpisów, nagłówkach albo stopce pojawiają się dziwne linki, najczęściej prowadzące do stron spamerskich,
  • część podstron zwraca błąd 500, biały ekran lub działa znacznie wolniej niż zwykle.

Sygnały od Google i przeglądarek

Według poradników specjalistycznych, jednym z bardziej bolesnych sygnałów jest ostrzeżenie od Google lub przeglądarki:

  • w wynikach wyszukiwania przy Twojej stronie pojawia się komunikat, że witryna mogła zostać zhakowana,
  • przeglądarka (Chrome, Firefox) wyświetla czerwony ekran ostrzegawczy o złośliwej zawartości lub phishingu,
  • w Google Search Console w zakładce dotyczącej bezpieczeństwa pojawia się informacja o wykrytym malware lub spamie.

Przykładowy komunikat Google:

Ta witryna mogła paść ofiarą ataku hakerów

Korzystanie z Search Console jest kluczowe, ponieważ pozwala sprawdzić, czy Google uznaje stronę za bezpieczną oraz zidentyfikować typ wykrytej infekcji.

Sygnały techniczne (dla administratora)

Hosting, panele serwerowe i narzędzia bezpieczeństwa mogą sygnalizować problemy:

  • hosting wysyła mail o wykrytym złośliwym kodzie w plikach lub o nadużyciu zasobów (np. masowe wysyłanie spamu),
  • w logach serwera widać nietypowe żądania lub próby logowania z dziwnych lokalizacji,
  • w katalogach strony pojawiają się nowe, nieznane pliki o losowych nazwach, często w katalogu wp-content/uploads lub w głównym katalogu instalacji.

Najczęstsze przyczyny infekcji WordPressa

Większość polskich poradników wymienia podobne przyczyny:

  • Nieaktualny WordPress, motywy i wtyczki – stare wersje mają znane luki bezpieczeństwa;
  • Korzystanie z „nulled” motywów i wtyczek – często już na starcie zawierają malware;
  • Słabe hasła – admin/admin, proste słowa, brak 2FA ułatwiają złamanie konta;
  • Brak aktualizacji i kopii zapasowych – wydłuża czas niezauważonej infekcji i utrudnia odzyskanie strony;
  • Nieprawidłowe uprawnienia do plików i katalogów – np. chmod 777 ułatwia podmianę plików przez atakującego.

Krok 0 – zachowaj spokój i zrób pełną kopię zapasową

Zanim zaczniesz cokolwiek czyścić, wykonaj pełny backup strony:

  • skopiuj wszystkie pliki WordPressa (np. przez FTP lub menedżer plików hostingu),
  • wykonaj eksport bazy danych (np. przez phpMyAdmin),
  • jeśli hosting wykonuje automatyczne kopie, sprawdź dostępne punkty przywracania – to może być najszybsza droga odzyskania witryny.

Specjaliści podkreślają, że kopia zapasowa jest konieczna nawet wtedy, gdy jest „zainfekowana” – daje możliwość analizy i przywrócenia treści w razie błędu podczas czyszczenia.

Krok 1 – odetnij ruch i poinformuj użytkowników

Aby nie narażać użytkowników na infekcję lub phishing, zaleca się tymczasowe zablokowanie publicznego dostępu do strony:

  • włącz tryb konserwacji/maintenance za pomocą lekkiej wtyczki lub prostego pliku maintenance.php,
  • ustaw przekierowanie na stronę z komunikatem o pracach technicznych,
  • w razie poważnych ostrzeżeń Google/hostingu rozważ chwilowe zablokowanie domeny z poziomu hostingu.

To krok często pomijany, ale kluczowy z perspektywy użytkowników i reputacji domeny.

Krok 2 – przeskanuj stronę automatycznymi narzędziami

Zewnętrzne skanery online

Polskie poradniki sugerują użycie zewnętrznych skanerów dla szybkiej weryfikacji. Narzędzia typu Sucuri SiteCheck pozwalają przeskanować publicznie dostępną stronę pod kątem malware, spamowych linków i blacklist; skaner wskaże również, czy witryna jest zablokowana w popularnych usługach bezpieczeństwa, co pomaga ocenić skalę problemu.

Wtyczki bezpieczeństwa do WordPressa

Następnie wykonaj pełne skanowanie plików i bazy z poziomu WordPressa.

Najczęściej polecane rozwiązania to m.in.:

  • Wordfence Security – rozbudowana wtyczka do skanowania i firewallu, porównuje pliki z oryginalnym repozytorium WordPressa i wskazuje zmiany;
  • Anti-Malware & Brute-Force Security by ELI – wtyczka dedykowana wyszukiwaniu złośliwego kodu w plikach głównych, motywach i wtyczkach;
  • iThemes Security (Better WP Security) – dodaje warstwy ochrony po czyszczeniu.

W opcjach skanowania zaznacz wszystkie możliwe elementy (pliki rdzeniowe, motywy, wtyczki, katalog uploads), a następnie przejrzyj każdy plik oznaczony jako podejrzany.

Krok 3 – aktualizacja i selekcja wtyczek oraz motywów

Zanim przejdziesz do ręcznego czyszczenia, wykonaj podstawowe prace „porządkowe”:

  • zaktualizuj WordPressa do najnowszej wersji,
  • zaktualizuj wszystkie motywy i wtyczki, szczególnie te aktywne,
  • usuń niepotrzebne wtyczki i motywy, czyli wszystko, czego nie używasz,
  • jeśli korzystasz z motywów lub wtyczek z niepewnych źródeł („nulled”), zastąp je licencjonowanymi odpowiednikami.

Aktualizacja zamyka wiele znanych luk, a usunięcie zbędnych elementów zmniejsza powierzchnię ataku i ułatwia dalsze skanowanie.

Krok 4 – ręczne czyszczenie plików przez FTP lub menedżer plików

Po wstępnym skanowaniu wtyczkami czas na manualną weryfikację plików – to etap, który często przesądza o skuteczności usunięcia wirusa.

Połączenie z serwerem

Specjaliści sugerują użycie programu FTP (np. FileZilla) lub menedżera plików w hostingu. Połącz się z serwerem i przejdź do katalogu z instalacją WordPressa, a następnie pobierz podejrzane pliki na dysk lokalny, aby móc je przeanalizować i ewentualnie zedytować.

Kluczowe pliki motywu i silnika WordPress

Poradniki wskazują kilka najczęściej infekowanych plików:

  • pliki motywu: index.php, header.php, footer.php oraz functions.php – często wykorzystywane do wstrzykiwania przekierowań i spamu,
  • pliki w katalogu głównym: index.php, wp-config.php, różne pliki .php o nietypowych nazwach,
  • pliki w katalogach wp-admin i wp-includes, jeśli zostały zmodyfikowane.

Część poradników sugeruje podmianę całych katalogów rdzeniowych WordPressa (np. wp-admin) na czystą kopię z oficjalnego źródła, uważając jednak, aby nie nadpisywać pliku wp-config.php.

Jak rozpoznać złośliwy kod w pliku?

Wtyczki typu Wordfence lub Anti-Malware wskażą dokładne pliki i fragmenty kodu, które wyglądają podejrzanie.

W praktyce często są to:

  • długie, niezrozumiałe ciągi znaków zakodowane np. przez base64_encode,
  • fragmenty używające funkcji eval(), gzinflate(), str_rot13() w nietypowy sposób,
  • kod umieszczony na początku lub końcu pliku, którego wcześniej tam nie było.

Poradniki zalecają w takich przypadkach:

  • usunąć złośliwy fragment, jeśli wiesz dokładnie, co zostało dodane,
  • jeśli cały plik jest podejrzany, zastąpić go czystą kopią z oryginalnego motywu/wtyczki lub repozytorium WordPressa,
  • w razie wątpliwości porównać plik z wersją ze świeżej instalacji WordPressa lub oryginalnego pakietu motywu.

Po ręcznym czyszczeniu koniecznie ponownie przeskanuj stronę wtyczką antywirusową, aby upewnić się, że nie pozostały żadne ukryte fragmenty malware.

Krok 5 – sprawdzenie i czyszczenie bazy danych

Złośliwy kod może znajdować się również w bazie danych, np. w polach zawierających ustawienia lub treść.

Dostęp do bazy (phpMyAdmin)

Poradniki rekomendują logowanie do bazy przez phpMyAdmin z poziomu hostingu. Wybierz bazę danych powiązaną z Twoją instalacją WordPressa, a następnie przejrzyj kluczowe tabele – szczególnie wp_options, wp_users i tabele powiązane z treściami (np. wp_posts).

Tabela wp_options – przekierowania i nietypowe wpisy

W tabeli wp_options często pojawiają się:

  • złośliwe przekierowania (np. zmodyfikowany siteurl lub home),
  • dziwne wpisy w polach typu widget_, theme_mods_, które wstrzykują spam lub kod JavaScript,
  • nadmiarowe opcje dodane przez malware (nietypowe nazwy, długie zaszyfrowane ciągi znaków).

Podejrzane wpisy można usunąć lub przywrócić do wartości domyślnych, pamiętając, aby nie kasować standardowych ustawień WordPressa i motywu.

Tabela użytkowników – nielegalne konta

Wielu specjalistów wskazuje, że atakujący często dodają sobie nowego użytkownika z uprawnieniami administratora. Sprawdź tabelę wp_users oraz wp_usermeta, po czym usuń nieznane konta lub obniż uprawnienia użytkownikom, którzy nie powinni mieć roli „Administrator”.

To krytyczny etap – pozostawienie takiego konta oznacza, że atakujący może wrócić na stronę nawet po wyczyszczeniu plików.

Krok 6 – przywrócenie czystej kopii lub podmiana plików WordPressa

Jeśli infekcja jest rozległa, wiele poradników zaleca nadpisanie plików WordPressa czystą wersją:

  • pobierz najnowszy pakiet WordPressa z oficjalnego źródła,
  • na serwerze nadpisz katalogi wp-admin i wp-includes oraz pliki główne, pozostawiając nienaruszony katalog wp-content (motywy, wtyczki, media),
  • uważaj, aby nie nadpisać pliku wp-config.php – zawiera dane dostępowe do bazy i klucze bezpieczeństwa.

W skrajnych przypadkach najszybszą drogą jest przywrócenie pełnej, wcześniejszej kopii zapasowej – pod warunkiem, że pochodzi z czasu sprzed infekcji.

Krok 7 – zmiana haseł, kluczy i uprawnień

Usunięcie malware z plików i bazy to tylko część pracy – trzeba jeszcze zamknąć drogę powrotu dla atakującego.

Reset wszystkich haseł

Polskie poradniki zdecydowanie zalecają reset kompletu haseł:

  • hasło do panelu administratora WordPressa,
  • hasło do FTP/SFTP,
  • hasło do bazy danych (jeśli to możliwe; pamiętaj o aktualizacji w wp-config.php),
  • hasło do konta hostingu/panelu klienta,
  • hasło do skrzynek e-mail, szczególnie tej powiązanej z kontem administratora WordPressa.

Uprawnienia do plików i katalogów

W jednym z poradników podkreślono, że niewłaściwe uprawnienia to częsta przyczyna problemów. Rekomendowane ustawienia to:

  • katalogi: 755 lub 750,
  • pliki: 640 lub 644,
  • plik wp-config.php: 600 (tylko właściciel ma pełny dostęp).

Należy unikać chmod 777, który daje pełne prawa wszystkim użytkownikom i znacząco zwiększa ryzyko infekcji.

Krok 8 – ponowna weryfikacja, Google Search Console i hosting

Po zakończeniu czyszczenia warto upewnić się, że strona jest postrzegana jako bezpieczna przez zewnętrzne systemy.

Google Search Console

Według specjalistycznych poradników, aby skorzystać z Search Console, trzeba najpierw dodać i zweryfikować stronę. Następnie sprawdź sekcję dotyczącą problemów z bezpieczeństwem; jeśli wcześniej było zgłoszone malware lub phishing, po usunięciu infekcji złóż prośbę o ponowną weryfikację (reconsideration). Dzięki temu Google usunie ostrzeżenia w wynikach wyszukiwania i w przeglądarce, gdy uzna stronę za czystą.

Komunikacja z hostingiem

Kilka poradników sugeruje poinformowanie hostingu o wykonanym czyszczeniu. Jeśli hosting wcześniej oznaczył stronę jako zainfekowaną, poproś o ponowny skan i odblokowanie ewentualnych restrykcji. Upewnij się też, że nie ma dodatkowych skryptów lub zadań cronowych, które mogły zostać dodane przez malware.

Jak zabezpieczyć WordPressa po infekcji?

Po odzyskaniu strony priorytetem jest wdrożenie zabezpieczeń, aby sytuacja się nie powtórzyła.

Stałe aktualizacje

Wszystkie poradniki zgodnie podkreślają:

  • regularnie aktualizuj WordPressa,
  • aktualizuj motywy i wtyczki, najlepiej automatycznie lub niezwłocznie po pojawieniu się nowych wersji,
  • usuwaj wszystko, czego nie używasz, aby zmniejszyć ilość potencjalnie podatnych elementów.

Wtyczki bezpieczeństwa i zapory

Po wyczyszczeniu strony warto zainstalować wtyczkę bezpieczeństwa, która będzie:

  • monitorować pliki pod kątem nowych modyfikacji,
  • blokować próby brute-force na hasła (ograniczać liczbę prób logowania),
  • dodawać warstwy firewallu aplikacyjnego (np. blokowanie podejrzanych żądań).

Przykładem jest Wordfence Security, często wskazywany jako podstawowe narzędzie ochronne po usunięciu wirusów.

Bezpieczne praktyki na co dzień

Dobre praktyki bezpieczeństwa, które pojawiają się w poradnikach:

  • używaj mocnych haseł i rozważ wdrożenie dwuskładnikowego uwierzytelniania (2FA),
  • ogranicz liczbę kont z rolą Administrator, nadając niższe role tam, gdzie to możliwe,
  • instaluj motywy i wtyczki tylko z zaufanych źródeł, unikaj pirackich kopii,
  • regularnie twórz kopie zapasowe (najlepiej automatyczne i przechowywane poza serwerem),
  • monitoruj logi serwera i alerty z hostingu – szybkie wykrycie niepokojącej aktywności skraca czas infekcji.

Kiedy warto skorzystać z pomocy specjalisty?

Niektóre przypadki infekcji są na tyle skomplikowane, że samodzielne czyszczenie może okazać się trudne lub czasochłonne. Warto rozważyć pomoc profesjonalisty, gdy:

  • strona generuje przychody i przestój jest bardzo kosztowny,
  • brakuje Ci doświadczenia w pracy z FTP, bazą danych i kodem PHP,
  • mimo prób czyszczenia wirus powraca (co sugeruje istnienie ukrytych backdoorów),
  • Google lub hosting wciąż oznaczają stronę jako zainfekowaną, choć Twoim zdaniem jest już czysta.

Firmy specjalizujące się w WordPressie zazwyczaj oferują:

  • pełne skanowanie i czyszczenie plików oraz bazy,
  • analizę przyczyny infekcji i wdrożenie zabezpieczeń,
  • wsparcie w komunikacji z Google i hostingiem.

Skrócony plan działania – lista kontrolna

  1. Zrób kopię zapasową plików i bazy danych.
  2. Zablokuj stronę (tryb konserwacji), aby nie narażać użytkowników.
  3. Przeskanuj witrynę zewnętrznym skanerem (np. Sucuri) i wtyczkami bezpieczeństwa (Wordfence, Anti-Malware).
  4. Zaktualizuj WordPressa, motywy i wtyczki, usuń nieużywane dodatki.
  5. Przejrzyj pliki przez FTP, szczególnie motyw (index.php, header.php, footer.php, functions.php) i katalogi wp-admin, wp-includes, usuwając lub nadpisując zainfekowane pliki.
  6. Sprawdź bazę danych (phpMyAdmin): tabela wp_options (przekierowania, nietypowe wpisy) i wp_users (podejrzani administratorzy).
  7. W razie potrzeby przywróć czystą kopię strony z backupu sprzed infekcji.
  8. Zresetuj wszystkie hasła (WordPress, FTP, hosting, baza, e-mail), ustaw prawidłowe uprawnienia plików.
  9. Zgłoś stronę do ponownej weryfikacji w Google Search Console i poinformuj hosting o zakończonym czyszczeniu.
  10. Wdróż zabezpieczenia na przyszłość – wtyczki bezpieczeństwa, 2FA, regularne aktualizacje i backupy.