Récemment, j’ai dû déplacer le dossier WordPress du site pour avoir accès aux thèmes WordPress gratuits mis à disposition par mon hébergeur. Après quelques heures, le plugin Broken Link Checker me signalait déjà plus de 700 liens incorrects à cause du déplacement du dossier WordPress du site PEI 🙁
Après avoir corrigé plus de 50 liens à la main, je me suis dit qu’il devait certainement y avoir un moyen plus rapide pour mettre à jour tous les liens d’un site WordPress… et c’est justement ce que je vais vous partager dans cet article.
Ce qui suit peut également vous faire gagner beaucoup de temps dans les situations suivantes:
- vous avez changé le nom de domaine de votre site
- vous avez changé l’emplacement du dossier wp-content de votre site
- vous avez installé un certificat SSL et souhaitez passer tous vos liens en https (dans ce cas, vous pouvez aussi simplement utiliser cette extension WordPress qui fera le job automatiquement)
Mettre à jour les URL d’un site WordPress dans sa base de données MySQL
Pour des raisons de sécurité, certains hébergeurs (dont Infomaniak) bloquent l’usage d’extensions comme Search & Replace qui permettent de mettre à jour les liens d’un site WordPress en quelques clics. Etant dans ce cas de figure, j’ai donc été contraint d’apprendre à faire cela manuellement via la base de données MySQL de mon site WordPress.
Je vous vois déjà trembler… mais c’est tout à fait faisable si vous avez un peu l’habitude de bidouiller et de chercher des solutions pour faire tourner votre bon vieux site WordPress 😉

Commencez par sauvegarder la base de données MySQL de votre site WordPress afin de pouvoir rétablir la situation en cas de problème. Ensuite, connectez-vous à la base de données de votre site via phpMyAdmin. Sélectionnez ensuite la base concernée (1), cliquez sur l’onglet SQL (2), puis utilisez les requêtes SQL suivantes (3) en prenant bien soin d’adapter les valeurs concernées selon vos besoins.
La requête suivante met à jour l’adresse de votre site dans les options de WordPress:
UPDATE wp_options SET option_value = replace(option_value, 'http://ancienneURL', 'http://www.nouvelleURL') WHERE option_name = 'home' OR option_name = 'siteurl';
La requête suivante change l’URL relative des articles dans la table wp_posts:
UPDATE wp_posts SET guid = replace(guid, 'http://www.ancienneURL','http://www.nouvelleURL');
La requête suivante met à jour les liens dans le contenu de vos articles et vos pages:
UPDATE wp_posts SET post_content = replace(post_content, 'http://www.ancienneURL', 'http://www.nouvelleURL');
La requête suivante met à jour les liens dans la table wp_postmeta:
UPDATE wp_postmeta SET meta_value = replace(meta_value,'http://www.ancienneURL','http://www.nouvelleURL');
Remarques importantes:
- ancienneURL: l’ancienne adresse URL de votre site / l’ancien chemin à corriger
- nouvelleURL: la nouvelle adresse URL de votre site / le nouveau chemin correct
- si vous passez vos liens en https, n’oubliez pas de remplacer http:// par https:// dans la nouvelle URL
- si vous n’utilisez pas le préfixe wp_ par défaut dans vos tables, n’oubliez pas de l’adapter
Cliquez ensuite sur le bouton Exécuter (4).
Laisser un commentaire