WordPress gehackt malware redirect fix is het meest stressvolle telefoontje dat ik krijg. Vorige maand belde een ondernemer uit Hulst rond kwart voor acht ’s ochtends. Klanten kregen op mobiel een casino-pagina te zien. Op desktop leek er niks aan de hand.
Google toonde inmiddels een rode interstitial “Deze site kan schadelijk zijn” en zijn Ads-campagne was automatisch gepauzeerd. In dit soort scenario’s telt elk uur. Je verliest omzet, vertrouwen en SEO-positie tegelijk.
In dit stuk lees je hoe ik zo’n incident systematisch aanpak: van containment tot cleanup tot Search Console-review tot AVG-meldplicht. Reken op 2 tot 4 uur voor een standaardgeval, langer bij diepere compromise of ontbrekende backups.

WordPress gehackt malware redirect fix: wat er onder de motorkap gebeurt
Eerst begrijpen, dan opruimen. Je wil weten wat een aanvaller in de meeste gevallen doet. Ik zie in mijn praktijk grofweg drie klassen compromise:
1. Injected redirect via .htaccess of theme-header. De aanvaller voegt een RewriteRule toe met een User-Agent-conditie waardoor alleen mobiele bezoekers of alleen Googlebot doorgestuurd worden. Op je eigen desktop-Chrome zie je niks, terwijl je klanten wel op een casino- of pillspam-domein belanden. Deze aanpak overleeft plugin-updates omdat de payload buiten wp-content zit.
2. PHP-backdoor in uploads of plugins. Een obfuscated PHP-bestand (bijvoorbeeld wp-content/uploads/2024/07/logo.php) fungeert als webshell. De aanvaller kan via een POST-parameter arbitraire code uitvoeren, extra admin-users aanmaken, of nieuwe pagina’s in de database schrijven. De uploads-map hoort principieel nooit PHP te bevatten.
3. Supply-chain-compromise van een legit plugin. De grootste in 2026 was de EssentialPlugin-suite compromise. Meer dan 30 plugins met samen 400.000+ installaties raakten besmet. Na de acquisitie via Flippa in aug/sept 2025 kregen ze een dormant PHP object injection-backdoor.
De payload werd pas op 5 april 2026 geactiveerd via analytics.essentialplugin.com, waarna geïnfecteerde sites spam-pagina’s alleen aan Googlebot serveerden en gewone bezoekers een cloaked redirect kregen. Het WordPress Plugins Review team verwijderde de gadget chain op 7 april 2026. Sites die de forced update kregen zijn niet automatisch schoon: manuele remediation blijft nodig.
Weet welke klasse je hebt, dan weet je waar je moet zoeken. Klasse 1 fix je in minuten, klasse 3 kan halve dagen kosten.
Stap 1: Immediate containment binnen 15 minuten
Voordat je iets probeert te repareren, moet je bloeden stoppen. Vier acties, in volgorde:
Change ALL passwords. Niet alleen wp-admin. Ook FTP, database, hostingpaneel (cPanel/Plesk/DirectAdmin/hPanel) en het e-mailadres dat als admin-mail in WordPress staat. Als één wachtwoord gelekt is, kan een gecompromitteerde e-mailaccount password-reset-links onderscheppen. Gebruik een wachtwoordmanager en genereer 20+ karakter random.
Enable maintenance mode. Bezoekers zien een statische pagina en jij hebt de site voor jezelf. Snelste manier zonder plugin: maak een .maintenance-bestand in de WP-root met inhoud . WordPress toont dan automatisch de standaard maintenance-pagina. Alternatief via WP-CLI.
wp maintenance-mode activateNotify hosting. Bel je hosting-provider en meld dat de site gecompromitteerd is. Bij Antagonist, Vimexx en TransIP krijg je vaak binnen een half uur een terugkoppeling over of ze op serverniveau iets zien (bijvoorbeeld outbound spam-verkeer of extreme CPU-load). Ze kunnen ook helpen met een force-clean backup restore.
Freeze de scene. Voordat je één bestand aanraakt, maak een volledige backup van de geïnfecteerde staat via je hostingpaneel of via WP-CLI. Deze backup is je forensische bewijs mocht er een AVG-melding uit voortkomen.
# WP-CLI backup van infected state (bewaar apart van clean backups)
wp db export infected-$(date +%Y%m%d-%H%M).sql
tar -czf infected-files-$(date +%Y%m%d-%H%M).tar.gz wp-content/Stap 2: Symptomen triage
Niet elke hack is hetzelfde. De symptomen bepalen waar je begint met scannen.
- Mobile-only redirect naar spam-domein: klasse 1. Ga direct naar
.htaccessen theme-header-files. - Spam-pagina’s zichtbaar in Google maar niet op je site: cloaking. De site checkt
User-Agent, serveert spam alleen aan Googlebot. Test metcurl -A "Googlebot" https://jouwsite.nl. - Google toont “This site may be hacked” of “Deceptive site ahead”: Google Safe Browsing heeft je gemarkeerd. Check ook je Search Console → Security Issues.
- Wp-admin niet bereikbaar, of admin-login werkt maar er zijn onbekende gebruikers: database-compromise plus fake admin-users.
- Site voelt sloom, hoge CPU: waarschijnlijk cryptomining-script of spam-mailrelay actief.
- Hosting stuurt abuse-mail over outbound spam: je server verzendt zonder dat jij het weet. PHP-mailer-backdoor of
sendmail-hijack.
Test de mobile-redirect zonder telefoon met een curl-command.
# Simuleer een iPhone Safari user-agent
curl -A "Mozilla/5.0 (iPhone; CPU iPhone OS 17_0 like Mac OS X) AppleWebKit/605.1.15" \
-I https://jouwsite.nl
# Simuleer Googlebot
curl -A "Mozilla/5.0 (compatible; Googlebot/2.1; +http://www.google.com/bot.html)" \
-I https://jouwsite.nlKrijg je een 301 of 302 met een Location:-header naar een onbekend domein? Bevestigd, cloaking-redirect actief.
Stap 3: Remote scan met drie tools naast elkaar
Nooit vertrouwen op één scanner. Ik draai altijd drie parallel omdat elke tool andere signatures heeft.
Sucuri SiteCheck is gratis en scant remote: geen installatie nodig. Vul de URL in, klik Submit. Sucuri checkt tegen Google Safe Browsing, Norton, McAfee, ESET, Yandex en SpamHaus. Nadeel: remote scan mist server-side backdoors die geen frontend-signaal geven.
Wordfence installeer je als plugin en draait server-side. De free-versie doet een volledige file-scan tegen hun signature-database. Handig: het detecteert core file integrity issues (gewijzigde WP-core-bestanden) en flags onbekende PHP in uploads. Wordfence Premium kost $149/jaar en voegt real-time firewall rules toe. Care zit op $590/jaar en Response op $1.250/jaar; de laatste geeft 24/7 incident response met 1-uur SLA.
MalCare doet een cloud-scan zonder server-load. Prijzen 2026: Protect $99/jaar per site, Repair $299/jaar (met expert cleanup), Fortify $499/jaar. Voordeel is dat de scan zelf offloaded is, dus je server gaat er niet van kraken zoals bij een Wordfence-full-scan op grote sites soms wel gebeurt.
Draai ze in deze volgorde: SiteCheck eerst (2 minuten), dan Wordfence full scan (10-30 min afhankelijk van site-grootte), dan pas overwegen om betaalde tools bij te schakelen.
Stap 4: Handmatige file-scan met find en grep
De scanners missen vaak custom-payloads. Ik doe altijd zelf een pass langs recent gewijzigde bestanden en op de bekende hot spots.
# Vind alle PHP-bestanden gewijzigd in de laatste 7 dagen
find /var/www/html -name "*.php" -mtime -7 -type f -exec ls -la {} \;
# Vind alle PHP-bestanden in uploads (moet leeg zijn)
find /var/www/html/wp-content/uploads -name "*.php" -type f
# Zoek naar veelvoorkomende obfuscation-patronen
grep -rn "eval(base64_decode" /var/www/html/wp-content/
grep -rn "gzinflate(base64_decode" /var/www/html/
grep -rn "\$_REQUEST\[.*\]" /var/www/html/wp-content/uploads/
# Recent gewijzigde .htaccess-bestanden (soms verstopt in subdirs)
find /var/www/html -name ".htaccess" -mtime -30 -type fDe find-uitvoer sorteer je vervolgens op modificatiedatum. PHP-bestanden die op een tijdstip zijn gewijzigd waarop jij niet hebt gedeployed, zijn verdacht. Match ze tegen het official WordPress core file overzicht via wp core verify-checksums (zie stap 6).
Check specifiek de .htaccess in de WP-root op deze rode vlaggen.
# Verdacht: mobile user-agent redirect
RewriteCond %{HTTP_USER_AGENT} (android|iphone|ipad|mobile) [NC]
RewriteRule ^(.*)$ https://spamdomein.tld/redirect [L,R=302]
# Verdacht: referrer-based cloak
RewriteCond %{HTTP_REFERER} (google|bing|yahoo) [NC]
RewriteRule ^(.*)$ https://spamdomein.tld/ [L,R=302]
# Verdacht: PHP-executie in uploads toestaan (moet ontkend zijn)
<Files "*.php">
Allow from all
</Files>De legit .htaccess van WordPress bevat alleen de standaard # BEGIN WordPress block met WP’s eigen rewrite. Alles daarbuiten dat niet van jou of van een cache-plugin komt, is verdacht.
Stap 5: Database-check op admin-users en options-tampering
Aanvallers maken vaak een tweede admin-account aan. Soms met een naam die op een systeem-user lijkt, zoals wpadmin of sysadmin. Daarnaast tamperen ze met wp_options om siteurl of home naar hun eigen domein te zetten.
-- Alle administrators bekijken
SELECT u.ID, u.user_login, u.user_email, u.user_registered
FROM wp_users u
INNER JOIN wp_usermeta um ON u.ID = um.user_id
WHERE um.meta_key = 'wp_capabilities'
AND um.meta_value LIKE '%administrator%';
-- siteurl en home controleren (moeten je eigen domein zijn)
SELECT option_name, option_value
FROM wp_options
WHERE option_name IN ('siteurl', 'home', 'admin_email', 'template', 'stylesheet');
-- Geplande cron-jobs (zoek naar onbekende hooks)
SELECT option_value FROM wp_options WHERE option_name = 'cron';
-- Recent aangemaakte posts met verdachte content
SELECT ID, post_title, post_status, post_date
FROM wp_posts
WHERE post_date > DATE_SUB(NOW(), INTERVAL 30 DAY)
AND post_status IN ('publish', 'draft')
ORDER BY post_date DESC LIMIT 50;Vind je een onbekende admin? Delete via WP-CLI (nooit met de UI, want die kan gehijackt zijn).
# Bekijk admins
wp user list --role=administrator
# Delete + reassign eventuele content
wp user delete 42 --reassign=1
# Reset wachtwoord van je eigen admin (voor de zekerheid)
wp user update 1 --user_pass="$(openssl rand -base64 24)"
Stap 6: Per-hostingpaneel toegang en time-sorted bestandsbrowsing
Niet iedereen heeft SSH. De meeste Nederlandse mkb-hostings geven wel toegang tot een file manager met time-sort. Sorteren op modification date is de snelste manier om verdachte bestanden te vinden.
Via DirectAdmin (Antagonist, Vimexx, mijn.host)
- Log in → File Manager → open
public_html/. - Bovenin de kolommen, klik Last Modified om te sorteren.
- Zet ook de weergave op “Show hidden files” (Settings-icoon rechtsboven, vink “Show Hidden Files” aan).
- Recent gewijzigde
.htaccess,wp-config.phpof PHP inwp-content/uploads/verdient extra aandacht.
Via Plesk (o.a. TransIP zakelijk, Combell)
- Domains → jouwsite.nl → Files.
- Klik het kolomkopje Modified om te sorteren.
- Ga naar
httpdocs/wp-content/uploads/en zoek.php-bestanden (moet leeg zijn). - Plesk heeft ook een ingebouwde ImunifyAV-scan onder Websites → Security die je gratis kunt draaien.
Via cPanel (o.a. Neostrada)
- File Manager →
domains/jouwsite.nl/public_html/. - Sorteer op Modified.
- DirectAdmin toont geen hidden files standaard, klik het oogje in de toolbar om
.htaccesste zien.
Via Hostinger hPanel
- Files → File Manager.
- Kolommen sorteren op Last Modified.
- Hostinger heeft een ingebouwde Malware Scanner onder Security die je gratis kunt draaien voor initiële triage.
Via RunCloud, ServerAvatar, GridPane (managed VPS)
Beste route is SSH. Combineer WP-CLI met find.
# Volledige core file integrity check
wp core verify-checksums
# Verify alle plugins tegen WP.org checksums
wp plugin verify-checksums --all
# List alle plugins met versie en status
wp plugin list --format=csv > plugins-audit.csv
# Recent gewijzigde files buiten je eigen deploy-window
find . -type f -mtime -14 -not -path "./wp-content/cache/*" \
-not -path "./wp-content/uploads/*" -lsBij wp core verify-checksums krijg je een lijst van core-bestanden die niet matchen met de official checksums. Elke mismatch is een rode vlag, tenzij het gaat om wp-config.php (die is per site uniek en wordt terecht niet gechecked).
Cleanup-workflow: het schoonmaakhandboek
Nu je weet waar de shit zit, gaat de opruim in vaste volgorde. Skippen van stappen wreekt zich later.
1. Backup infected state (forensics). Al gedaan in stap 1. Bewaar minimaal 90 dagen apart.
2. Restore uit een clean backup pre-infection. Heb je een backup van vóór de infectie-datum? Die datum bepaal je met de mod-time van het eerste gedetecteerde malicious bestand. Een restore is dan vaak sneller en veiliger dan alle payloads met de hand verwijderen. Check bij UpdraftPlus, JetBackup of je hosting-native backups.
3. Update WP core, alle themes, alle plugins. Nooit een deels-schone site online zetten met verouderde componenten.
wp core update
wp plugin update --all
wp theme update --all
wp language update --all4. Deactivate en delete plugins die je niet gebruikt. Elke inactieve plugin is een aanvalsoppervlak.
5. Verander ALLE passwords (weer, na cleanup). Wp-admin, FTP, DB, hostingpaneel, admin-mail. Ja, ook al deed je het in stap 1: mogelijk lekte er een password tijdens de cleanup als je site nog niet echt schoon was.
6. Enable 2FA voor alle admin-users. Wordfence Premium heeft dit ingebouwd, of gebruik WP 2FA van Melapress. Nul admin-users zonder 2FA op een net-gecleande site.
7. Install security plugin + WAF. Ik gebruik meestal Wordfence Premium ($149/jaar) plus Cloudflare op zijn minst het gratis tier voor edge-WAF en DDoS-mitigation. Voor sites met een grotere aanvals-historie: Sucuri Basic op $199,99/jaar met unlimited cleanups en 12 maanden monitoring, of Solid Security Pro op $99/jaar als je bij Liquid Web-ecosystem zit.
8. Re-scan om schoon te bevestigen. Draai Sucuri SiteCheck, Wordfence en MalCare opnieuw. Nul detecties gedurende 24 uur is je minimale drempel voordat je naar Google gaat.
9. Google Search Console → Security → Request Review. Nu pas. Meer over deze stap hieronder.
10. Email affected customers als PII lekte. Als klantgegevens (namen, e-mailadressen, wachtwoorden-hashes, factuuradressen, iDEAL-transacties) mogelijk zijn ingezien of gelekt: 72-uurs meldplicht bij de AP.
Google Search Console: veilig terug in de index
Na cleanup meldt Google niet automatisch dat je schoon bent. Zolang de “Deze site kan schadelijk zijn”-waarschuwing in de SERP staat, verlies je zeker 60% van je clicks. Werkwijze.
- Ga naar Search Console → property selecteren → Beveiliging en handmatige acties → Beveiligingsproblemen.
- Klik op het gemelde issue om te zien welke URL’s geflagged zijn en met welke categorie (Malware, Deceptive pages, Injected content, Harmful downloads).
- Verifieer op elke geflaggede URL dat de payload weg is (open incognito, check response headers, test cloaking met curl).
- Klik Beoordeling aanvragen.
- In het textveld beschrijf je concreet wat je hebt gedaan: welk plugin was besmet, hoe je hebt opgeruimd, welke security-plugins nu draaien. Google-medewerkers lezen dit echt. Vage “hebben het gefixt”-verzoeken worden vaker afgewezen. Details zoals “verwijderd wp-content/uploads/2024/07/logo.php + reset .htaccess + Wordfence Premium geïnstalleerd” scoren beter.
- Reviews duren typisch 1 tot 3 werkdagen. Je krijgt e-mail bij goedkeuring of afwijzing.
Bij afwijzing krijg je meestal een specifieke URL waar Google nog malicious content ziet. Vaak is dat een cached versie of een subdirectory die je hebt gemist. Fix, en dien opnieuw in.
3 concrete scenario’s uit mijn praktijk
Scenario A: EssentialPlugin dormant backdoor (april 2026)
Diagnose: Site had Login Logout Menu van EssentialPlugin geïnstalleerd. Sinds 5 april 2026 verscheen bij Googlebot-user-agent een JSON-array van 200+ spam-pagina’s over online casino’s, terwijl gewone bezoekers niks zagen. Ranking crashte binnen 48 uur.
Oorzaak: Supply chain compromise via de nieuwe eigenaar “Kris” die code committed op alle 30+ plugins met PHP object injection gadget chain, geactiveerd via analytics.essentialplugin.com.
Fix: Volledige verwijdering van alle EssentialPlugin-plugins (niet alleen deactiveren), grep op analytics.essentialplugin.com in de database om injected content op te ruimen, en clean install van vervangende plugins (bijv. Nav Menu Roles in plaats van Login Logout Menu). Extra: alle admin-passwords reset, want de backdoor kon credentials exfiltreren.
Scenario B: Mobile-only redirect via User-Agent .htaccess-injectie
Diagnose: Klant zag op eigen laptop niks, klanten meldden dat de site op mobiel doorverwees naar casino-online-xyz.top. Curl-test met iPhone-user-agent bevestigde een 302 redirect.
Oorzaak: In de root-.htaccess was een RewriteCond %{HTTP_USER_AGENT} (android|iphone|ipad|mobile) [NC] toegevoegd, vermoedelijk via een gecompromitteerde FTP-account (het FTP-wachtwoord stond in een oude Filezilla-installatie zonder master password).
Fix: .htaccess teruggezet naar de default WordPress-block. FTP-account gedelete en opnieuw aangemaakt met een sterk wachtwoord + SFTP-only. Filezilla-Site-Manager op de dev-machine gemigreerd naar 1Password. wp core verify-checksums toonde daarna nul mismatches.
Scenario C: Fake admin-user via SQL-injection in verouderde plugin
Diagnose: In wp_users verscheen een admin-account wpsupport met een hotmail.com-adres. Klant had die niet aangemaakt. Diverse posts waren aangepast met outbound links naar een prescription-drug-domein.
Oorzaak: Een outdated versie (2.1.4) van een niet-onderhouden plugin met bekende SQL-injection-CVE. Aanvaller gebruikte de injection om een admin-row toe te voegen en vervolgens via de UI content te tamperen.
Fix:
# List admins, herken de fake
wp user list --role=administrator
# Delete via CLI (UI kan gehijackt zijn)
wp user delete 47 --reassign=1
# Update alle plugins, verwijder de vulnerable
wp plugin delete kwetsbare-plugin
wp plugin update --all
# Reset alle admin passwords
wp user update 1 --user_pass="$(openssl rand -base64 24)"Na cleanup: Wordfence Premium erop, WAF-rules actief, en de klant een password manager aanbevolen omdat zijn eigen admin ook een 8-karakter-wachtwoord had.
Gehackt? Bepaal je eerste incident-route
Vink geen bestanden blind weg. Beantwoord zes vragen en volg een rustige volgorde voor containment, onderzoek en herstel.
Een symptoom wijst naar een onderzoeksspoor, maar bewijst nog niet hoe iemand is binnengekomen.
Je antwoorden wijzen nog niet naar een van de drie herkenbare scenario’s. Dat betekent niet dat de site schoon is.
Geen juridisch advies. Dit is een hulpmiddel voor structuur. Vind je niets, dan is de site niet automatisch schoon. Dicht altijd het lek om een tweede hack te voorkomen.
Cleanup-service prijsvergelijking
Zelf opruimen kan als je de tijd en de skills hebt. Anders kost je een specialist inschakelen tussen de €400 en €900 voor een eenmalige cleanup, of je koopt een abonnement. Actuele prijzen (augustus 2026).
- Sucuri Basic $199,99/jaar: unlimited cleanups plus 12 maanden monitoring en WAF. Best value voor een kleine site die net gehackt is.
- Wordfence Premium $149/jaar: DIY-tool met signatures en firewall, geen menselijke cleanup.
- Wordfence Care $590/jaar: installatie, config, en cleanup door hun team indien nodig.
- Wordfence Response $1.250/jaar: 24/7 incident response met 1-uur SLA voor missiekritieke sites.
- MalCare Repair $299/jaar per site: automatische cleanup plus expert support.
- Eenmalige emergency cleanup marktbreed: €400 tot €900, afhankelijk van complexity. Bij mij: €70/uur, in de meeste gevallen 3 tot 6 uur werk voor volledige cleanup, Search Console review en preventie-setup.
Voor mkb-sites onder de 10.000 unieke bezoekers per maand adviseer ik meestal Wordfence Premium plus Cloudflare gratis tier: samen $149/jaar en dekt 90% van de dreigingen af. Voor webshops met iDEAL-transacties of PII van klanten zit je beter met Sucuri Basic omdat unlimited cleanups en dedicated support je een hoop stress schelen als het echt misgaat.
AVG-meldplicht: 72 uur naar de AP
Kunnen bij de hack persoonsgegevens ingezien of gelekt zijn? Denk aan klantnamen, e-mailadressen, factuuradressen, bestelhistorie, iDEAL-metadata en sessies van ingelogde gebruikers. Dan moet je binnen 72 uur na constatering melden bij de Autoriteit Persoonsgegevens. Dat geldt ook als je niet zeker weet of er data gelekt is, maar de mogelijkheid reëel is.
De melding gaat via het datalek-meldformulier. Zorg dat je bij de hand hebt: wanneer je het lek ontdekte, welke categorieën persoonsgegevens erin zaten, hoeveel personen betroffen zijn, welke maatregelen je hebt getroffen. Bij twijfel bel je 088-1805 255. De AP is niet uit op sancties bij transparent meldgedrag; verzwijgen wordt aanzienlijk zwaarder gestraft dan een 71-uurs melding.
Verder: als de aard van het lek waarschijnlijk hoog risico voor betrokkenen oplevert (bijv. wachtwoord-hashes, betalingsinformatie, gezondheidsdata), moet je óók de betrokkenen zelf informeren. Een e-mail met wat er gebeurd is, wat de mogelijke impact is, en welk advies je geeft (bijv. wachtwoord veranderen op andere sites waar ze hetzelfde password gebruikten).
Preventie: dit voorkomt de tweede hack
Cleanup is symptoombehandeling. Zonder gedragsverandering ben je binnen 6 maanden weer aan de beurt.
1. Least-privilege user-roles. Niet elke medewerker heeft admin nodig. Editor is genoeg voor content-teams, Shop Manager voor WooCommerce-orders. Één admin per site (jij), rest krijgt de laagste rol die de taken toelaat.
2. 2FA voor alle admin-users. Verplicht via een plugin die het afdwingt (WP 2FA, Wordfence, Solid Security Pro). Geen uitzondering voor “ik log maar één keer per maand in”.
3. File-integrity monitoring. Wordfence Premium doet dit automatisch: dagelijkse scan tegen WP.org checksums plus flagging van gewijzigde core/plugin-bestanden. Alternatief: dagelijkse cron met wp core verify-checksums die e-mailt bij mismatch.
4. Web Application Firewall. Cloudflare gratis tier of de betaalde Pro ($25/maand) blokkeert al 80% van bot-scans en known-CVE-exploits voordat ze bij je server komen. Sucuri en Wordfence bieden ook eigen WAF-oplossingen.
5. Plugin-inventaris audit elk kwartaal. Loop je plugin-lijst na. Deïnstalleer wat je niet actief gebruikt. Check per plugin of de laatste update minder dan 6 maanden oud is. Check ook of de plugin actief onderhouden wordt en niet gevlagd staat in Patchstack of de WPScan-vulnerabilities database. De EssentialPlugin-case laat zien dat je ook legit-lijkende plugins moet blijven monitoren op eigenaarsverandering.
6. Backup + restore-test elke maand. Een backup die je nooit hebt getest is geen backup. Elke maand op een staging-omgeving een restore uitvoeren om te bevestigen dat de tarball intact is. Automatisch via UpdraftPlus Premium of hosting-native (JetBackup bij Cloudways, Snapshots bij Hostinger).
7. SFTP/SSH i.p.v. FTP. FTP stuurt credentials plaintext. Alle Nederlandse mkb-hostings ondersteunen SFTP of SSH; gebruik dat exclusief en delete FTP-only accounts in het hostingpaneel.

Wanneer een echte webmaster inschakelen
Doe het zelf bij een kleine site met een clean backup. Dat geldt voor symptomen uit klasse 1 of klasse 2. Bel in deze gevallen iemand.
- Je een webshop draait met live iDEAL-transacties en checkout is affected; omzetimpact per uur is groot.
- Er PII gelekt kan zijn en je onzeker bent over de AVG-meldplicht.
- Meerdere sites op dezelfde hosting getroffen zijn (multisite-compromise of gedeelde credentials).
- Je binnen 90 dagen twee keer gehackt bent; dan zit er een dieper probleem in je toolchain.
- Je Search Console review twee keer is afgewezen, er zit dan nog iets onopgeruimd.
- Wp-admin niet meer bereikbaar is en je hostingpaneel ook geen toegang meer geeft.
Voor mijn klanten kost een standaard-cleanup 3 tot 6 uur (€210 tot €420), inclusief AVG-melding waar nodig, Search Console-review, en een preventie-setup zodat de tweede hack er niet komt.
Site nu gecompromitteerd?
Als bezoekers redirect zien of Google al waarschuwt, is elk uur er een verlies. Stuur me een mail via /contact/ of bel direct (nummer op de contactpagina). Ik pak spoedgevallen binnen 4 uur op tijdens kantoortijden en factuur alleen daadwerkelijk bestede tijd. Volledige cleanup + Search Console review + preventie-setup kost gemiddeld 3 tot 6 uur.



