Een WordPress-site verhuizen zonder onderbreking of verlies van vindbaarheid

Hoe u uw WordPress-site van de ene hoster naar de andere verhuist met behoud van adressen, SSL en vindbaarheid.

Introductie

Een WordPress-site verhuizen boezemt vaak angst in: angst voor onderbreking, voor verlies van vindbaarheid, voor beschadigde gegevens. Met de juiste aanpak kan een WordPress-verhuizing onzichtbaar blijven voor uw bezoekers en voor Google.

Deze gids behandelt twee aanpakken: de weg met een uitbreiding (snel, aan te raden onder 1 GB) en de handmatige weg (meer controle, voor grote sites). U vindt er ook het voorbereidende werk (TTL van het DNS, doorlichten van de uitbreidingen), de controlelijst na de verhuizing (SSL, doorverwijzingen, sitemap bij Google) en de valkuilen die vindbaarheid kosten of een site slopen (een database verkeerd overzetten met geserialiseerde tekst, wp-config vergeten, SSL-certificaten slecht vernieuwd).

Voor de verhuizing: het terrein voorbereiden

Een geslaagde WordPress-verhuizing begint 48 uur voor de omschakeling. Drie voorbereidingen beperken de risico's drastisch:

  1. De TTL van het DNS verlagen naar 300 seconden (5 minuten) voor uw domein, minstens 48 uur voor de verhuizing. De gebruikelijke TTL bedraagt 3600 tot 86400 s, waardoor de verspreiding tot 24 uur na de wijziging kan duren. Met een TTL van 300 s duurt ze doorgaans minder dan 30 minuten. U past dat aan bij uw registrar (OVH, Gandi, Cloudflare).
  2. Uitbreidingen en thema's doorlichten voor de verhuizing. Verwijder de uitgeschakelde uitbreidingen, die met de melding « niet verenigbaar met uw PHP-versie », en de ongebruikte thema's. Een WordPress-site van 5 jaar oud sleept doorgaans 30 tot 50 % verouderde of dubbele uitbreidingen mee. De verhuizing is een uitgelezen moment om op te ruimen.
  3. De kritieke onderdelen oplijsten: de gebruikte PHP-versie (na te kijken in wp-admin/site-health.php), de database (grootte, versie van MySQL/MariaDB), de vereiste PHP-uitbreidingen (imagick, curl, mbstring, gd), de geplande taken, de SSL-certificaten en de eigen doorverwijzingen in .htaccess. Met die gegevens bouwt u de omgeving identiek na.
  4. Onderhoudsstand, als u wil: kunt u zich 15 minuten onbereikbaarheid veroorloven, dan toont de uitbreiding WP Maintenance Mode een wachtpagina tijdens de omschakeling. Voor webwinkels of drukbezochte sites kiest u beter voor een geleidelijke verhuizing zonder onderhoudsstand.

Manier 1: met een uitbreiding (aanbevolen)

  1. Volledige reservekopie voor de verhuizing: UpdraftPlus, BackWPup of All-in-One WP Migration
  2. Een lege WordPress installeren op de nieuwe hosting
  3. De reservekopie terugzetten via de uitbreiding
  4. De site testen op het tijdelijke IP-adres of subdomein van de nieuwe hoster
  5. Het DNS omschakelen van het domein naar de nieuwe hoster (met korte TTL)
  6. Het SSL-certificaat vernieuwen bij de nieuwe hoster nadat het DNS verspreid is

Manier 2: handmatige verhuizing (grote sites, webwinkels)

Voor sites boven 1 GB of WooCommerce met duizenden bestellingen is de handmatige weg betrouwbaarder. De stappen:

  1. De database uitvoeren via phpMyAdmin of in SSH: mysqldump -u utilisateur -p ma_base > db_backup.sql. Voeg bij grote sites --single-transaction --quick toe, zo blijft de database niet op slot.
  2. De WordPress-bestanden kopiëren via FTP/SFTP of rsync: rsync -avz -e ssh ./wp-content/ utilisateur@nouveau-serveur:/var/www/html/wp-content/. Rsync die alleen de verschillen overzet, verkort de overdracht flink.
  3. De nieuwe database aanmaken bij de nieuwe hoster (cPanel/Plesk → MySQL Databases) en dan invoeren: mysql -u utilisateur -p ma_base_nouvelle < db_backup.sql.
  4. wp-config.php aanpassen met de nieuwe databasegegevens (DB_NAME, DB_USER, DB_PASSWORD, DB_HOST). Behoud dezelfde veiligheidssleutels (AUTH_KEY en de rest), anders worden alle gebruikers afgemeld.
  5. De adressen bijwerken als ze veranderen: verhuist u ook uw domein, gebruik dan WP-CLI (wp search-replace 'ancien-domaine.com' 'nouveau-domaine.com' --skip-columns=guid), dat correct omgaat met geserialiseerde PHP-tekst. Een gewone UPDATE in SQL zou de widgets en geserialiseerde instellingen slopen.
  6. Testen op een tijdelijk subdomein: migration.nouveau-serveur.com, door uw eigen hosts-bestand aan te passen (zonder het publieke DNS aan te raken). Controleer: startpagina, artikelen, formulieren, betalingen (bij een webwinkel), automatische e-mails.
  7. DNS omschakelen: werk de A- en AAAA-records bij bij uw registrar. Met de TTL van 300 s die u vooraf hebt ingesteld, is de verspreiding in enkele minuten rond.

Manier 3: gratis verhuizing door By-Hoster

Verhuist u naar By-Hoster, dan doet onze technische ploeg de verhuizing gratis. U bezorgt ons de FTP- of cPanel-toegang van de oude hoster en wij regelen alles, zonder onderbreking, binnen 24 tot 48 uur. Inbegrepen: overdracht van bestanden en database, wp-config opnieuw instellen, SSL-certificaat van Let's Encrypt aanmaken, tests na de verhuizing en een afgesproken DNS-omschakeling. U houdt nog 14 dagen toegang tot uw oude hosting om alles na te kijken.

Controlelijst na de verhuizing: 12 punten om na te gaan

Een verhuizing is niet af zodra het DNS naar de nieuwe server wijst. Dit zijn de 12 cruciale controles binnen 24 uur na de omschakeling:

  • Site bereikbaar via HTTP en HTTPS: test met 3 of 4 browsers en op een telefoon. Kijk de belangrijkste pagina's na (start, contact, winkelmandje bij een webwinkel).
  • SSL van Let's Encrypt aangemaakt en actief: curl -I https://votredomaine.com moet 200 OK teruggeven met een geldig certificaat. Na de DNS-wijziging duurt dat 5 tot 30 minuten.
  • Permalinks werken: controleer 5 tot 10 willekeurige artikelen. Krijgt u een 404-fout, ga dan naar wp-admin → Instellingen → Permalinks en klik op « Opslaan » (dat maakt .htaccess opnieuw aan).
  • Afbeeldingen laden: druk Ctrl+F5 op de startpagina. Ontbreken er afbeeldingen, kijk dan de rechten op wp-content/uploads na (755 voor mappen, 644 voor bestanden).
  • Contactformulieren: stuur een testbericht. Kijk na of de e-mail toekomt. Zo niet, stel SMTP in (WP Mail SMTP) met een externe dienst (Mailgun, SendGrid).
  • Aanmelden op wp-admin: log in, met tweestapsverificatie als die aanstaat. Krijgt u de melding « cookies geblokkeerd », wis dan de cache van de browser en probeer in een privévenster.
  • WooCommerce (indien van toepassing): doe een testaankoop (in de « test »-stand van Stripe of PayPal). Kijk de bevestigingsmails, de voorraadaanpassing en de aangemaakte PDF-factuur na.
  • WordPress-cron: kijk na of de geplande taken lopen (wp cron event list via WP-CLI). Schakel de ingebouwde WP-Cron uit en stel een systeem-cron in: * * * * * curl https://votredomaine.com/wp-cron.php?doing_wp_cron > /dev/null 2>&1.
  • Prestaties: test met PageSpeed Insights. Ligt de score onder 80, kijk dan na of de cache aanstaat (LiteSpeed Cache, WP Rocket, W3 Total Cache), of Brotli/Gzip-compressie werkt en of afbeeldingen pas laden wanneer nodig.
  • Sitemap ingediend bij Google Search Console: is het IP-adres veranderd, dan kan het 24 tot 72 uur duren voor Google opnieuw langskomt. Zet er vaart achter via Search Console → Sitemaps → het adres indienen.
  • Oude 301-doorverwijzingen: verhuist u ook het domein, stel de 301's dan in op de oude hoster via .htaccess: RewriteRule ^(.*)$ https://nouveau-domaine.com/$1 [R=301,L]. Houd ze minstens 12 maanden aan, zo behoudt u de waarde van de bestaande links.
  • 24 uur bewaking: een gratis dienst als UptimeRobot of Hyperping merkt onderbrekingen op en verwittigt u per e-mail of sms. Houd de eerste 48 uur ook de PHP-foutlogboeken in de gaten (tail -f /var/log/php/error.log).

Veelvoorkomende valkuilen en hoe u ze vermijdt

  • Kapotte geserialiseerde tekst: verhuist u met een naïeve zoek-en-vervang in SQL, dan gaan de geserialiseerde PHP-instellingen (widgets, customizer, paginabouwers) stuk. Gebruik ALTIJD WP-CLI of een uitbreiding als Better Search Replace, die met serialisatie overweg kan.
  • SSL niet vernieuwd na de verhuizing: Let's Encrypt moet bij de nieuwe hoster opnieuw aangemaakt worden, want het hangt vast aan IP-adres en domein. Oude certificaten verhuizen niet mee.
  • Verkeerde wp-config.php: DB_HOST vergeten bij te werken (soms « localhost », soms een IP-adres), of oude instellingen met WP_DEBUG=true laten staan, waardoor fouten in productie zichtbaar worden.
  • Ingebouwde WordPress-cron niet vervangen: op de oude hosting draaide WP-Cron mee op het bezoek. Vergeet u de ingebouwde WP-Cron uit te schakelen en een echte systeem-cron in te stellen, dan lopen de geplande taken (reservekopieën, nieuwsbrieven versturen, geplande updates) niet meer zoals het hoort.
  • Verouderde cache: de oude cache van uw CDN (Cloudflare, BunnyCDN) wijst nog naar de oude server. Leeg ze na de verhuizing: Cloudflare → « Purge Everything », BunnyCDN → « Clear Cache ».
  • Kapotte XML-sitemap: Yoast en Rank Math maken ze vanzelf opnieuw aan, maar kijk na of ze bereikbaar is op https://votredomaine.com/sitemap_index.xml. Dien ze opnieuw in bij Search Console.
  • Slechte DNS-verspreiding: staat de oude TTL nog op 24 uur, dan zien sommige bezoekers een etmaal lang nog de oude site. Precies daarom is die TTL van 300 s voor de verhuizing zo belangrijk.

Veelgestelde vragen

Nee, als u exact dezelfde adressen behoudt en de DNS-verspreiding netjes verloopt (korte TTL voor de verhuizing). Google ziet enkel een ander IP-adres; inhoud en structuur blijven identiek.

Voor een gewone site onder 1 GB met een uitbreiding: 1 tot 3 uur. Voor een middelgrote site van 1 tot 5 GB, handmatig: 4 tot 8 uur. Voor een grote webwinkel met duizenden producten: 1 tot 2 dagen (voorbereiding, tests, geplande omschakeling). De gratis verhuizing door By-Hoster neemt doorgaans 24 tot 48 uur in beslag, in overleg met u.

Behoudt u hetzelfde domein: nee, Google merkt de verandering van IP-adres binnen 24 tot 72 uur zelf op. Verandert u van domein: ja, gebruik het hulpmiddel « Adreswijziging » van Google Search Console nadat u de 301-doorverwijzingen hebt ingesteld. Anders verliest u de posities die u had.

Met een uitbreiding en een korte DNS-TTL duurt de onbereikbaarheid doorgaans 0 tot 5 minuten (de tijd die het DNS nodig heeft om zich te verspreiden). Bij een goed voorbereide handmatige verhuizing kunt u mikken op helemaal geen onderbreking: u zet de nieuwe server er parallel naast, test via het lokale hosts-bestand en schakelt het DNS pas om als alles goedgekeurd is.

We hebben nodig: toegang via SFTP of FTP tot de oude hosting (alleen-lezen volstaat), toegang tot phpMyAdmin of een SQL-export van de database, en toegang tot het DNS-beheer (bij de registrar: OVH, Gandi, Cloudflare enzovoort) om de records op het juiste moment om te schakelen. Na de verhuizing bewaren we geen enkel gevoelig gegeven.

Nee, maar u moet wel de cache-uitbreidingen uitschakelen voor de uitvoer (W3 Total Cache, WP Rocket, LiteSpeed Cache), anders kunnen verouderde cachebestanden fouten veroorzaken op de nieuwe server. Zet ze na de verhuizing weer aan en leeg de cache. Voor beveiligingsuitbreidingen (Wordfence, Sucuri) geldt hetzelfde: uitschakelen voor de uitvoer, nadien weer aanzetten.

Ja, maar het is lastiger, want WordPress.com (de gehoste versie) beperkt de toegang tot de bestanden. De werkwijze: 1) voer de inhoud uit via Outils → Exporter in wp-admin (dat levert een XML-bestand op); 2) installeer WordPress.org op uw hosting; 3) voer het XML-bestand in via Outils → Importer → WordPress. Zo komen artikelen, pagina's, media en reacties mee, maar niet de betalende thema's van WordPress.com (opnieuw kopen of vervangen). Reken op 4 tot 8 uur, met wat bijwerk aan de vormgeving.