WordPress website gehackt herstellen: stappenplan voor snelle actie
WordPress website gehackt herstellen: praktisch stappenplan om weer schoon online te komen en herinfectie te voorkomen.
In dit artikel
Open je site nu in een incognito-venster van je browser. Zie je vreemde tekst, gokwebsites die zomaar verschijnen, of medische advertenties die er niet horen? Krijgt Google een waarschuwing dat je site “misleidend” of “gehackt” is? Dan ben je waarschijnlijk gehackt. In negen van de tien gevallen gaat het om geautomatiseerde aanvallen die elke dag duizenden WordPress-sites afgaan op verouderde plugins, zwakke wachtwoorden en bekende kwetsbaarheden.
Geen wraakactie, geen persoonlijke vijand. Een botnet dat één lek vindt en je site daarna inzet voor spam, phishing-omleidingen of mining. Frustrerend, maar wel herstelbaar.
Dit artikel beschrijft hoe je een WordPress website gehackt herstellen aanpakt. Zes stappen, op basis van de hack-cases die ik in de afgelopen jaren heb opgelost. Tijd is hier belangrijk: hoe langer je site gecompromitteerd is, hoe groter het risico op een Google-sanctie of hosting-suspension.

Hoe weet je zeker dat je site gehackt is
Niet elke vreemde melding betekent een hack. Eerst diagnose, dan actie.
Duidelijke signalen:
- Onbekende posts of pagina’s in je WordPress-admin
- Vreemde gebruikersaccounts die niet door jou zijn aangemaakt
- Bezoekers melden dat ze worden doorgestuurd naar andere sites
- Google Search Console stuurt een waarschuwing over “Security issues”
- Antivirus van bezoekers blokkeert je domein
- Verdachte bestanden in
/wp-content/uploads/met.php-extensie (uploads horen alleen afbeeldingen of documenten te zijn)
Gratis check via een externe scanner. Voer je domein in op Sucuri SiteCheck. De tool scant van buiten de site naar bekende malware-patronen en blacklist-status. Geen volledige diagnose, wel een eerste indicator binnen een minuut.
Loggegevens controleren. Bij je hosting kun je access logs en error logs opvragen. Veel POST-verzoeken naar wp-login.php vanuit verschillende IP-adressen, of GET-verzoeken naar bestanden zoals eval-base64-decoded.php, zijn rode vlaggen.
Klopt het beeld? Ga naar stap twee. Twijfel je? Stop dan en vraag iemand met ervaring om mee te kijken voordat je iets verandert.
Eerste actie: isoleren en forensische backup
Voor je iets opschoont, moet je een kopie van de gehackte staat bewaren. Dat klinkt contra-intuïtief, maar de hack-sporen zijn waardevol om te begrijpen waar het lek zit.
Site in onderhoudsmodus. Plug-ins zoals WP Maintenance Mode of een eenvoudige .maintenance-file in de root maken de site tijdelijk onzichtbaar voor bezoekers, terwijl de admin gewoon werkt. Bezoekers zien dan een vrijblijvend “tijdelijk niet beschikbaar”-bericht. Bij Search Console geeft dit een 503-status terug, wat Google interpreteert als “kortdurend, kom later terug”. Beter dan een gehackte site die door blijft serveren.
Volledige forensische backup. Hier wijkt het af van een gewone backup. Je wil:
- Een bestandsarchief via FTP of SSH, met alle bestanden zoals ze nu zijn. Niet via een WordPress-plugin (die slaat sommige malicious files niet correct op).
- Een database-dump via phpMyAdmin of de command line.
- Een snapshot van de server-instellingen waar mogelijk.
Bewaar dit op een externe schijf, gescheiden van je werkomgeving. De forensische backup gebruik je later om te begrijpen wat er is gebeurd. De volgende stap, opschonen, doe je op een aparte werkkopie.

Bestanden en database opschonen
Nu de opschoning zelf. Dit is de stap die het meeste werk vraagt.
WordPress-core opnieuw installeren. Download de schone versie vanaf wordpress.org. Vervang alle core-bestanden behalve wp-content en wp-config.php. Wat hackers vaak doen: een legitiem-lijkend bestand in /wp-includes/ of /wp-admin/ toevoegen of aanpassen. Een schone re-installatie verwijdert dit in één keer.
Plugins en thema’s vervangen. Niet updaten. Vervangen. Verwijder de plug-in folder, download een schone versie van wordpress.org of de oorspronkelijke aanbieder, plaats die terug. Voor commerciële plugins meestal opnieuw downloaden via je account. Active onbruikbare of verlaten plugins eerst helemaal verwijderen.
wp-content/uploads doorzoeken. Daar horen alleen mediabestanden te staan (JPG, PNG, WebP, PDF). Zoek met SSH op verdachte extensies:
find wp-content/uploads -name "*.php"
find wp-content/uploads -name "*.html"
Vrijwel elk gevonden PHP-bestand in uploads is malware. Verwijder ze na verificatie.
Database opschonen. Connecteer met phpMyAdmin en zoek in wp_options naar verdachte rijen met namen als class_generic_call of base64-strings. In wp_users check je op accounts die niet van jou zijn. In wp_posts zoek je naar drafts of pages die je niet kent.
Een goede malware-scanner versnelt dit aanzienlijk. Mijn voorkeur: Wordfence voor de gratis scan in de admin, of MalCare als externe service. Beide tonen welke bestanden afwijken van de standaardversies.

Het lek vinden en sluiten
Opschonen zonder het lek te dichten is dweilen met de kraan open. Binnen dagen ben je opnieuw gehackt.
De waarschijnlijke binnenkomstpunten:
- Een verouderde plugin met bekend lek (verreweg meest voorkomend)
- Zwakke admin-wachtwoorden gekraakt via brute-force
- Gestolen inloggegevens via een datalek elders
- Een verouderde WordPress-core of PHP-versie
- Een onbeveiligde XML-RPC-interface
Hoe vinden: kijk in de logs naar het tijdstip van de eerste malicious activiteit. Welke plugin werd op dat moment aangeroepen? Welke versie was actief? Vergelijk met de vulnerability-database via WPScan. Daar staat per plugin welke versies welke lekken hadden.
Direct sluiten:
- Alle wachtwoorden van WordPress-, database-, hosting- en FTP-accounts wijzigen
- Twee-factor authenticatie aanzetten via Wordfence of WP 2FA
- Salt-keys regenereren in
wp-config.php(forceert iedereen opnieuw inloggen) - Plugins die het lek bevatten verwijderen of vervangen door alternatieven
- PHP-versie controleren bij je hosting, minimaal versie 8.1 in 2026
Vraag de logs op bij je hosting voor de twee weken voor en na het incident. Soms zie je daar het binnenkomstmoment, soms blijft het giswerk. Beide is acceptabel zolang je alle bekende mogelijkheden hebt dichtgezet.
Google opnieuw indexeren en vertrouwen terugwinnen
Een schone site is mooi, maar Google weet dat nog niet. Je site staat mogelijk in de blacklist en dat moet je actief laten opheffen.
Search Console controleren. In Google Search Console kijk je onder “Beveiligingsproblemen”. Staan er issues? Documenteer wat er stond, schoon de site, en gebruik dan de knop “Beoordeling aanvragen”. Beschrijf in het tekstvak welke acties je hebt genomen. Google reageert meestal binnen drie tot zeven dagen. Een review vraagt om concrete actie-beschrijvingen, niet om beloften.
Sitemap opnieuw indienen. Via Search Console upload je de sitemap nogmaals. Hiermee weet Google dat de site nieuwe inhoud bevat (de schone versie).
Browser-blacklists controleren. Naast Google werken Chrome, Firefox en Safari met aparte safe-browsing lijsten. Check je domein op:
Als je sites op deze lijsten staan, vraag dan via elke partij een review aan. Voor de meeste blacklists is dit een eenvoudig formulier.
Bezoekers informeren. Een korte mededeling op je site of via je social media dat er een incident is geweest en wat je hebt gedaan om het op te lossen, herstelt vertrouwen sneller dan stilte. Geen technische details, wel duidelijkheid dat klantgegevens al dan niet betrokken waren. Bij datalek-vermoeden ook melding doen bij de Autoriteit Persoonsgegevens binnen 72 uur.
Wanneer je beter een webmaster inschakelt
Niet elke hack is doe-het-zelf-werk. Een paar signalen dat externe hulp goedkoper en sneller is:
- Je weet niet zeker waar het lek zit na een uur zoeken
- De site heeft custom code waarvan je de werking niet helemaal kent
- Het is een webshop met klantgegevens en de impact van fouten is groot
- Je hebt eerdere herstelpogingen gedaan zonder succes
- De hack komt steeds terug ondanks opschoning
- Tijd is een probleem (campagne, seizoen, deadline)
Een veelvoorkomend patroon: een eigenaar gooit zelf een paar verdachte bestanden weg, en drie dagen later is de site opnieuw gehackt via een backdoor in een ongebruikte plugin die over het hoofd is gezien. Een incomplete eerste opschoning betekent vrijwel altijd herinfectie, en daarmee meer uren dan nodig.
Standaard hack-herstel kost bij mij vier tot acht uur, afhankelijk van de complexiteit. Bij urgente cases reageer ik binnen vier uur op werkdagen. Heb je een vraag over dit onderwerp? Stuur een bericht, ik reageer binnen 4 uur op werkdagen. Meer praktische uitleg over beveiliging staat in de categorie website beveiliging, en voor doorlopend onderhoud kun je terecht op de pagina diensten.
Vragen die ik op een hack-avond vaak krijg
Hoe lang ben ik offline tijdens het herstel?
Bij een goed verlopend traject ongeveer een tot drie uur. De site staat dan in onderhoudsmodus terwijl ik opschoon. Bij complexe hacks, of als je geen recente schone backup hebt, kan het oplopen tot een hele werkdag. Voor de meeste bezoekers is "tijdelijk niet beschikbaar" acceptabel, voor webshops in piekperiode minder. Plan herstel daarom liever niet in op zaterdag voor een drukke maandag.
Wat als ik geen schone backup heb?
Dan zijn er nog opties. Veel hostings bewaren zelf back-ups voor 7 tot 30 dagen, ook al deed je dat zelf niet. Vraag je hostingpartij of er een snapshot van voor de hack beschikbaar is. Geen backup beschikbaar? Dan bouwen we op de gecompromitteerde versie verder en schonen we manueel op. Duurt langer, maar werkt vrijwel altijd. Eind van het traject zet ik altijd direct een goede backup-routine op.
Komt mijn ranking terug na de opschoning?
In de meeste gevallen ja, binnen twee tot vier weken. Belangrijk is dat je de Search Console-review actief aanvraagt en de blacklist-status laat opheffen. Niets doen kan permanente ranking-schade geven. Wel kan het zijn dat Google in de eerste week na opschoning extra streng kijkt voordat hij je site weer normaal beoordeelt. Dat is tijdelijk.
Hoe weet ik zeker dat het lek dicht is?
Volledige zekerheid bestaat niet, maar je kunt het risico tot vrijwel nul terugbrengen. Drie controles na opschoning: Sucuri SiteCheck of MalCare scan herhalen na 48 uur, logs controleren op terugkerende verdachte verzoeken, en monitoring inschakelen die bestandswijzigingen detecteert. Komt er twee weken niets ongewoons binnen, dan is het lek vrijwel zeker gesloten.
Wat kost het bij een professional?
Voor standaard WordPress hack-herstel reken ik op vier tot acht uur werk. In cases met complexe codebase of webshop met klantdata loopt het op tot tien tot vijftien uur. Herstel achteraf kost al snel meer dan onderhoud vooraf had gekost, daarom raad ik aan om na een incident door te gaan met een maandelijks abonnement. Dat voorkomt vrijwel altijd een tweede hack.