Een vreemde beheerder in je dashboard. Spamlinks op pagina’s die gisteren nog goed waren. Of een webshop die klanten doorstuurt naar een onbekende website. Dan wil je geen technisch verhaal, maar snel weten wat er moet gebeuren. Dit voorbeeld van herstel van een gehackte WordPress-site laat zien hoe je controle terugpakt, zonder haastige keuzes die het probleem groter maken.
Een hack is zelden alleen een technisch incident. Je loopt omzet mis, je reputatie krijgt een tik en Google kan je website als onveilig markeren. Zeker als je leads of bestellingen uit je site haalt, telt ieder uur. De juiste aanpak is daarom: eerst schade beperken, daarna grondig herstellen en vervolgens voorkomen dat dezelfde ingang open blijft staan.
Voorbeeld herstel gehackte WordPress: de situatie
Stel: een lokale ondernemer gebruikt WordPress voor een website met contactformulieren, landingspagina’s en een kleine webshop. Op maandagochtend meldt een klant dat hij na het klikken op een productpagina op een dubieuze externe site terechtkomt. In het WordPress-dashboard verschijnen bovendien twee onbekende gebruikers met beheerdersrechten.
De oorzaak blijkt een combinatie van factoren: een verouderde plugin met een bekend beveiligingslek, een oud beheerdersaccount van een voormalige medewerker en geen recente, gecontroleerde back-up. De website werkt aan de voorkant grotendeels nog. Precies dat maakt dit type hack verraderlijk. Malware kan verborgen blijven in thema-bestanden, de database, geplande taken of zelfs in bestanden die op een normale afbeelding lijken.
De fout die veel ondernemers hier maken, is direct alleen het wachtwoord wijzigen of de verdachte gebruiker verwijderen. Dat is verstandig, maar onvoldoende. Als de aanvaller een achterdeur heeft geplaatst, kan die binnen enkele minuten opnieuw toegang krijgen.
Stap 1: beperk de schade zonder bewijsmateriaal te wissen
Zet de website tijdelijk in onderhoudsmodus of haal hem, als er actieve omleidingen of betaalrisico’s zijn, kort uit de lucht. Dat is geen fijne beslissing wanneer je afhankelijk bent van online aanvragen. Toch is een paar uur gecontroleerde downtime vaak goedkoper dan bezoekers naar phishing of malware sturen.
Maak vervolgens een volledige kopie van de huidige situatie: alle bestanden, de database en relevante serverlogs. Niet omdat je die besmette versie later wilt terugplaatsen, maar omdat je wilt kunnen onderzoeken wat er is gebeurd. Bij een webshop is het extra belangrijk om recente bestellingen, klantdata en voorraadmutaties veilig te stellen voordat je grote wijzigingen doet.
Wijzig daarna direct alle toegangscodes. Denk niet alleen aan WordPress, maar ook aan hosting, SFTP of FTP, database, e-mailaccounts en eventuele externe diensten die met de site gekoppeld zijn. Gebruik unieke, lange wachtwoorden en schakel tweestapsverificatie in waar dat kan.
Stap 2: bepaal hoe ver de besmetting reikt
Nu begint het echte onderzoek. Vergelijk de bestanden van WordPress core, het actieve thema en gebruikte plugins met schone versies. Onbekende PHP-bestanden, vreemde code in header- of footerbestanden en recent aangepaste bestanden zijn signalen, maar geen automatisch bewijs. Sommige maatwerkfuncties mogen er afwijkend uitzien. Daarom moet iemand beoordelen wat functioneel maatwerk is en wat schadelijke code is.
Controleer ook de database. Malware wordt regelmatig opgeslagen in opties, widgets, pagina-inhoud of geplande taken. Kijk naar onbekende beheerdersaccounts, verdachte redirects, nieuwe cronjobs en scripts die op onverwachte plekken worden geladen.
In dit voorbeeld werd een stukje versleutelde code gevonden in een aangepast thema-bestand. Die code plaatste een verborgen beheerder terug zodra die werd verwijderd. Daarnaast stonden er spamlinks in oude blogberichten en was een kwetsbare plugin al meer dan een jaar niet bijgewerkt.
Dat laat meteen zien waarom een snelle scan alleen niet genoeg is. Een scanner is nuttig als signalering, maar kan geen vervanging zijn voor handmatige controle. Zeker bij een zakelijke site met maatwerk, formulieren of betalingen wil je zekerheid over wat je verwijdert.
Stap 3: herstel vanuit een schone basis
De meest betrouwbare route is niet: losse verdachte regels wegknippen en hopen dat alles daarna werkt. Herstel WordPress core-bestanden vanuit een schone bron en installeer plugins opnieuw vanaf de officiële leverancier. Verwijder plugins en thema’s die niet meer nodig zijn. Elk extra onderdeel is een mogelijk onderhouds- en veiligheidsrisico.
Voor het thema zijn er twee mogelijkheden. Is het een standaardthema met beperkte aanpassingen, dan kun je het vervangen door een schone versie en maatwerk gecontroleerd terugzetten. Is het een volledig maatwerk thema, dan moet de code per bestand worden beoordeeld. Daar zit een duidelijke afweging: een compleet nieuw thema bouwen kost meer tijd, maar kan verstandiger zijn als het bestaande thema technisch verouderd of onoverzichtelijk is.
Een back-up terugzetten kan de snelste oplossing lijken. Maar alleen als je zeker weet dat die back-up van vóór de hack is én dat de kwetsbaarheid daarna wordt gedicht. Anders zet je de site terug naar een versie die misschien schoon is, maar nog steeds dezelfde open deur heeft.
In dit voorbeeld werd gekozen voor een combinatie: een schone WordPress-installatie, herinstallatie van essentiële plugins, herstel van gecontroleerde content en handmatige terugplaatsing van recente bestellingen. Dat vraagt meer aandacht dan één klik op ‘restore’, maar voorkomt dat oude malware of een kwetsbaar bestand terugkomt.
Stap 4: sluit de ingang die de hack mogelijk maakte
Herstel is pas klaar als de oorzaak is aangepakt. Verwijder alle ongebruikte accounts en geef gebruikers alleen de rechten die zij nodig hebben. Iemand die alleen blogs plaatst, hoeft geen beheerder te zijn. Beperk ook het aantal plugins en kies alleen oplossingen die actief worden onderhouden.
Werk WordPress, plugins, thema’s en de serveromgeving bij. Controleer welke PHP-versie draait en of de hosting beveiligingsmaatregelen biedt, zoals malwaremonitoring, firewallregels, dagelijkse back-ups en isolatie tussen accounts. Goedkope hosting lijkt aantrekkelijk, maar wordt duur wanneer je na een incident geen bruikbare back-up, logbestanden of support krijgt.
Zet verder tweestapsverificatie aan voor beheerders, beperk inlogpogingen en zorg dat beveiligingsmeldingen bij de juiste persoon terechtkomen. Een beveiligingsplugin kan helpen, maar installeer niet zomaar vijf tools tegelijk. Dat kan prestaties drukken, conflicten veroorzaken en de controle juist onduidelijk maken.
Voor ondernemers die niet zelf iedere update willen beoordelen, is structureel onderhoud de praktische oplossing. Met een vaste WebCare-aanpak worden updates, beveiligingscontroles, back-ups en prestatiechecks geen taak die maanden blijft liggen. JOYOmedia werkt daarbij rechtstreeks met de mensen die de website beheren en verbeteren. Dat houdt de lijnen kort wanneer er actie nodig is.
Stap 5: test de site alsof je klant bent
Een opgeschoonde website is nog niet automatisch een goed werkende website. Test daarom niet alleen of de homepage opent. Doorloop de belangrijkste routes: formulieren, offertes, inloggen, zoekfunctie, productpagina’s, winkelwagen, checkout, betaalmethoden en bevestigingsmails.
Controleer ook op mobiel. Een herstelactie kan scripts, caching of styling beïnvloeden. Test in meerdere browsers en bekijk of conversiemetingen nog werken. Als je advertentiecampagnes draait, controleer dan ook tags, bedankpagina’s en koppelingen met analytics. Juist die onderdelen worden na een technisch herstel vaak vergeten, terwijl ze direct invloed hebben op je marketingbudget en leadopvolging.
Vraag eventueel een paar vaste klanten of collega’s om een kritische test te doen. Zij zien vaak sneller waar een knop onduidelijk is of een mail in de spam belandt. Pas wanneer de technische controle én de klantreis goed zijn, haal je de onderhoudsmodus weg.
Wat kost herstel van een gehackte WordPress-site?
De prijs hangt af van de omvang van de besmetting, de beschikbaarheid van een schone back-up, maatwerk in de site en de gevolgen voor een webshop. Een eenvoudige brochurewebsite met één kwetsbare plugin is sneller hersteld dan een webshop met klantaccounts, betalingen en veel koppelingen.
Let vooral op transparantie in de aanpak. Vraag wat er wordt onderzocht, of de oorzaak wordt opgelost, hoe de site wordt getest en wat er gebeurt als er na herstel alsnog malware wordt gevonden. Een lage prijs voor alleen het verwijderen van zichtbare code kan duur uitpakken wanneer de achterdeur blijft bestaan.
Na herstel begint het echte werk
Plan na het incident een vast moment voor onderhoud en maak iemand verantwoordelijk voor meldingen, verlengingen en accounts. Houd alleen software die je echt gebruikt en verwijder oude gebruikers zodra iemand uit dienst gaat. Een actuele, extern opgeslagen back-up is geen luxe, maar bedrijfscontinuïteit.
Een gehackte website is frustrerend, maar hoeft geen langdurige schadepost te worden. Wie snel isoleert, grondig herstelt en daarna structureel onderhoud regelt, maakt van een incident een concreet verbeterpunt. Zo blijft je website doen waarvoor hij er is: vertrouwen wekken, aanvragen opleveren en verkopen ondersteunen.