Van de back-ups die ik in mijn werkpraktijk tegenkom, blijkt ongeveer een derde niet zonder ingrijpen te kunnen worden teruggezet. Soms ontbreekt de database, soms is alleen een deel van wp-content opgeslagen, soms zit de back-up op dezelfde server die zojuist is gecrasht. Een back-up die je niet hebt getest, is geen back-up.
Dit artikel gaat over hoe je een WordPress backup terugzetten doet zonder onderweg bestellingen, ingeschreven gebruikers, formulierdata of media-uploads te verliezen. Drie methodes, in volgorde van gemakkelijk naar handmatig. Telkens dezelfde vraag: wat raak je kwijt, en hoe voorkom je dat?
Eerst de belangrijkste regel: een restore is een drastische actie. Voordat je hem uitvoert, maak een verse back-up van de huidige (kapotte) site. Dat klinkt absurd, maar het is je vangnet als de restore zelf misgaat.

Voor je begint: vijf vragen
Een restore zonder voorbereiding kost vaak meer tijd dan een restore mét. Loop deze vragen door:
- Hoe oud is de back-up? Een back-up van een uur geleden vraagt een andere aanpak dan een van twee weken oud.
- Wat is er sindsdien gewijzigd op de site? Nieuwe bestellingen, formulierinzendingen, blogposts, gebruikers. Die data ben je kwijt als je niets doet.
- Bevat de back-up alles? Bestanden plus database, of alleen een van beide?
- Heb je een staging-omgeving? Een veilige kopie waarop je eerst kunt testen.
- Is de oorzaak van het probleem zelf opgelost? Een hack of een corrupte plugin die niet weg is, hak-aft je restore meteen weer kapot.
Bij twijfel op een of meer punten: niet meteen terugzetten op live, eerst de antwoorden zoeken.
Methode 1: UpdraftPlus restore
UpdraftPlus is de meest gebruikte back-up-plugin in WordPress. Veel beheerders hebben dit standaard draaien. De restore is in principe een paar klikken, maar de details bepalen of het goed gaat.
Stappen
1. Open de UpdraftPlus-instellingen. WordPress admin → Instellingen → UpdraftPlus Backups → tabblad “Bestaande back-ups”.
2. Kies de back-up die je wil terugzetten. Je ziet een lijst met datums. Per back-up staan vinkjes voor wat er beschikbaar is: Database, Plugins, Themes, Uploads, Anders.
3. Klik op “Herstel” en kies wat je terug wil zetten. UpdraftPlus laat je per onderdeel kiezen. Soms wil je alleen de database terug (na een corrupte plugin-update), soms alleen wp-content/uploads (na verloren afbeeldingen), soms alles.
4. Bevestig de waarschuwingen. Lees ze. UpdraftPlus waarschuwt over wat er overschreven wordt.
5. Wacht tot de restore klaar is. Bij een grote site (10GB+) kan dit een half uur duren. Sluit het venster niet.
Wat je kunt verliezen
Bij een database-restore vervang je de hele tabelinhoud door wat in de back-up zat. Alles wat sindsdien is toegevoegd of gewijzigd, is weg:
- nieuwe bestellingen (bij WooCommerce)
- ingezonden formulieren (Contact Form 7, Gravity Forms, WPForms)
- nieuw aangemaakte gebruikers
- blogposts en pagina’s die je sinds de back-up hebt gepubliceerd
- WooCommerce-voorraad-mutaties
Voor deze data is er één strategie: export voor restore. Voor WooCommerce kun je via WooCommerce → Bestellingen de bestellingen sinds de back-up exporteren naar CSV. Voor formulierinzendingen idem: meeste plugins bieden een export. Die CSV bewaar je apart, en je voert de gegevens na de restore handmatig of via een import opnieuw in.
Dit klinkt veel werk. Het is het ook, maar het is wel werk waar je weet wat je doet. Een geautomatiseerde “alles plakken-en-overschrijven” zonder export is een garantie op verlies.

Methode 2: hosting-backup terugzetten
De meeste Nederlandse hosters (Hostinger, TransIP, Combell, Hetzner, Vimexx) maken automatisch dagelijkse back-ups van shared en cloud-hosting. Die back-ups zijn vaak meer compleet dan UpdraftPlus, omdat ze ook server-instellingen, e-mail en SSL-certificaten meenemen.
Stappen
1. Log in op het hosting-paneel. Zoek naar een sectie “Back-ups”, “Snapshots” of “Restore points”.
2. Bekijk welke back-ups beschikbaar zijn. Meestal zie je back-ups van de laatste 7 tot 30 dagen, afhankelijk van je abonnement.
3. Lees voor je klikt. Sommige hosters zetten een back-up terug naar het oorspronkelijke moment, andere maken een nieuwe site die je naast de oude kunt zetten om te vergelijken.
4. Voer de restore uit. Bij hosters met server-side back-ups gaat dit razendsnel, omdat het op file-system-niveau gebeurt en niet via PHP.
5. Controleer de site direct na de restore. Werkt de homepage? Lukt inloggen? Werkt het contactformulier?
Wat je moet weten over hosting-backups
Niet alle back-ups zijn even volledig. Bij de goedkoopste shared-hostingpakketten worden soms alleen de bestanden geback-upt, niet de database. Lees vooraf wat je hoster meeneemt.
Restore overschrijft alles. Bij een server-back-up gaat de hele installatie terug. Heb je sinds de back-up een SSL-certificaat vernieuwd, e-mailadressen aangemaakt of DNS-records aangepast, dan kunnen die ook teruggedraaid worden.
Vraag bij twijfel ondersteuning van je hoster. Een hosting-restore is in tien minuten klaar, maar onomkeerbaar. Een korte mail of chat met support voorkomt vaak schade.
Methode 3: handmatige restore via FTP en phpMyAdmin
Wanneer geen van de twee methodes hierboven werkt (geen UpdraftPlus, geen hosting-backup, alleen een eigen back-up op een externe schijf), kun je handmatig terugzetten. Dit is bewerkelijker, maar je hebt volledige controle.
Voorbereiding
Je hebt nodig:
- een back-up van de bestanden (een zip of map met
wp-content,wp-admin,wp-includes,wp-config.php) - een database-dump (een
.sql-bestand) - toegang tot het hosting-paneel met phpMyAdmin
- een FTP- of SFTP-client (FileZilla, Cyberduck)
Stappen voor de bestanden
1. Maak via FTP eerst een kopie van de huidige live site. Download alles naar een lokale map met datum en tijd in de mapnaam.
2. Verwijder of hernoem de huidige WordPress-bestanden op de server. Hernoemen is veiliger, voor het geval je iets gemist hebt.
3. Upload de back-up-bestanden via FTP. Dit kan een uur duren bij een grote site. Onderbreek het niet.
4. Pas wp-config.php aan als de databasenaam of gebruikersnaam verschilt. Bij een verhuizing kan dit nodig zijn.
Stappen voor de database
1. Log in op phpMyAdmin. Via het hosting-paneel.
2. Selecteer de juiste database uit de lijst aan de linkerkant.
3. Maak een export van de huidige database voor het geval je terug moet. Tabblad “Export”, standaardinstellingen, downloaden.
4. Verwijder de bestaande tabellen. Selecteer alle tabellen, kies onderaan “Drop” of “Verwijderen”. Bevestig.
5. Importeer het back-up-SQL-bestand. Tabblad “Import”, kies het .sql-bestand, klik op “Go” of “Uitvoeren”.
6. Wacht tot de import klaar is. Bij een database van 100MB+ kan dit een paar minuten duren. Krijg je een timeout-melding, dan moet de import in delen via SSH (mysql -u user -p database < file.sql).
Wat verandert er aan URLs?
Bij een verhuizing of bij hostingovergang verandert vaak het basispad. WordPress slaat in de database absolute URLs op. Voor https://oudesite.nl/wp-content/uploads/2024/foto.jpg moet dat na de restore https://nieuwesite.nl/wp-content/uploads/2024/foto.jpg worden.
Hiervoor gebruik je een tool als WP-CLI (wp search-replace) of de plugin Better Search Replace. Niet via een gewone “Find and Replace” in MySQL, want dan beschadig je geserialiseerde data (zoals widget-instellingen).
WooCommerce: bestellingen niet verliezen
Webshops verdienen extra aandacht. Een restore van een webshop met nieuwe bestellingen sinds de back-up moet zorgvuldig:
1. Exporteer eerst de nieuwe bestellingen. WooCommerce → Bestellingen → filter op datum sinds de back-up → “Exporteren” naar CSV. Bewaar dit bestand veilig.
2. Exporteer ook eventuele klantmutaties. Nieuwe klantaccounts, gewijzigde adressen. Plugins als WP All Export helpen hierbij.
3. Voer de restore uit.
4. Importeer de bestellingen terug. Via WooCommerce → Bestellingen → “Importeren”, of via de plugin WP All Import. Belangrijk: zorg dat de bestelnummers niet botsen. Soms moet je de oude bestelnummers herstellen via een tijdelijke aanpassing.
5. Controleer de voorraad. Een teruggezette database heeft mogelijk verkeerde voorraadstanden. Een kort handmatig overzicht voor de belangrijkste producten voorkomt dat een uitverkocht product weer verkocht wordt.
6. Mail eventueel klanten met bestellingen tussen back-up en restore. Geen verkoopmail, gewoon een korte heads-up dat hun bestelling is verwerkt en de status klopt.
Voor webshops met meer dan 100 bestellingen per dag is dit een precair proces. In die gevallen werk ik altijd op een staging-omgeving voor ik op live ga.

Wat je na elke restore controleert
Een restore is niet klaar als de homepage werkt. Een doorlopen-lijst:
- Homepage en belangrijkste pagina’s openen zonder fouten
- Inloggen lukt (administrator-account)
- Contactformulier verstuurt en e-mail komt aan
- WooCommerce-bestelproces werkt van begin tot betaling
- Afbeeldingen op alle pagina’s zichtbaar
- SSL-certificaat is actief (groen slotje)
- Permalinks werken (eventueel Instellingen → Permalinks → Opslaan om te flushen)
- E-mails vanuit de site komen aan (verlanglijst, factuur, registratie)
- Plugins zijn actief en geconfigureerd
- Search Console en analytics geven geen rare meldingen
Een korte uurronde aan controles, dan weet je dat de restore werkelijk klaar is.
Wanneer is het tijd om hulp te vragen
Een routinematige restore (database alleen, kleine site, geen webshop) is in een uurtje gedaan. Een complexe restore (WooCommerce met live verkeer, custom thema, externe API’s) is een halve dag werk.
Tarief: database- en serverwerk valt onder mijn 95 euro per uur, exclusief btw. Spoed buiten kantooruren 105 euro per uur. Tijdregistratie afgerond per 15 minuten. Minimum per factuur 50 euro.
Wat ik graag vooraf weet: welke back-up je hebt (UpdraftPlus, hosting, eigen export), hoe oud die is, of er sinds de back-up bestellingen of formulierdata zijn binnengekomen, en waarom de restore nodig is (hack, fout, mislukte update). Met die info kan ik vooraf zeggen of het 30 minuten werk is of een halve dag.
Verbeteren boven herbouwen. Een goede restore brengt je site terug zonder dat je iets hoeft op te bouwen vanaf nul. Meer over onderhoud staat in de categorie website onderhoud. Voor preventief werk is de pagina WordPress onderhoudscontract een logische volgende stap.



