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.
Spoedcheck
Ben ik gehackt? Snelle check
Tik aan wat je op je site ziet. Je krijgt een eerste indicatie en de juiste eerste stap.
Welke signalen zie je?
Indicatie
Nog niets aangevinktKies de signalen die je ziet. Een enkel sterk signaal is genoeg om voorzichtig te handelen.
Dit is een eerste indicatie, geen volledige diagnose.
Eerste stap
Zie je een of meer van deze signalen, ga er dan van uit dat je gehackt bent. De eerste stap is niet opschonen, maar: zet de site in onderhoudsmodus met een 503-status en maak een forensische back-up van de huidige staat. Verander verder nog niets. De sporen heb je later nodig om het lek te vinden. Twijfel je? Laat iemand met ervaring meekijken voordat je iets verandert.
Interactieve versie, zet JavaScript aan. Zie je dit? Zet de site in onderhoudsmodus en maak een forensische back-up.
- Onbekende contentPosts, pagina’s of links die je niet zelf hebt aangemaakt.
- Vreemde gebruikersAccounts in WordPress die jij niet kent.
- RedirectsBezoekers komen op andere sites terecht.
- Security issuesGoogle Search Console, browser of antivirus waarschuwt.
- PHP in uploadsBestanden in /wp-content/uploads/ die daar niet horen.
- Veel login POSTsKan een brute-force-poging zijn. Controleer verder.
Site nu offline of verdacht? Stuur me je URL en wat je ziet. Ik reageer binnen 4 uur op werkdagen.
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.

WordPress website gehackt herstellen: 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.



