Die Website sieht völlig normal aus, im WordPress-Backend ist nichts Auffälliges zu erkennen – aber Google zeigt plötzlich japanische Seitentitel, Casino-Inhalte oder hunderte unbekannte URLs an?
Dann könnte die WordPress-Seite von einem sogenannten SEO-Hack betroffen sein.
Das Gemeine daran: Viele dieser Angriffe sind für normale Besucher kaum sichtbar. Die manipulierten Inhalte werden teilweise gezielt an Suchmaschinen ausgespielt. Während auf der Website scheinbar alles funktioniert, indexiert Google im Hintergrund immer mehr Spam-Seiten.
Woran erkennt man einen SEO-Hack?
Einen schnellen ersten Check kann man direkt über Google machen:
site:meinedomain.de
Damit werden die von Google bekannten Seiten der Domain angezeigt. Tauchen hier plötzlich URLs oder Inhalte auf, die definitiv nicht zur Website gehören, sollte man genauer hinschauen.
Typische Anzeichen sind:
- japanische oder andere fremdsprachige Suchergebnisse
- Casino-, Pharma- oder Fake-Shop-Inhalte
- hunderte neue URLs in der Google Search Console
- unbekannte Sitemaps
- Weiterleitungen, die nur über Google auftreten
- unbekannte WordPress-Administratoren
- PHP-Dateien an Stellen, an denen sie nichts verloren haben
Eine bekannte Variante ist der Japanese Keyword Hack. Mittlerweile gibt es aber zahlreiche Abwandlungen. Das Prinzip bleibt meistens ähnlich: Eine bereits etablierte Domain wird genutzt, um fremde Inhalte bei Google zu platzieren.
Warum ein Security-Scan nicht unbedingt reicht
Wordfence, Defender und andere Security-Plugins sind ein guter erster Schritt. Bei einem ernsthaften Verdacht sollte man sich darauf aber nicht ausschließlich verlassen.
Schadcode kann sich unter anderem in Plugins, Themes, der .htaccess, der wp-config.php, in MU-Plugins oder sogar in der Datenbank verstecken. Zusätzlich können Angreifer Backdoors hinterlassen, über die sie später wieder Zugriff bekommen.
Deshalb sollte die Installation einmal sauber durchgeprüft werden.
1. Backup machen und Zugänge ändern
Vor der Bereinigung zuerst ein vollständiges Backup von Dateien und Datenbank erstellen. Nicht weil dieses Backup sauber ist, sondern damit der aktuelle Zustand gesichert ist.
Anschließend sollten die wichtigsten Zugangsdaten geändert werden: WordPress-Administratoren, Hosting, FTP/SFTP, Datenbank und gegebenenfalls SSH.
Zusätzlich unter Benutzer → Alle Benutzer kontrollieren, ob unbekannte Administratoren vorhanden sind.
2. WordPress-Core ersetzen
Statt einzelne Core-Dateien mühsam zu kontrollieren, kann man den WordPress-Core durch eine frisch heruntergeladene Version ersetzen.
Insbesondere die Verzeichnisse wp-admin und wp-includes sowie die WordPress-Core-Dateien im Hauptverzeichnis können durch saubere Originaldateien ersetzt werden.
Wichtig: wp-content und wp-config.php nicht einfach löschen oder ersetzen. Dort befinden sich die individuellen Inhalte und Einstellungen der Website.
3. wp-config.php und .htaccess prüfen
Beide Dateien werden bei Angriffen gerne manipuliert.
In der wp-config.php sollte man auf unbekannten oder verschleierten PHP-Code achten. Verdächtig können beispielsweise unerwartete Konstruktionen mit eval(), base64_decode() oder gzinflate() sein.
Auch ein unerklärliches Änderungsdatum ist ein Grund, genauer hinzuschauen.
In der .htaccess sollte insbesondere nach unbekannten Weiterleitungen, externen Domains oder zusätzlichen Rewrite-Regeln gesucht werden.
4. Plugins, Themes und MU-Plugins kontrollieren
Plugins und Themes sollten aktualisiert und im Zweifelsfall aus einer vertrauenswürdigen Quelle frisch installiert werden. Nicht mehr benötigte Plugins am besten komplett löschen.
Besonders gerne vergessen wird das Verzeichnis:
wp-content/mu-plugins/
Die dort hinterlegten Must-Use-Plugins werden automatisch von WordPress geladen. Jede unbekannte Datei in diesem Verzeichnis sollte deshalb überprüft werden.
Beim aktiven Theme lohnt sich außerdem ein genauer Blick in die functions.php.
5. Upload-Verzeichnis überprüfen
Unter wp-content/uploads/ liegen normalerweise Bilder, PDFs und andere Medien.
PHP-Dateien haben dort bei den meisten WordPress-Installationen nichts verloren.
Wer SSH-Zugriff hat, kann gezielt nach PHP-Dateien im Upload-Verzeichnis suchen.
Auch ein Blick auf kürzlich veränderte Dateien kann hilfreich sein. Wurde an einer Website seit Wochen nichts geändert und plötzlich weisen mehrere PHP-Dateien ein aktuelles Änderungsdatum auf, sollte man sich diese genauer ansehen.
6. Datenbank und Cronjobs nicht vergessen
Ein SEO-Hack muss nicht ausschließlich im Dateisystem stecken.
Auch die Datenbank sollte bei einem hartnäckigen Befall kontrolliert werden. Interessant sind insbesondere die Tabellen wp_options, wp_posts, wp_postmeta, wp_users und wp_usermeta.
Zusätzlich lohnt sich ein Blick auf geplante WordPress-Aufgaben sowie Cronjobs im Hosting. Darüber kann Schadcode beispielsweise regelmäßig erneut angelegt werden.
7. Google Search Console prüfen
Nach der technischen Bereinigung geht es an Google.
In der Search Console sollte man vor allem die Bereiche Indexierung → Seiten, Sitemaps sowie Sicherheit und manuelle Maßnahmen kontrollieren.
Unbekannte Sitemaps sollten entfernt werden.
Sind nach der Bereinigung weiterhin Spam-URLs bei Google zu finden, bedeutet das nicht automatisch, dass der Hack noch aktiv ist. Google kann alte URLs noch längere Zeit im Index behalten.
Entscheidend ist, was die betroffenen URLs jetzt ausliefern. Existieren sie nicht mehr, sollten sie einen korrekten HTTP-Status 404 oder 410 zurückgeben und nicht einfach auf die Startseite weiterleiten.
Google entfernt solche URLs anschließend nach und nach aus dem Index.
Wie kam der Angreifer überhaupt rein?
Dieser Punkt ist mindestens genauso wichtig wie die eigentliche Bereinigung.
Häufige Einfallstore sind veraltete Plugins oder Themes, gestohlene Zugangsdaten, unsichere Administrator-Konten oder bekannte Sicherheitslücken.
Nach der Bereinigung sollten deshalb WordPress und alle Erweiterungen aktuell sein, ungenutzte Plugins entfernt und Administrator-Konten mit starken Passwörtern und möglichst Zwei-Faktor-Authentifizierung geschützt werden.
Nur die Spam-Seiten aus Google zu entfernen, löst das eigentliche Problem nicht. Entscheidend ist, den Schadcode und vor allem das Einfallstor zu finden. Sonst steht der Angreifer unter Umständen ein paar Tage später wieder vor der Tür.