Vorige week belde een klant op met een simpele vraag: “Kan jij mijn site even naar een andere host verplaatsen?” Dat klinkt als een middagje werk, maar een migratie die je half doet is erger dan helemaal niet beginnen. Hier is hoe je het goed aanpakt.
Eerst een volledige back-up, geen uitzonderingen
Voordat je ook maar één bestand aanraakt, maak je een volledige back-up. Dat betekent alle bestanden én de database. Niet alleen de uploads-map, niet alleen de theme-bestanden, alles.
Gebruik je cPanel, dan werkt phpMyAdmin goed voor de database-export. Kies voor het SQL-formaat en vink “Add DROP TABLE” aan. Zo overschrijf je bij herstel geen rommel van een eerdere poging. De bestanden pak je via FTP of via de bestandsbeheerder van je host in één zip.
Controleer daarna of de back-up echt compleet is. Open het SQL-bestand even in een teksteditor en zoek naar je tabelnamen. Staan ze er niet in, dan is de export mislukt en heb je een probleem dat je liever nu ontdekt dan na de migratie.
De database overzetten en URL’s aanpassen
Op de nieuwe host maak je een lege database aan met een eigen gebruiker. Importeer het SQL-bestand via phpMyAdmin. Let op de maximale bestandsgrootte die je host toestaat. Bij grote databases van meer dan 50 MB loopt dat regelmatig vast.
Na de import moet je de siteurl en home in de tabel wp_options aanpassen naar het nieuwe domein. Dat doe je direct in phpMyAdmin of via een SQL-query:
UPDATE wp_options SET option_value = 'https://nieuwdomein.nl' WHERE option_name IN ('siteurl', 'home');
Daarna komen de geserialiseerde strings in de database. WordPress slaat veel instellingen op als geserialiseerde PHP-arrays. Als je daarin handmatig zoekt en vervangt, breek je de structuur. Gebruik daarom een tool als Search Replace DB om de URL’s veilig te vervangen zonder de serialisatie te breken.
wp-config.php en bestandsrechten
Kopieer alle WordPress-bestanden naar de nieuwe host. De map-structuur moet identiek zijn. Open daarna wp-config.php en pas de database-gegevens aan: naam, gebruiker, wachtwoord en host. Bij de meeste hosts is de host gewoon localhost, maar check dat even in je hostingpanel.
Bestandsrechten zijn een veelgemaakte fout. Mappen horen op 755 te staan, bestanden op 644. Staat alles op 777, dan is dat een beveiligingsrisico en sommige hosts blokkeren het ook gewoon. Je kunt rechten in bulk aanpassen via FTP-client of via de terminal met chmod.
Controleer ook of de .htaccess correct is. Een verse WordPress-installatie heeft een standaard .htaccess nodig voor de permalinks. Staat die er niet of is hij beschadigd, dan krijg je 404-fouten op alle pagina’s behalve de homepage.
DNS wijzigen en propagatietijd overbruggen
Als de site werkt op de nieuwe host, kun je de DNS laten wijzigen. Pas de A-record aan naar het IP-adres van de nieuwe server. De TTL bepaalt hoe snel die wijziging zich verspreidt. Staat die nog op 86400 (24 uur), dan duurt het lang voordat iedereen de nieuwe server ziet.
Verlaag de TTL idealiter al een dag van tevoren naar 300 seconden. Dan is de overstap na de wijziging binnen vijf minuten zichtbaar voor de meeste bezoekers. Vergeet daarna niet de TTL weer omhoog te zetten.
Tijdens de propagatietijd draaien beide servers. Wijzigingen die bezoekers op de oude server doen, zoals nieuwe bestellingen of reacties, komen niet automatisch over. Zet de oude site daarom in onderhoudsmodus of plan de migratie op een rustig moment.
Wat je altijd controleert na de migratie
Een migratie is pas klaar als je alles gecheckt hebt. Hier is wat standaard op de lijst staat:
- SSL-certificaat actief en correct geconfigureerd op de nieuwe host
- Alle interne links werken en verwijzen naar het juiste domein
- Formulieren versturen correct, inclusief de bevestigingsmail
- Afbeeldingen laden volledig, geen gebroken paden in de uploads-map
- Caching-plugin geleegd en opnieuw geconfigureerd voor de nieuwe omgeving
- Mailconfiguratie getest, want SMTP-instellingen zijn host-specifiek
- Cronjobs actief als je die had voor back-ups of andere taken
Neem dit lijstje serieus. De meeste problemen na een migratie komen van één van deze punten. Formulieren die niet meer werken of mails die niet aankomen, merk je soms pas na dagen.
Veelgestelde vragen over WordPress-migraties
Kan ik een WordPress-site migreren zonder downtime?
Ja, dat kan. Je bouwt de site op de nieuwe host op terwijl de oude nog actief is. Zolang je de DNS nog niet wijzigt, ziet niemand de nieuwe omgeving. Pas als alles werkt, zet je de DNS om. Het enige risico is content die in de tussentijd op de oude server wordt toegevoegd.
Wat doe ik als de site na de migratie wit scherm toont?
Een wit scherm wijst meestal op een PHP-fout. Zet WP_DEBUG tijdelijk aan in wp-config.php om de foutmelding te zien. Veelvoorkomende oorzaken zijn een plugin die niet compatibel is met de PHP-versie van de nieuwe host, of een fout in de database-verbinding.
Moet ik plugins uitschakelen vóór de migratie?
Dat hoeft niet standaard, maar bij complexe migraties kan het helpen. Caching-plugins in het bijzonder kun je beter deactiveren voordat je begint. Ze slaan soms absolute paden op die op de nieuwe server niet kloppen. Na de migratie schakel je ze opnieuw in en configureer je ze opnieuw.