WordPress gehackt? Zo herken en herstel je een gehackte website

Een WordPress-website die ineens doorstuurt naar vreemde websites, onbekende gebruikers bevat of waarschuwingen van Google laat zien: de kans is groot dat er iets mis is.
Een gehackte WordPress-website is niet alleen vervelend. Een aanvaller kan spam plaatsen, bezoekers doorsturen, malware verspreiden, e-mails versturen of toegang krijgen tot gegevens die via de website worden verwerkt.
Het belangrijkste is daarom om snel te handelen.
Maar alleen een verdacht bestand verwijderen is meestal niet voldoende. Je wilt eerst weten hoe de aanvaller binnen is gekomen en controleren of er geen andere toegang tot de website is achtergebleven.
In deze blog leggen we uit hoe je een WordPress-hack kunt herkennen, hoe je een gehackte website herstelt en vooral hoe je voorkomt dat hetzelfde opnieuw gebeurt.
Hoe weet je of je WordPress-website gehackt is?
Niet iedere hack is direct zichtbaar.
Sommige aanvallers hebben er juist belang bij om zo lang mogelijk onopgemerkt toegang tot een website te houden.
Toch zijn er verschillende signalen die kunnen wijzen op een gehackte WordPress-installatie:
- je website stuurt bezoekers door naar onbekende websites;
- er verschijnen vreemde pagina’s of berichten;
- Google toont spamresultaten onder jouw domeinnaam;
- er staan onbekende beheerders in WordPress;
- je website verstuurt grote hoeveelheden ongewenste e-mail;
- bestanden zijn zonder duidelijke reden gewijzigd;
- er verschijnen onbekende PHP-bestanden;
- de website of server is ineens veel trager;
- hostingpartijen melden malware;
- browsers of zoekmachines waarschuwen voor een onveilige website;
- plugins worden zonder reden gedeactiveerd;
- wachtwoorden werken plotseling niet meer.
Een van deze symptomen betekent niet automatisch dat de website gehackt is, maar het is wel reden om verder onderzoek te doen.
Waarom worden WordPress-websites gehackt?
WordPress zelf is niet per definitie onveilig.
Het probleem is vooral dat een WordPress-website meestal uit veel verschillende onderdelen bestaat:
WordPress Core + thema + plugins + maatwerkcode + hostingomgeving
Ieder onderdeel kan een potentiële ingang vormen wanneer het niet goed wordt onderhouden.
Verouderde plugins en thema’s
Een van de bekendste risico’s zijn plugins of thema’s waarin een beveiligingslek is ontdekt.
Wanneer een ontwikkelaar een beveiligingsupdate uitbrengt, betekent dit tegelijkertijd dat duidelijk kan worden welk lek in een oudere versie aanwezig was.
Geautomatiseerde bots kunnen vervolgens op grote schaal zoeken naar websites waarop die kwetsbare versie nog actief is.
Daarom zijn updates een belangrijk onderdeel van goed WordPress websiteonderhoud.
Zwakke of hergebruikte wachtwoorden
admin123 is vanzelfsprekend geen geweldig WordPress-wachtwoord.
Maar ook complexere wachtwoorden kunnen een probleem vormen wanneer hetzelfde wachtwoord bij meerdere diensten wordt gebruikt.
Komt één van die diensten bij een datalek terecht, dan kunnen aanvallers dezelfde combinatie automatisch bij andere websites proberen.
Gebruik daarom unieke wachtwoorden en waar mogelijk two-factor authentication (2FA).
Nulled plugins en thema’s
Een betaalde WordPress-plugin gratis downloaden van een willekeurige website klinkt aantrekkelijk.
Totdat blijkt dat er aan de plugin een stukje PHP-code is toegevoegd waarmee iemand op afstand toegang tot je website kan krijgen.
Zogenaamde nulled plugins en thema’s vormen daarom een onnodig groot beveiligingsrisico.
Onveilig maatwerk
Ook eigen PHP-code kan kwetsbaarheden bevatten.
Denk bijvoorbeeld aan onvoldoende validatie van gebruikersinvoer, verkeerde rechtencontroles of onveilige databasequeries.
Bij professioneel WordPress webdevelopment hoort beveiliging daarom onderdeel van de ontwikkeling te zijn en niet iets dat pas achteraf wordt toegevoegd.
Mijn WordPress-website is gehackt. Wat moet ik nu doen?
Wanneer je vermoedt dat je website gehackt is, is het verleidelijk om direct bestanden te verwijderen.
Dat is niet altijd verstandig.
Je kunt daarmee namelijk sporen verwijderen die nodig zijn om te achterhalen hoe de aanvaller toegang heeft gekregen.
Een betere aanpak is om systematisch te werk te gaan.
1. Maak eerst een volledige kopie
Maak voordat je grote wijzigingen uitvoert een kopie van:
- alle websitebestanden;
- de WordPress-database;
- relevante server- en accesslogs.
Dat klinkt misschien vreemd wanneer de backup waarschijnlijk ook malware bevat.
Het doel van deze kopie is echter niet noodzakelijk om hem later terug te zetten. Je bewaart hiermee de huidige situatie zodat deze onderzocht kan worden.
Heb je een bekende schone backup van vóór de hack, bewaar die uiteraard ook.
2. Controleer de WordPress-gebruikers
Ga naar:
Gebruikers → Alle gebruikers
Controleer vooral accounts met de rol Beheerder.
Zie je een account dat je niet kent?
Dan kan dit een aanwijzing zijn dat iemand toegang heeft gekregen tot WordPress.
Controleer niet alleen de gebruikers die je in het dashboard ziet. Bij een grondige controle is het verstandig om ook rechtstreeks naar de gebruikers in de database te kijken.
3. Verander wachtwoorden
Wanneer een website daadwerkelijk gehackt is, moeten relevante inloggegevens worden vervangen.
Denk aan:
- WordPress-accounts;
- hostingaccount;
- FTP/SFTP;
- SSH;
- databasegebruikers waar nodig;
- e-mailaccounts wanneer deze mogelijk betrokken zijn.
Gebruik daarbij nieuwe, unieke wachtwoorden.
Verander daarnaast de WordPress security keys en salts in wp-config.php. Hierdoor worden bestaande WordPress-sessies ongeldig gemaakt en moeten ingelogde gebruikers opnieuw authenticeren.
4. Controleer WordPress Core
WordPress Core bestaat grotendeels uit bestanden waarvan bekend is hoe ze eruit horen te zien.
Wanneer je WP-CLI gebruikt, kun je bijvoorbeeld de checksums controleren:
wp core verify-checksumsHiermee kun je afwijkingen in WordPress Core ontdekken.
Let op: een succesvolle checksumcontrole betekent niet automatisch dat de hele website schoon is.
Malware kan namelijk ook in plugins, thema’s, uploads, mu-plugins of andere directories staan.
5. Controleer plugins en thema’s
Controleer vervolgens alle geïnstalleerde plugins en thema’s.
Vraag jezelf bij iedere plugin af:
Gebruik ik deze daadwerkelijk?
Een plugin die gedeactiveerd is maar nog steeds op de server staat, kan nog steeds kwetsbare PHP-bestanden bevatten.
Verwijder daarom plugins en thema’s die niet meer nodig zijn.
Van actieve plugins en thema’s kun je bij voorkeur een schone versie vanaf de officiële bron opnieuw installeren.
6. Kijk naar recent gewijzigde bestanden
De wijzigingsdatum van bestanden kan nuttige aanwijzingen geven.
Op een Linux-server kun je bijvoorbeeld zoeken naar recent gewijzigde PHP-bestanden:
find . -type f -name "*.php" -mtime -7Dit toont PHP-bestanden die gedurende de afgelopen zeven dagen zijn gewijzigd.
Dat bewijst niet dat deze bestanden kwaadaardig zijn. Een update van een plugin kan immers precies hetzelfde veroorzaken.
Maar wanneer er ineens een bestand als:
wp-content/uploads/2026/09/cache-image.phpverschijnt, is dat reden voor nader onderzoek.
Normaal gesproken hoeft een afbeeldingendirectory namelijk geen willekeurige uitvoerbare PHP-scripts te bevatten.
7. Controleer op verdachte code
WordPress-malware wordt regelmatig verborgen of obfuscated.
Je kunt bijvoorbeeld constructies tegenkomen zoals:
eval(base64_decode($data));of combinaties van functies zoals:
eval
base64_decode
gzinflate
str_rot13
shell_execMaar ook hier is voorzichtigheid belangrijk.
Het voorkomen van base64_decode() betekent niet automatisch dat een bestand malware bevat. Legitieme plugins kunnen dezelfde PHP-functies gebruiken.
Je moet daarom altijd naar de context van de code kijken.
Waarom alleen malware verwijderen vaak niet genoeg is
Dit is waarschijnlijk het belangrijkste onderdeel van het herstelproces.
Stel dat je één geïnfecteerd bestand vindt en verwijdert.
De website lijkt daarna weer normaal te functioneren.
Probleem opgelost?
Niet noodzakelijk.
Een aanvaller kan meerdere manieren hebben achtergelaten om opnieuw toegang te krijgen.
Zo’n verborgen toegang wordt vaak een backdoor genoemd.
Een backdoor kan bijvoorbeeld verstopt zitten in:
wp-content/uploads/
wp-content/plugins/
wp-content/themes/
wp-content/mu-plugins/Maar ook in bestaande legitieme bestanden kan kwaadaardige code zijn toegevoegd.
Verwijder je alleen de zichtbare malware maar blijft de backdoor aanwezig, dan kan de website korte tijd later opnieuw geïnfecteerd zijn.
Zoek daarom ook naar de oorspronkelijke ingang
Naast het verwijderen van malware moet je proberen vast te stellen hoe de website gehackt kon worden.
Bijvoorbeeld:
Plugin X bevatte een bekende kwetsbaarheid → aanvaller kreeg toegang → backdoor geplaatst → spamcode toegevoegd.
Wanneer je alleen de spamcode verwijdert maar de kwetsbare plugin laat staan, blijft de oorspronkelijke ingang bestaan.
Een goede cleanup bestaat daarom uit twee delen:
1. De infectie verwijderen
2. De oorzaak van de infectie oplossen
Kan een gehackte WordPress-website zonder backup worden hersteld?
Vaak wel.
Een schone backup maakt het proces makkelijker, maar het ontbreken ervan betekent niet automatisch dat een website verloren is.
WordPress Core kan opnieuw worden geïnstalleerd en plugins en thema’s kunnen vanuit betrouwbare bronnen opnieuw worden geplaatst.
Het maatwerk en de database vragen meer aandacht.
Vooral bij WooCommerce-webshops wil je niet zomaar een oude database terugzetten. Daarmee kun je namelijk recente:
- bestellingen;
- klanten;
- voorraadwijzigingen;
- accounts;
- instellingen
kwijtraken.
Bij een webshop is het daarom vaak verstandiger om de huidige database en website zorgvuldig op te schonen dan blind een oude backup terug te zetten.
WordPress stuurt bezoekers door naar vreemde websites
Een veelvoorkomend symptoom van een hack is een onverwachte redirect.
Je opent bijvoorbeeld:
jouwdomein.nl
en wordt doorgestuurd naar een compleet andere website.
Soms gebeurt dit alleen bij:
- mobiele bezoekers;
- bezoekers vanuit Google;
- bezoekers die niet zijn ingelogd;
- één specifiek land;
- de eerste pageview.
Dat maakt dergelijke malware lastig te vinden.
Als beheerder ben je bijvoorbeeld ingelogd in WordPress en zie je niets vreemds, terwijl nieuwe bezoekers wel worden doorgestuurd.
Kwaadaardige redirects kunnen onder andere worden veroorzaakt door wijzigingen in:
.htaccess;wp-config.php;- themafiles;
- plugins;
- JavaScript;
- databasevelden.
Daarom is het belangrijk om verder te kijken dan alleen de homepage.
WordPress gehackt via de database
Malware hoeft niet altijd als PHP-bestand op de server te staan.
Kwaadaardige JavaScript-code kan bijvoorbeeld in de WordPress-database worden opgeslagen.
Denk aan waarden in:
wp_options
wp_posts
wp_postmetaEen aanvaller kan bijvoorbeeld JavaScript toevoegen aan een widget, bericht, template of optie.
Je kunt vervolgens alle bestanden vervangen en tóch blijft de redirect bestaan.
Dat komt doordat de kwaadaardige code vanuit de database opnieuw wordt geladen.
Bij het onderzoeken van een hack moet daarom zowel het bestandssysteem als de database worden meegenomen.
WooCommerce gehackt: extra opletten
Bij een normale informatieve website is een hack al vervelend.
Bij WooCommerce zijn de mogelijke gevolgen groter.
Een webshop verwerkt immers informatie over klanten en bestellingen en maakt onderdeel uit van het betaalproces.
Een aanvaller kan bijvoorbeeld proberen kwaadaardige JavaScript-code aan de checkout toe te voegen.
Daarom moet bij een gehackte WooCommerce-webshop extra aandacht worden besteed aan:
- checkoutpagina’s;
- betaalplugins;
- beheerdersaccounts;
- API-keys;
- webhooks;
- databasewijzigingen;
- JavaScript dat op de checkout wordt geladen;
- recent geïnstalleerde plugins.
Wanneer persoonsgegevens mogelijk toegankelijk zijn geweest, moet daarnaast worden onderzocht of sprake kan zijn van een datalek en welke verplichtingen daarbij gelden.
Is een securityplugin voldoende?
Plugins zoals Wordfence en andere securityoplossingen kunnen absoluut nuttig zijn.
Ze kunnen bijvoorbeeld:
- bestanden scannen;
- verdachte verzoeken blokkeren;
- brute-force-aanvallen beperken;
- wijzigingen detecteren;
- bekende malware herkennen.
Maar een securityplugin is geen magisch schild.
Wanneer je een kwetsbare plugin laat draaien, zwakke wachtwoorden gebruikt en WordPress maandenlang niet bijwerkt, kan een beveiligingsplugin dat niet altijd compenseren.
Beveiliging bestaat uit meerdere lagen.
Dat begint al bij een goed ingerichte hostingomgeving.
Hoe voorkom je dat WordPress opnieuw wordt gehackt?
Nadat een website is opgeschoond, is het verstandig om de beveiliging opnieuw te bekijken.
Een aantal maatregelen maakt daarbij een groot verschil:
- houd WordPress Core actueel;
- update plugins en thema’s;
- verwijder ongebruikte software;
- gebruik unieke sterke wachtwoorden;
- schakel 2FA in voor beheerders;
- beperk het aantal administratoraccounts;
- gebruik alleen plugins van betrouwbare bronnen;
- maak automatische externe backups;
- controleer regelmatig op onverwachte wijzigingen;
- beveilig de server en PHP-omgeving;
- beperk schrijfrechten waar mogelijk;
- monitor verdachte loginpogingen en verkeer.
En misschien wel het belangrijkste:
wacht niet met onderhoud totdat er iets misgaat.
We schreven eerder al over waarom goed websiteonderhoud belangrijk is. Preventief onderhoud kost vrijwel altijd minder tijd dan het achteraf herstellen van een zwaar geïnfecteerde website.
Wat heeft hosting met WordPress-beveiliging te maken?
Beveiliging stopt niet bij WordPress.
De server waarop de website draait speelt eveneens een belangrijke rol.
Denk bijvoorbeeld aan:
- actuele PHP-versies;
- goede bestandsrechten;
- isolatie tussen hostingaccounts;
- firewallregels;
- malwaredetectie;
- rate limiting;
- backups;
- logging;
- beveiliging van SSH en andere services.
Goede hosting voorkomt niet iedere mogelijke WordPress-hack, maar kan wel verschillende aanvalsmogelijkheden beperken en maakt het bovendien makkelijker om incidenten te onderzoeken.
Een goede technische basis heeft daarnaast voordelen voor de snelheid van de website. Daarover lees je meer in onze blog over server-side optimalisatie voor WordPress.
Praktijkvoorbeeld: de malware blijft terugkomen
Een WordPress-website begint bezoekers door te sturen naar een spamwebsite.
Bij onderzoek wordt een vreemd PHP-bestand in een pluginmap gevonden.
Het bestand wordt verwijderd en de website werkt weer.
Twee dagen later gebeurt precies hetzelfde.
Waarom?
Verder onderzoek wijst uit dat er óók een klein PHP-bestand in de uploads-directory staat. Dit bestand fungeert als backdoor en kan opnieuw bestanden naar de website schrijven.
Daarnaast blijkt een oude plugin met een beveiligingslek nog aanwezig te zijn.
De daadwerkelijke oplossing bestaat daarom uit meer dan het verwijderen van één bestand:
kwetsbare plugin verwijderen → backdoor verwijderen → overige bestanden controleren → database controleren → accounts controleren → wachtwoorden en salts wijzigen → software bijwerken → logs onderzoeken → monitoring inschakelen.
Pas daarna is de oorspronkelijke oorzaak aangepakt.
Dit is precies waarom een malwaremelding verwijderen iets anders is dan een website daadwerkelijk opschonen en beveiligen.
Hoe snel moet je reageren op een gehackte website?
Zo snel mogelijk.
Hoe langer een aanvaller toegang houdt, hoe moeilijker het kan worden om precies vast te stellen wat er is veranderd.
Bovendien kan een geïnfecteerde website worden gebruikt voor spam, phishing, redirects of verdere aanvallen.
Google en browsers kunnen een schadelijke website uiteindelijk ook van een waarschuwing voorzien, wat direct gevolgen heeft voor bezoekers en vindbaarheid.
Zie je dus vreemde wijzigingen of vermoed je dat je WordPress-website gehackt is? Stel onderzoek dan niet onnodig uit.
Veelgestelde vragen over een gehackte WordPress-website
Kan WordPress zelf gehackt worden?
Moet ik WordPress volledig opnieuw installeren?
Kan ik gewoon een backup terugzetten?
Is mijn website veilig nadat de malware verwijderd is?
Voorkomt een beveiligingsplugin alle hacks?
Kan DSGWeb een gehackte WordPress-website onderzoeken?
Conclusie
Een gehackte WordPress-website herstellen betekent meer dan een malwarescanner uitvoeren en een paar verdachte bestanden verwijderen.
Je wilt antwoord krijgen op drie vragen:
Wat is er gewijzigd?
Hoe is de aanvaller binnengekomen?
Hoe voorkomen we dat dit opnieuw gebeurt?
Juist die laatste twee vragen worden bij een snelle cleanup gemakkelijk vergeten.
Door WordPress, plugins en thema’s actueel te houden, sterke authenticatie te gebruiken, backups te maken en de onderliggende hostingomgeving goed te beveiligen, kun je het risico aanzienlijk verkleinen.
En wanneer een website toch gehackt wordt, is een systematische aanpak belangrijker dan zo snel mogelijk willekeurige verdachte bestanden verwijderen.
Heb je problemen met je WordPress-website of wil je de technische beveiliging en het onderhoud beter regelen? Bekijk onze diensten voor WordPress, webhosting en webdevelopment of neem contact op met DSGWeb.