Japanese Keyword Hack i Chinese SEO Spam — jak usunąć spam z WordPressa i Google?
Jeśli otworzyłeś swoją stronę i wszystko wygląda normalnie, ale w Google lub Google Search Console zobaczyłeś dziesiątki, tysiące albo nawet setki tysięcy obcych adresów URL z chińskimi lub japońskimi znakami, reklamami podróbek, leków czy innych produktów, których nigdy nie publikowałeś, prawdopodobnie masz do czynienia z infekcją określaną jako Japanese Keyword Hack, Japanese SEO Spam, Chinese SEO Spam albo SEO spam injection.
Problem jest szczególnie uciążliwy dlatego, że po oczyszczeniu WordPressa nie kończy się od razu. Złośliwy kod możesz usunąć stosunkowo szybko, natomiast Google zdążył już odkryć i zapisać tysiące wygenerowanych adresów. W efekcie strona działa prawidłowo, a Google Search Console przez kolejne tygodnie lub miesiące może wyglądać jak przysłowiowy śmietnik. W tym poradniku zajmiemy się więc dwoma etapami: usunięciem przyczyny infekcji oraz uporządkowaniem jej skutków w Google.
Jeżeli pod Twoją domeną pojawiły się dziesiątki, tysiące lub setki tysięcy obcych adresów z chińskimi albo japońskimi treściami, potraktuj to jako incydent bezpieczeństwa. Nie zaczynaj od masowego usuwania adresów w Google Search Console. Najpierw zatrzymaj infekcję, usuń możliwość ponownego dostępu do strony i upewnij się, że WordPress jest czysty. Dopiero później zajmij się indeksem Google.
- Co to jest Japanese Keyword Hack i Chinese SEO Spam?
- Dlaczego w WordPressie pojawiły się chińskie lub japońskie strony?
- Zabezpiecz informacje przed rozpoczęciem naprawy
- Jak usunąć Japanese Keyword Hack z WordPressa?
- Jak sprawdzić, czy Chinese SEO Spam został usunięty?
- Google Search Console po Japanese Keyword Hack
- Co zrobić ze spamowymi adresami URL?
- Co zrobić z mapą witryny?
- Jak uporządkować raport Indeksowanie stron?
- Raport Skuteczność w Google Search Console
- Jak zabezpieczyć WordPress po usunięciu infekcji?
Twoja strona może być chroniona przed podobnymi zagrożeniami już na poziomie hostingu. W SEOHOST wykorzystujemy Monarx Security, który analizuje pliki, aktywność aplikacji PHP oraz wybrane zdarzenia związane z ruchem i pomaga wykrywać oraz blokować złośliwe działania. Jeśli szukasz środowiska wyposażonego w dodatkowe warstwy ochrony, sprawdź bezpieczny hosting SEOHOST lub przeczytaj, jak powinien wyglądać bezpieczny hosting.
Co to jest Japanese Keyword Hack i Chinese SEO Spam?
W największym skrócie jest to infekcja, której jednym z efektów jest tworzenie pod Twoją domeną obcych treści przeznaczonych przede wszystkim dla wyszukiwarki. Mogą to być strony z chińskimi lub japońskimi znakami, reklamy produktów, kasyn, leków albo zupełnie innych treści niezwiązanych z Twoją witryną.
Niestety nie jest to problem ograniczony do kilku dodatkowych wpisów w WordPressie. Złośliwy mechanizm może generować strony dynamicznie, tworzyć lub modyfikować pliki, ingerować w bazę danych, zmieniać reguły .htaccess, dodawać własne mapy witryny albo stosować cloaking, czyli pokazywać inną zawartość Tobie, a inną robotowi Google.
Nie szukaj jednego pliku o nazwie japanese-spam.php. Nie istnieje uniwersalny generator Japanese Keyword Hack. To określenie opisuje efekt i rodzinę podobnych infekcji, natomiast sposób przejęcia strony i mechanizm generowania spamu mogą być różne.
Dlaczego w WordPressie pojawiły się chińskie lub japońskie strony?
Najpierw trzeba rozdzielić dwie rzeczy: drogę, którą atakujący dostał się do WordPressa, oraz mechanizm, który później pozwalał mu generować spam albo ponownie infekować stronę. Usunięcie samych chińskich podstron bez zamknięcia pierwszego problemu może spowodować, że za kilka dni wszystko zacznie się od początku.
| Możliwa przyczyna | Co powinieneś sprawdzić? |
|---|---|
| Nieaktualna lub podatna wtyczka | Wersje używanych dodatków, dostępne aktualizacje i wtyczki, które nie są już rozwijane. |
| Podatny albo zmodyfikowany motyw | Aktywny motyw, motyw potomny oraz pozostawione na serwerze nieużywane motywy. |
| Przejęte dane logowania | Konta administratorów WordPressa, panel hostingu, FTP/SFTP, SSH i pozostałe dostępy administracyjne. |
| Złośliwy lub piracki komponent | Wtyczki i motywy pobrane z nieoficjalnych źródeł. |
| Backdoor | Nieznane pliki PHP, zmodyfikowane prawidłowe pliki, MU-plugins i kod pozwalający ponownie uzyskać dostęp. |
| Zmiany konfiguracji | .htaccess, wp-config.php, przekierowania, zadania CRON i WP-Cron. |
| Stara instalacja WordPressa | Katalogi typu /old/, /test/, /backup/ oraz pozostawione kopie wcześniejszych stron. |
Ciekawej analizy przyczyn przejęć WordPressa podjął się Wordfence, którego zespół regularnie publikuje informacje o podatnościach i bezpieczeństwie WordPressa. Wśród powtarzających się problemów wskazuje między innymi nieaktualne oprogramowanie, słabe dane dostępowe, podatne rozszerzenia oraz pozostawione na serwerze stare instalacje WordPressa.
Nie oznacza to jednak, że automatycznie winna jest wtyczka. Jest to jeden z najczęściej powtarzających się scenariuszy, ale bez analizy konkretnej witryny i dostępnych logów nie zawsze uda się jednoznacznie wskazać punkt wejścia. Podobne przypadki opisujemy również w naszym poradniku o malware w WordPressie, a informacje o nowych podatnościach publikujemy regularnie na blogu SEOHOST.
Zabezpiecz informacje przed rozpoczęciem naprawy infekcji
Zdajemy sobie sprawę, że Twoją naturalną reakcją będzie próba natychmiastowego usunięcia wszystkiego, co wygląda podejrzanie. Zanim to zrobisz, poświęć kilka minut na zapisanie obecnego stanu. Te informacje mogą później pomóc Tobie albo administratorowi ustalić, co faktycznie się wydarzyło.
Co zalecamy zrobić?
- zrób zrzuty ekranu wyników Google i Google Search Console,
- zapisz kilka lub kilkanaście przykładowych spamowych adresów URL,
- zachowaj dostępne logi serwera,
- sprawdź i zapisz daty ostatniej modyfikacji podejrzanych plików,
- wykonaj kopię aktualnego stanu strony przed rozpoczęciem czyszczenia.
Zdajemy sobie sprawę, że ostatni punkt brzmi paradoksalnie. Taka kopia nie ma służyć do późniejszego przywracania zainfekowanej strony. Jest raczej materiałem, do którego administrator może wrócić podczas szukania punktu wejścia, backdoora albo mechanizmu odpowiedzialnego za ponowne generowanie spamu.
Podobne podejście zaleca również sam WordPress w swojej dokumentacji dotyczącej przejętych stron. Warto śledzić również blog SEOHOST, gdzie informujemy o nowych podatnościach WordPressa, WooCommerce, popularnych wtyczek i innych systemów CMS.
Jak usunąć Japanese Keyword Hack z WordPressa?
Niestety, pomimo szczerych chęci do rozwiązania problemu możliwie najprostszą instrukcją, musimy Cię uprzedzić: nie istnieje jedna procedura krok po kroku, która naprawi każdy przypadek Japanese Keyword Hack. Na podstawie powtarzających się scenariuszy można jednak wypracować schemat działania, który pozwala znaleźć infekcję, usunąć ją i ograniczyć ryzyko jej ponownego pojawienia się.
Część poniższych czynności może wydawać się trywialna. W praktyce wiele poważnych problemów z WordPressem zaczyna się jednak od bardzo prostych rzeczy: nieaktualnej wtyczki, starego hasła, pozostawionego konta administratora albo zapomnianej instalacji CMS.
1. Sprawdź dostępy i administratorów
Zmień dane dostępowe do WordPressa, panelu hostingowego oraz używanych kont FTP/SFTP lub SSH. Przejrzyj listę administratorów i usuń konta, których nie rozpoznajesz. Jeżeli jedno hasło było wykorzystywane w kilku miejscach, zmień je również tam.
2. Zaktualizuj WordPress, wtyczki i motyw
Zaktualizuj komponenty, których używasz, a niepotrzebne wtyczki i motywy usuń. Nie traktuj jednak samej aktualizacji jako usunięcia infekcji. Aktualizacja może zamknąć podatność, ale pozostawiony wcześniej backdoor nadal będzie działał.
3. Sprawdź pliki i konfigurację
Przejrzyj między innymi wp-config.php, .htaccess, katalogi wp-admin, wp-includes, wp-content/plugins, wp-content/themes, uploads i mu-plugins. Zwróć uwagę na nowe pliki PHP, kod dodany do prawidłowych plików oraz podejrzane reguły przekierowań.
4. Sprawdź bazę danych i zadania CRON
Jeżeli po usunięciu plików problem wraca, poszukaj mechanizmu, który je odtwarza. Sprawdź użytkowników WordPressa, podejrzane rekordy w bazie, WP-Cron, zadania cron uruchamiane po stronie hostingu oraz MU-plugins.
5. Rozważ przywrócenie pewnej kopii zapasowej
Jeżeli dysponujesz kopią wykonaną przed infekcją, jej przywrócenie może być znacznie szybsze niż ręczne poprawianie dziesiątek zmodyfikowanych plików. Pamiętaj jednak, że po przywróceniu nadal musisz usunąć przyczynę włamania: wykonać aktualizacje, zmienić hasła, usunąć zbędne dodatki i ponownie sprawdzić całą instalację.
Jeżeli korzystasz z SEOHOST, możesz zgłosić przywrócenie kopii zapasowej nawet sprzed 30 dni. Kopie dostępne na koncie możesz również przywracać poprzez Backup Manager w DirectAdmin.
Zdecydowanie namawiamy również do wykonywania własnych kopii. DirectAdmin pozwala utworzyć backup plików, baz danych, poczty i ustawień konta. Całą procedurę opisaliśmy w instrukcji Jak wykonać kopię zapasową w DirectAdmin?.
6. Przeskanuj środowisko po stronie hostingu
W SEOHOST dodatkową warstwą ochrony jest Monarx Security. System analizuje pliki, aktywność aplikacji PHP oraz wybrane zdarzenia związane z ruchem i może pomagać w wykrywaniu złośliwego kodu oraz reagowaniu na potwierdzone zagrożenia.
Monarx nie zastępuje jednak aktualizacji ani analizy źródła infekcji. Jeżeli pozostawisz podatny komponent lub przejęte konto administratora, samo usunięcie wykrytego malware nie rozwiązuje całego problemu.
Jak sprawdzić, czy Chinese SEO Spam został faktycznie usunięty?
Nie dasz rady tego potwierdzić, patrząc wyłącznie na stronę główną i zawartość panelu WordPressa. Weź kilka przykładowych adresów wygenerowanych przez infekcję – między innymi dlatego zalecaliśmy ich zapisanie przed rozpoczęciem naprawy – i sprawdź, co zwracają teraz.
Poza tym sprawdź, czy:
- nie pojawiają się nowe spamowe adresy,
- nie ma obcych administratorów i użytkowników Search Console,
- nie istnieją nieznane mapy witryny,
- usunięte złośliwe pliki nie pojawiają się ponownie,
- skaner bezpieczeństwa nie wykrywa kolejnych zagrożeń.
Dopiero wtedy przechodzimy do drugiej części problemu – tego, co po infekcji zostało w Google.
Google Search Console po Japanese Keyword Hack
Możesz mieć witrynę złożoną ze 100 prawidłowych podstron, a Google Search Console nadal będzie pokazywał 20 tysięcy, 100 tysięcy albo nawet kilkaset tysięcy adresów utworzonych podczas infekcji.
Niestety nie jest to wymyślony scenariusz. Z własnego doświadczenia wiemy, że prosta witryna posiadająca kilkaset prawidłowych adresów może po takim ataku pozostawić w Google Search Console nawet miliony wykrytych URL-i, z których część zdążyła już trafić do indeksu. Analogicznie strona posiadająca kilkanaście właściwych podstron może zostać zasypana dziesiątkami tysięcy adresów wygenerowanych przez spam.
Podobne historie znajdziesz w wątkach Google Search Central Help, gdzie właściciele oczyszczonych już witryn pytają, dlaczego tysiące nieistniejących adresów nadal pojawiają się w raportach. I właśnie tutaj trzeba rozróżnić aktywną infekcję od historii URL-i, które Google zdążył wcześniej poznać.
Obecność starych spamowych adresów w Google Search Console nie oznacza automatycznie, że WordPress nadal jest zainfekowany. Sprawdź przede wszystkim, czy powstają nowe URL-e i co serwer zwraca dla adresów utworzonych podczas infekcji.
Co powinny zwracać spamowe adresy po usunięciu infekcji?
Jeżeli obca podstrona powstała wyłącznie w wyniku działania złośliwego kodu i po wyczyszczeniu strony już nie istnieje, powinna zwracać prawidłowy kod:
404 Not Found lub 410 Gone.
Nie twórz pustych stron tylko po to, aby URL zwracał 200 OK i nie przekierowuj automatycznie tysięcy obcych adresów na stronę główną. Google musi otrzymać jasną informację, że dany zasób przestał istnieć.
Nie blokuj również takich URL-i w robots.txt tylko dlatego, że chcesz jak najszybciej pozbyć się ich z Google. Robot powinien mieć możliwość ponownego odwiedzenia adresu i zobaczenia odpowiedzi 404 lub 410.
Jeżeli chcesz szybko ukryć najbardziej problematyczne wyniki, możesz skorzystać z narzędzia Usunięcia w Search Console, ale traktuj je jako rozwiązanie pomocnicze. Nie zastępuje ono trwałego usunięcia źródła infekcji ani prawidłowej odpowiedzi serwera.
Co zrobić z mapą witryny po Japanese Keyword Hack?
Sprawdź wszystkie mapy witryny zgłoszone w Google Search Console oraz pliki sitemap znajdujące się na serwerze. Jeżeli infekcja utworzyła własną mapę albo dopisała do prawidłowej sitemapy spamowe adresy, usuń te elementy i wygeneruj mapę ponownie.
Po naprawie sitemap powinna zawierać wyłącznie prawidłowe, kanoniczne adresy, które faktycznie chcesz indeksować. Następnie zgłoś ją ponownie w Google Search Console.
Nie oczekuj jednak, że wysłanie nowej mapy automatycznie usunie z raportów wszystkie stare adresy. Google już je zna i potrzebuje czasu na ich ponowne przetworzenie.
Jak korzystać z Google Search Console, gdy raport Indeksowanie stron jest pełen spamu?
To jeden z najbardziej irytujących skutków Japanese Keyword Hack. Google Search Console potrafi po takim ataku wyglądać fatalnie i przez długi czas pozostawiać po sobie przysłowiowy śmietnik.
Normalnie możesz mieć przykładowo 300 stron, z czego 260 jest zaindeksowanych, a 40 wymaga sprawdzenia. Po infekcji nagle widzisz setki tysięcy wykrytych URL-i, błędów 404 oraz adresów oznaczonych jako „wykryto – obecnie niezindeksowana”. Raport przestaje być praktyczny.
Na szczęście nie musisz pracować wyłącznie na widoku Wszystkie znane strony. W raporcie indeksowania możesz przełączyć zakres między innymi na:
- wszystkie znane strony,
- wszystkie przesłane strony,
- nieprzesłane strony,
- konkretną zgłoszoną mapę witryny.
Po infekcji szczególnie przydatny jest ostatni wariant. Jeżeli masz już czystą sitemapę zawierającą wyłącznie prawidłowe URL-e, możesz analizować właśnie ją zamiast całej historii adresów znanych Google.
Nie usunie to spamowych URL-i z Search Console, ale pozwoli Ci ponownie pracować na danych dotyczących właściwej strony. Jeżeli dopiero zaczynasz korzystać z tego narzędzia, zobacz również co to jest Google Search Console i jakie dane udostępnia.
Raport Skuteczność w Google Search Console
Kolejnym problemem będzie raport Skuteczność. Jeżeli spamowe adresy zaczęły generować wyświetlenia w wynikach wyszukiwania, również dane dotyczące fraz, stron i widoczności przestaną odzwierciedlać normalne funkcjonowanie witryny.
W tym miejscu ponownie przydadzą się filtry. Google Search Console pozwala filtrować raport według konkretnej strony, fragmentu adresu oraz wyrażeń regularnych. Jeżeli spamowe URL-e mają charakterystyczny katalog, fragment albo schemat, możesz wykluczyć je z analizowanego zestawu.
Nie usuwa to danych z Google, ale pozwala oddzielić wyniki prawidłowych podstron od śmieci pozostawionych przez infekcję.
Nie zdziw się również, jeżeli zewnętrzne narzędzie SEO wygląda znacznie spokojniej niż Search Console. Narzędzia takie jak systemy monitorowania pozycji analizują określone frazy i zestawy wyników, natomiast Google Search Console pokazuje informacje bezpośrednio związane z adresami, które Google odkrywał, crawlował lub wyświetlał.
Czy trzeba usunąć 100 tysięcy błędów z Google Search Console?
Nie.
Co więcej, nie istnieje przycisk pozwalający wyczyścić całą historię URL-i wygenerowanych przez infekcję. Jeżeli WordPress jest już czysty, spamowe adresy nie są ponownie tworzone, zostały usunięte z sitemap i zwracają prawidłowe 404 lub 410, pozwól Google ponownie je przetworzyć.
Duża liczba błędów 404 może w tym przypadku wyglądać źle, ale sama odpowiedź 404 jest prawidłowa. Nie naprawiaj setek tysięcy nieistniejących adresów przez przekierowanie ich na stronę główną.
Porządkowanie raportu potrwa. Przy dużej infekcji mogą to być tygodnie, a czasem znacznie dłużej.
Jak zabezpieczyć WordPress po usunięciu Chinese SEO Spam?
Po takim incydencie nie kończ pracy na stwierdzeniu „strona już działa”. Wykorzystaj go jako okazję do przejrzenia całej instalacji.
- utrzymuj aktualny WordPress, wtyczki i motyw,
- usuń rozszerzenia i stare instalacje, których już nie potrzebujesz,
- zmień hasła i włącz 2FA dla administratorów,
- regularnie sprawdzaj listę użytkowników,
- wykonuj własne kopie zapasowe i przechowuj przynajmniej jedną poza głównym kontem hostingowym,
- monitoruj zmiany w plikach i komunikaty Google Search Console,
- korzystaj z dodatkowych warstw ochrony dostępnych po stronie hostingu.
Więcej rozwiązań opisaliśmy w poradniku Narzędzia do ochrony WordPress.
Japanese Keyword Hack ma bowiem dwa etapy. Pierwszy kończy się wtedy, kiedy atakujący nie może już generować nowych stron ani ponownie zainfekować WordPressa. Drugi – kiedy Google stopniowo przestanie pamiętać o adresach utworzonych wcześniej.
Najważniejsze jest zachowanie właściwej kolejności: zabezpiecz dowody i kopię, usuń infekcję, zamknij drogę ponownego dostępu, sprawdź kilka zapisanych wcześniej spamowych URL-i, przygotuj czystą sitemapę i dopiero wtedy porządkuj Google Search Console. Próba rozpoczęcia od usuwania tysięcy adresów z Google oznacza walkę ze skutkiem zamiast z przyczyną.