Je domeinnaam veranderen met WP-CLI

Heb je een goed lopende website en besloten een beter passend domein te gaan gebruiken? Het is dan erg belangrijk dat het wijzigen van dat domein goed wordt doorgevoerd. Zo voorkom je zaken als niet-werkende afbeeldingen en links, zodra je het huidige domein laat vervallen. Met behulp van WP-CLI is in binnen WordPress de domeinnaam veranderen een fluitje van een cent! Lees hoe je het aanpakt.

Je domeinnaam veranderen met WP-CLI

Om met het doorvoeren van de domeinnaamwijziging te kunnen beginnen, is het van belang dat WP-CLI op je hostingpakket is geïnstalleerd. Bekijk hiervoor mijn installatiehandleiding over WordPress via de command line. Verder ga ik ervan uit dat je het nieuw te gebruiken domein inmiddels hebt geregistreerd. Beide voor elkaar? Top, we kunnen dan aan de slag.

Variabelen voor de domeinwijziging

We laten WP-CLI mooi het zware werk doen. Er hoeven daarom alleen enkele variabelen opgegeven te worden. Merk op dat de domeinen die hieronder staan slechts voorbeelden zijn. Ga je straks de commando’s uitvoeren, dan is het belangrijk dat je deze voorbeelddomeinen vervangt met de domeinen die in jouw situatie van toepassing zijn.

export DA_DOMAIN=directadmindomein.nl
export DOMAIN_OLD=huidigedomeinnaam.nl
export DOMAIN_NEW=nieuwedomeinnaam.com
  • DA_DOMAIN: het domein, waaronder de installatie in DirectAdmin staat.
  • DOMAIN_OLD: het huidige (sub)domein dat in WordPress ingesteld staat.
  • DOMAIN_NEW: het nieuwe domein waar je het naar gaat wijzigen.

Wanneer je de domeinnaam naar een geheel ander domein gaat veranderen, bijvoorbeeld een aliasdomein, dan kun je DOMAIN_OLD ook de waarde van DA_DOMAIN geven.

export DA_DOMAIN=directadmindomein.nl
export DOMAIN_OLD=$DA_DOMAIN
export DOMAIN_NEW=nieuwedomeinnaam.com

Als je de installatie nu op een subdomein hebt geïnstalleerd en je wil deze naar de domeinnaam zelf of een aliasdomein gaan wijzigen, dan kun je de waarden op deze manier instellen.

export DA_DOMAIN=directadmindomein.nl
export DOMAIN_OLD=subdomein.$DA_DOMAIN
export DOMAIN_NEW=nieuwedomeinnaam.com

Domeinwijziging met WP-CLI uitvoeren

Voor het daadwerkelijk doorvoeren van de domeinnaamverandering, zijn een aantal handelingen nodig. Deze stappen staan hieronder uiteengezet.

Je domeinnaam veranderen met WP-CLI

#1. Inloggen op je hostingpakket via SSH

Om WP-CLI te kunnen gaan gebruiken, is het allereerst van belang dat je inlogt op je hostingpakket via SSH. Raadpleeg daarvoor onze SSH-handleiding.

#2. WP-CLI installeren en configureren

Je moet eerst WP-CLI installeren. Vervolgens stel je een aantal algemene variabelen in, zodat je de hier omschreven domeinwijziging kunt doorvoeren.

export wp=/home/$(whoami)/bin/wp
export WP_CLI_PACKAGES_DIR=/home/$(whoami)/bin/.wp-cli/packages
export WP_CLI_CACHE_DIR=/home/$(whoami)/bin/.wp-cli/cache

De specifieke variabelen die je voor de installatie nodig hebt, zijn als volgt.

export DA_DOMAIN=directadmindomein.nl
export DOMAIN_OLD=huidigedomeinnaam.nl
export DOMAIN_NEW=nieuwedomeinnaam.com
export WP_PATH=/home/$(whoami)/domains/${DA_DOMAIN}/public_html

De variabele WP_PATH is voor het absolute pad naar de betreffende WordPress-installatie. Een standaard installatie staat in de map /public_html/ van het domein geïnstalleerd. Een subdomeininstallatie staat echter in een map binnen de /public_html/ (zie hieronder).

export WP_PATH=/home/$(whoami)/domains/${DA_DOMAIN}/public_html/subdomein

#3.WP-CLI het domein laten wijzigen

Het gelijk doorvoeren van de domeinwijziging, kan betekenen dat de website ineens niet meer goed functioneert. Om dit zoveel mogelijk te voorkomen, laten we WP-CLI de huidige URL in de wp-config.php instellen, zodat die waarden gebruikt worden in plaats van de in de database opgeslagen URL.

$wp config set WP_SITEURL $($wp option get siteurl --path=$WP_PATH --skip-themes --skip-plugins) --path=$WP_PATH --skip-themes --skip-plugins
$wp config set WP_HOME $($wp option get home --path=$WP_PATH --skip-themes --skip-plugins) --path=$WP_PATH --skip-themes --skip-plugins

Nadat deze constanten zijn ingesteld, kan de daadwerkelijke domeinwijziging binnen de installatie doorgevoerd gaan worden.

$wp search-replace $DOMAIN_OLD $DOMAIN_NEW --all-tables --path=$WP_PATH --skip-themes --skip-plugins 
$wp search-replace $DOMAIN_OLD $DOMAIN_NEW --all-tables --path=$WP_PATH --skip-themes --skip-plugins --regex --precise
$wp search-replace http://www.$DOMAIN_NEW https://www.$DOMAIN_NEW --all-tables --path=$WP_PATH --skip-themes --skip-plugins
$wp search-replace http://$DOMAIN_NEW https://$DOMAIN_NEW --all-tables --path=$WP_PATH --skip-themes --skip-plugins 
$wp search-replace 'http:\/\/' 'https:\/\/' --all-tables --path=$WP_PATH --skip-themes --skip-plugins

Door --dry-run aan de commando’s toe te voegen, kun je eerst bekijken hoeveel wijzigingen er doorgevoerd gaan worden. Dat kan dus slim zijn om eerst te doen, voordat je het definitief uitvoert.

Noteer het tijdstip
Bekijk hoe laat je onderstaande commando’s gaat uitvoeren. Gaat er bij het veranderen van het domein iets mis, dan kun je de laatste backup van voor dat tijdstip gebruiken om een backupherstel uit te voeren.

#4. Domeinnaam wijzigen in DirectAdmin

Nu is het moment om het domein in DirectAdmin aan te passen. Raadpleeg hiervoor dit stappenplan waarin staat hoe het hoofddomein wijzigen werkt.

#5. WP_SITEURL en WP_HOME verwijderen

Bij stap 3 hebben we de eerder ingestelde URL van de website aan de wp-config.php toegevoegd. Om de website ook inderdaad via het nieuwe domein te gebruiken, is het van belang dat deze waarden weer worden verwijderd. Eerst stellen we daarom de WP_PATH opnieuw in met het nieuwe pad.

export WP_PATH=/home/$(whoami)/domains/${DOMAIN_NEW}/public_html

Daarna kunnen we de beide waarden uit de wp-config.php verwijderen.

$wp config delete WP_SITEURL --path=$WP_PATH --skip-themes --skip-plugins
$wp config delete WP_HOME --path=$WP_PATH --skip-themes --skip-plugins

#6. Cache binnen de installatie verwijderen

Als je een caching plugin gebruikt of het actieve thema eigen caching hanteert, dan is het belangrijk dat de oude cache verwijderd wordt.

Cache opruimen met WP-CLI

Algemene cache

Caching plugins zetten de cachebestanden doorgaans in een map ‘cache’ die in de /wp-content/-map staat. Met deze code wordt er eerst gekeken of die map bestaat. Zo ja, dan wordt deze verwijderd.

if [ -d "${WP_PATH}/wp-content/cache" ]; then
	rm -rf ${WP_PATH}/wp-content/cache
	mkdir ${WP_PATH}/wp-content/cache
fi

Vaak bestaat er dan eveneens een advanced-cache.php-bestand, welke ook in de /wp-content/-map staat. In dat bestand staan bestandspaden vermeld die na het wijzigen van het domein niet meer overeenkomen met wat er voor de installatie gebruikt wordt.

Met behulp van deze code wordt het oude domein in die bestandspaden omgezet naar het nieuwe domein. Let op: deze code is voor wanneer de installatie omgezet wordt van losstaand domein (geen subdomein) naar een ander losstaand domein.

if [ -f "${WP_PATH}/wp-content/advanced-cache.php" ]; then
	sed -i "s/${DA_DOMAIN}/${DOMAIN_NEW}/g" "${WP_PATH}/wp-content/advanced-cache.php"
fi

W3 Total Cache

Als je W3 Total Cache voor je website gebruikt, dan is het belangrijk dat alle soorten cache worden geleegd. W3 Total Cache integreert met WP-CLI, waardoor je de actieve cache-types gelukkig makkelijk kunt flushen.

$wp w3-total-cache flush all --skip-themes --path=$WP_PATH

WP Super Cache

Ook WP Super Cache heeft de mogelijkheid om met behulp van WP-CLI de cache te legen. Gebruik hiervoor het onderstaande commando.

$wp super-cache flush --skip-themes --path=$WP_PATH

Elementor

Voor de pagina’s die met de Elementor pagebuilder zijn aangemaakt, wordt veel data in de database opgeslagen. Elementor heeft een eigen functie om het domein te wijzigen die via het WordPress Dashboard kan worden gebruikt. Met behulp van deze commando’s wordt de domeinverandering doorgevoerd en de aangemaakte CSS-cache geflusht.

$wp elementor replace_urls "http://${DOMAIN_OLD}" "https://${DOMAIN_NEW}" --path=$WP_PATH --skip-themes
$wp elementor replace_urls "https://${DOMAIN_OLD}" "https://${DOMAIN_NEW}" --path=$WP_PATH --skip-themes
$wp elementor flush_css --path=$WP_PATH --skip-themes

Avada-thema

Het populaire thema Avada heeft twee eigen cache-mappen, waarin opgebouwde cache staat met het oude domein. Door die mappen te verwijderen, kan Avada de cache opnieuw met het juiste domein opbouwen. Als je dit thema gebruikt, dan regel je dit met onderstaande commando’s.

rm -rf $WP_PATH/wp-content/uploads/fusion-scripts
rm -rf $WP_PATH/wp-content/uploads/fusion-styles

#7. Test je website op het nieuwe domein

Na wijzigingen als deze is het belangrijk dat de website goed getest wordt, zodat je zeker weet dat alles nog net zo werkt als eerder. Klik er dus doorheen, totdat je hebt vastgesteld dat het naar verwachting werkt.

Aandachtspunten

Als je reCAPTCHA op je website gebruikt, dan is het belangrijk dat het nieuwe domein aan de reCAPTCHA keys wordt toegevoegd. Als daar alleen het oude domein staat ingesteld, dan zullen je bezoekers namelijk geen formulieren meer kunnen versturen.

Hoewel er bij stap 6 voor drie specifieke plugins en één logo commando’s vermeld staan om de cache te verwijderen, is dat niet allesomvattend. Caching plugins hebben uiteraard het cachen overeen, maar zoals bij die stap ook te zien is, bestaat er geen eenduidige manier om de cache voor al die plugins te legen. Het kan dus nodig zijn om handmatig de cache van je website te legen.

Als je ten slotte voor het bijhouden van de statistieken van je website Google Analytics gebruikt, dan is het van belang dat je het domein daar ook bijwerkt.

Klaar!

Als je deze stappen hebt doorlopen, dan heb je zelf de domeinnaamwijziging uitgevoerd met behulp van WP-CLI 🥳 Wil het onverhoopt toch niet helemaal lukken? Dan kunnen wij het wijzigen van je domein ook voor je uitvoeren!

Bekijk premium diensten →

P.S. Op de hoogte blijven van alle artikelen, updates, tips en trucs die op ons blog verschijnen? Volg ons via Facebook, Twitter, Instagram, RSS en e-mail!

Deel Deel Deel Deel

3 reacties op “Je domeinnaam veranderen met WP-CLI

  1. Wat ook belangrijk is, zijn de bots die jaren lang nog naar het oude domein blijft scannen en dus iedere keer word doorverwezen… dit is extra verkeer…

    Is dit met CLI ook op te lossen?

    • Hi Edu,

      Om bots te helpen bij het opnemen van het nieuwe domein (en daarmee laten vallen van het oude domein), is het aan te raden het oude domein als een pointer in te stellen. Op die manier worden bots (en bezoekers) middels een 301 Redirect naar het nieuwe domein doorgestuurd en zal het nieuwe domein ook automatisch worden opgenomen in de zoekresultaten (die het oude domein vervangen).

      In ons blog ‘Multi-domein marketing: 3 methoden om succesvol meer domeinen in te zetten!’ vertellen we meer over (onder andere) 301 Redirects. Zie: https://www.antagonist.nl/blog/2017/11/multi-domein-marketing/

      Veel succes!

Geef een reactie

Het e-mailadres wordt niet gepubliceerd. Vereiste velden zijn gemarkeerd met *