WordPress website gehackt, wat nu: een triage-checklist voor het eerste uur

WordPress website gehackt, wat nu? In het eerste uur tel je geen plugins op; je sluit af, bewijst de schade en voorkomt dat de hack zichzelf herstelt.

· 25 juli, 2026 · 7 min lezen
In dit artikel

Een mailtje op zaterdagavond, “WordPress website gehackt, wat nu?”, en dan begint niet de opschoning, maar het eerste uur triage. De ondernemer aan de andere kant heeft net gezien dat zijn site opeens Russische teksten toont. Of dat Google een rode waarschuwing geeft. Of dat de hosting hem heeft afgesloten zonder uitleg.

In dat eerste uur is alles wat je doet bepalend voor hoeveel werk de rest gaat kosten. En tegelijk doet bijna iedereen meteen het verkeerde: opruimen, herinstalleren, plugins verwijderen. Dat is de fase ná triage, niet de eerste stap. Ik leg uit wat dan wél eerst moet.

Incident response werkplek voor een gehackte WordPress website met security dashboard telefoonalert en handmatige timeline

WordPress website gehackt, wat nu in het allereerste uur

Stop met klikken. Dat is de moeilijkste eerste stap. De verleiding is groot om in WordPress in te duiken, plugins na te kijken, instellingen aan te passen. Maar elke klik kan bewijs vernietigen of de malware activeren.

Het eerste uur kent drie fases: afsluiten, bewijzen, communiceren. In die volgorde. Pas daarna komt de cleanup, en die loopt meestal over dagen of een week, niet uren.

Afsluiten betekent: de site offline of in maintenance-modus zetten zodat bezoekers (en zoekmachines) niet meer met de besmette versie in aanraking komen. Bewijzen betekent: vastleggen wat je nu ziet, voordat je iets verandert. Communiceren betekent: hoster bellen, betrokkenen informeren als dat moet, en pas daarna besluiten wie het opschoonwerk gaat doen.

Eerst afsluiten: site offline of PHP uitschakelen

Bij actieve malware draait er PHP-code die zichzelf kan herstellen. Verwijder je een geïnfecteerd bestand, dan zet de code het terug zodra een bezoeker (of jijzelf in admin) een pagina opvraagt. Daarom: eerst afsluiten, dan pas iets aanraken.

Drie manieren, in volgorde van voorkeur:

Hosting-paneel toggle. Veel hosters hebben een “site offline” of “maintenance mode” knop. Eén klik en je site is niet meer bereikbaar voor bezoekers, ook niet voor het script zelf.

.htaccess deny from all. Voeg in de root van je site een .htaccess toe die alles blokkeert behalve jouw IP. Daarmee kun je zelf nog kijken, maar bezoekers en bots niet meer.

PHP-handler uitschakelen. Via de hosting kun je PHP soms uitzetten op de docroot. Dat is de hardste variant: niets draait nog, geen kans dat malware zichzelf onderhoudt.

Wat je níét moet doen: een back-up terugzetten als eerste actie. Daarmee verwijder je bewijs en mogelijk ook het entry-point dat de hack heeft mogelijk gemaakt. Een back-up is later een optie, niet nu.

Bewijs vastleggen vóór je iets weggooit

In mijn ervaring is dit de stap die het vaakst overgeslagen wordt, en die je later het meeste pijn doet. Voor je iets verandert: leg de huidige staat vast.

Maak screenshots van wat je ziet. De voorpagina, de admin, eventuele meldingen van Google of de hoster. Datum en tijd zichtbaar in beeld. Bewaar ze ergens veilig buiten de gehackte server.

Maak een “vies” snapshot van de site. Een FTP/SFTP-download van de hele site-folder, een database-export via phpMyAdmin of de hosting-tool. Ja, die kopie bevat de malware. Dat is precies waarom je hem maakt: forensiek heeft die nodig om te begrijpen hoe binnen is gekomen.

Vraag de hoster om server access-logs van minstens de laatste 14 dagen. Veel hosters bewaren slechts 7 of 14 dagen aan logs. Als je wacht met vragen, ben je dat venster mogelijk al kwijt. Die logs bevatten welke IP’s wat hebben opgehaald, en zijn vaak waar je het entry-point ziet: een verdachte POST naar wp-admin/admin-ajax.php, een bestand dat plots verschijnt in wp-content/uploads.

Vergelijk de file-mtimes (last-modified datums) van je site-bestanden met je laatste schone back-up. Bestanden die recent gewijzigd zijn zonder dat jij iets hebt gedaan: verdacht.

Volgorde van wachtwoord resetten in WordPress admin na een hack met administrators editors en auteurs

Wachtwoorden in de juiste volgorde resetten

Een wachtwoord resetten lijkt eenvoudig, maar de volgorde is belangrijk. Als je begint bij WordPress-admin terwijl je hosting-account nog gehackt is, draait de aanvaller hem zo weer terug.

De juiste volgorde, van hoog naar laag privilege:

  1. Hostingaccount. Hoogste niveau, alles staat hieronder. Tweefactor aanzetten als dat nog niet zo is.
  2. Database-user(s). Pas op: na het wijzigen van het databasewachtwoord moet je het ook in wp-config.php updaten, anders is je site dood.
  3. WordPress admin-accounts. Alle accounts met admin-rechten, niet alleen jouw eigen.
  4. FTP/SFTP-accounts. Zeker als je in de logs verdachte FTP-logins ziet.
  5. Mailboxen op hetzelfde domein. Aanvallers gebruiken die vaak om reset-mails op te vangen.

Vergeet niet je e-mailadres dat aan WordPress hangt. Als de aanvaller dat heeft gewijzigd, krijg je geen reset-link binnen. In dat geval reset je het wachtwoord direct in de database via phpMyAdmin met wp_set_password.

Klanten en bezoekers informeren

Niet elke hack is een datalek. Een gedefacede homepage met een spam-banner: vervelend, geen meldplicht. Een hack waarbij klantgegevens, wachtwoorden of betaalgegevens mogelijk zijn ingezien: wel.

Bij een vermoedelijk datalek geldt sinds de AVG een 72-uurs meldplicht bij de Autoriteit Persoonsgegevens. Die 72 uur begint zodra je het lek redelijkerwijs had moeten weten, niet vanaf het moment dat het is opgelost. Bij twijfel: melden, of laat dat door een jurist of de AP zelf beoordelen.

Communicatie naar klanten: kort en feitelijk. Wat is er gebeurd (algemeen, geen technische details die de aanvaller helpen), wat heb je gedaan, wat moeten zij doen (wachtwoord wijzigen bijvoorbeeld), waar kunnen ze vragen stellen. Geen valse geruststelling (“alles is veilig”) en geen paniek-toon. Eén mail, helder, één keer.

Wat je níét communiceert: welke kwetsbaarheid is misbruikt, welke plugin de oorzaak was, welke server-software draait. Die informatie is brandstof voor herhaling.

Wanneer je hulp belt en wat je dan aanlevert

Veel mensen wachten te lang met hulp inroepen. Pas na een halve dag zelf modderen, als de paniek is omgeslagen in uitputting. Sneller bellen scheelt uren werk.

Als je mij belt of mailt over een gehackte site, dan helpt het als je dit direct meestuurt:

  • de exacte URL en wat je ziet (screenshots)
  • naam van de hoster en het type pakket (shared, VPS, managed)
  • of je nog admin-toegang hebt
  • of je nog FTP/SFTP-toegang hebt
  • wanneer je de hack ontdekte en of er iets is gewijzigd sinds dat moment
  • of je een back-up hebt en hoe recent die is
  • of er klantgegevens of betaalgegevens op de site staan

Met die info kan ik binnen 15 minuten zeggen wat het waarschijnlijk wordt. Acute hack-cleanup valt onder mijn spoedtarief van 95 euro per uur, voor avond en weekend wordt dat 105 euro per uur. Hacks gebeuren zelden op een dinsdagochtend, dus dat tweede tarief is geen uitzondering. Een gemiddelde cleanup zit tussen drie en acht uur, afhankelijk van hoeveel forensiek nodig is en hoe diep de besmetting zit.

Voor lokale ondernemers in Zeeuws-Vlaanderen ben ik een direct aanspreekpunt in Terneuzen. Het kan helpen om te weten dat aan de andere kant van de mail iemand zit die dit eerder heeft gedaan en niet bij elke melding paniek voelt.

Server access-log forensiek in terminal met verdachte POST-verzoeken naar wp-login.php na een WordPress hack

Triage versus opschoning: waarom dat twee aparte fases zijn

Triage duurt ongeveer een uur. Opschoning duurt dagen.

In de triage-fase doe je niets onomkeerbaars. Je sluit af, je legt vast, je beveiligt accounts, je informeert wie geïnformeerd moet worden. Aan het eind van dat eerste uur weet je: hoe groot het probleem is, wie er verder bij moet, en wat de volgende 48 uur gaat gebeuren.

In de opschoning-fase wordt het werk gedaan: malware verwijderen, root-cause analyseren, een schone versie terugzetten of de bestaande versie opschonen, hardening om herhaling te voorkomen. Een schone restore zónder root-cause-analyse leidt in mijn ervaring in 60 tot 80 procent van de gevallen tot herinfectie binnen 30 dagen. Het entry-point dichtmaken is geen luxe; zonder dat sta je over een maand op dezelfde plek.

Het opschoning- en verhuizingsstappenplan volgt zodra de triage klaar is. Voor nu: focus op het eerste uur, niet op de daarna.

Het principe geldt overigens niet alleen voor WordPress. Voor Joomla, Drupal en Laravel-sites is de triage-volgorde identiek. De stack-specifieke verschillen zitten in de paden (Joomla heeft eigen .htaccess-locaties, Drupal heeft update.php als entrypoint, Laravel heeft de .env-file als kritieke plek), maar het principe blijft: eerst afsluiten, dan bewijzen, dan communiceren, dan pas opschonen.

Serhii Lypii
Gratis meedenken

Direct contact als je site nu plat ligt

Stuur me de URL, je hoster, wanneer je het zag en wat je tot nu toe hebt aangeraakt. Ik kijk er met spoed naar en geef binnen het uur terug wat de eerste stappen zijn en wat het ongeveer kost.

Vraag spoedhulp aan
Vond je dit nuttig? Deel het:
FAQ

Veelgestelde vragen

Mijn site lijkt nu te werken, is de hack dan voorbij?
Vrijwel zeker niet. Veel malware verbergt zich en activeert pas onder specifieke voorwaarden. Sommige varianten tonen zich alleen aan Googlebot, andere alleen bij bezoekers van bepaalde landen of via specifieke referrers. "Werkt weer voor mij" is geen schoon-verklaring. Alleen een grondige scan plus een controle van recente bestandswijzigingen geeft zekerheid.
Moet ik mijn hostingprovider bellen?
Ja, maar pas nadat je hebt afgesloten en bewijs hebt vastgelegd. Hosting kan je access-logs leveren en in sommige gevallen een schoon image terugzetten. Hou de communicatie kort en feitelijk. Geef niet ongevraagd technische details prijs; hosting-support is niet altijd security-getraind.
Kan ik gewoon een back-up terugzetten en doorgaan?
Alleen als je zeker weet dat de back-up van vóór de infectie is én dat het entry-point gedicht is. Anders herhaalt de hack zich binnen weken. Een back-up zonder root-cause-analyse is uitstellen, geen oplossen.
Wat als ik geen recente back-up heb?
Dan wordt het duurder en langzamer, maar niet onmogelijk. Maak nu eerst een "vies" snapshot van de huidige situatie. Die heb je nodig voor forensiek én als fallback. Daarna kun je via een opschoning bestand voor bestand werken, of vanuit een schone WordPress-core opnieuw opbouwen met behoud van content en uploads.
Moet ik mijn klanten informeren?
Bij gewone defacement (banner, andere voorpagina, spam-links) meestal niet. Bij een mogelijk datalek met persoons- of betaalgegevens wettelijk verplicht binnen 72 uur, en je communiceert dan ook naar de betrokkenen zelf. Bij twijfel: melden bij de Autoriteit Persoonsgegevens of een privacy-jurist raadplegen. Niet zelf "het komt goed" beslissen.
Serhii Lypii
Over de auteur

Serhii Lypii

Freelance webmaster · Terneuzen

Sinds 2012 werk ik met websites en leverde ik ruim 210 projecten op. Ik help mkb-ondernemers met onderhoud, snelheid, beveiliging en praktische automatisering. Nuchter, zonder hype.

Ik schreef dit artikel op en werkte het voor het laatst bij op .

Meer over Lypii
Even sparren over je site?

Loop je ergens tegenaan of twijfel je over je site? Ik denk graag mee — kies hieronder hoe je contact opneemt.

Reactie binnen 4 uur op werkdagen
Navigatie
Home Over mij Kennisbank
Contact
+31 6 39 56 93 03 serhii@lypii.nl WhatsApp
Stuur een bericht