WordPress sur son 301, changement de domaine

Code 301: Redirection permanente qui peut être utilisée pour des pages ou sur la totalité d’un site. Les moteurs de recherche interprètent cette redirection et mettent à jour automatiquement leur index en remplaçant l’ancienne(s) URL par la nouvelle(s).

WordPress, changer de Nom de Domaine

J’ai récemment changé le nom de domaine de mon site, cette opération bien qu’assez simple nécessite cependant d’être rigoureux et ordonné. Avant de procéder à la redirection 301 proprement dite, il vous faut d’abord déménager WordPress, pour ce faire, il existe plusieurs méthodes :

Option 1 – Copiez, collez et utilisez

  • Installez WordPress sur votre nouveau domaine
  • A l’aide d’un logiciel de FTP (Filezilla), copiez tous les fichiers de votre ancien domaine vers le nouveau
  • Exportez l’ancienne base de données (BDD) et importez là dans votre nouvelle base
  • Procédez aux changements dans la nouvelle base de données, remplacez anciendomaine.com par nouveaudomaine.com, vous trouverez la procédure détaillée relative à la BDD sur Déplacer WordPress
  • Modifiez ensuite votre fichier WP-config.php et modifiez les valeurs relatives à la BDD
  • Connectez-vous à l’admin WordPress et modifiez l’adresse URL du site dans Réglages>>Général
Avantage : La manière la plus rapide à mettre en oeuvre, pour une copie à l’identique.
Inconvénient : On reprend les mêmes et on recommence. J’entends par là, que l’on réinstalle à l’identique son WordPress (articles, pages, thème, plugins, tables de la BDD, etc).

 

Option 2 – Exportez et importez

  • Procédez à l’export de l’intégralité de votre ancien WordPress via Outils>>Exporter, choisissez tout le contenu et sauvegardez le sur votre disque dur
  • Installez un WordPress tout neuf sur votre nouveau domaine et installez votre thème
  • Sur ce dernier, (re)installez les plugins dont vous avez (réellement) besoin
  • Importez sur le nouveau domaine tout le contenu (pages, articles, images, etc) avec Outils>>Importer
  • Procédez au nettoyage de la nouvelle Base de données, en effet les liens relatifs dans vos articles, pages, pointent encore vers l’ancienne URL, utilisez la procédure décrite sur Déplacer WordPress
  • C’est terminé, vous voilà avec un « nouveau » WordPress sur un nouveau domaine
Avantage : Utile si vous n’êtes pas à l’aise avec le FTP.
Inconvénient : La procédure est plus longue et vous oblige à (re)configurer quelques éléments de votre WP.

 

Astuce pour la BDD

Pour votre base de données et en bonus pour les fainéants dont je fais partie, l’ami Stéphane m’a fait passer un fichier PHP Safe Search Replace qui permet l’automatisation des changements d’URL dans la BDD. En résumé, ce fichier vous permet de remplacer en 3 clics toutes les URL relatives de l’ancien domaine et de les faire pointer vers le nouveau.

 WordPress sur son 301, changement de domaine safe search replace 300x153

Installé à la racine de votre domaine, il récupère automatiquement vos infos et logins BDD et procède aux changements sur les tables de votre choix. Lors de son utilisation, ce dernier n’a raté aucune URL et le process a duré moins de 3 secondes. Attention, une fois vos changements effectués, n’oubliez surtout pas de supprimer ce fichier!

Vous pouvez également utiliser le plugin Complete update urls, ce dernier s’occupera de tout, il vous suffira d’entrer vos URLs et le plugin procédera aux changements dans les pages, articles, plugins mais également dans votre base de données… Comme le dit si bien Georges: What else?

 WordPress sur son 301, changement de domaine redirect 301

On se met sur son 301, la redirection

Modifier le fichier .htaccess

Si vous savez que vous avez changé d’adresse, et même si WordPress le sait également, dites-vous bien que ce n’est pas le cas de tout le monde. Il vous faut procéder maintenant à la redirection proprement dite. Commencez par modifier le fichier .htaccess de votre ancien domaine avec le code suivant:

RewriteEngine On
RewriteCond %{HTTP_HOST} ^anciendomaine\.com$ [NC]
RewriteRule ^(.*)$ http://www.nouveaudomaine.com/$1 [R=301,L]

Une fois cette redirection mise en place, tout internaute qui saisira l’adresse suivante: anciendomaine/monarticle sera automatiquement redirigé vers nouveaudomaine/monarticle.

 WordPress sur son 301, changement de domaine htaccess

 

Google Webmaster Tools

Allez ensuite faire un tour du côté de chez Google Webmaster Tools (GWT) et enregistrez votre nouveau domaine. Sur la page de gestion de votre ancien domaine, rendez-vous dans Configuration>>Changement d’adresse et sélectionnez le nouveau domaine dans la liste puis procédez au changement. Cette procédure vous permettra de conserver (en théorie) votre page rank.

Il est conseillé de conserver la main sur l’ancien domaine pendant au moins 180 jours. Votre site, une fois installé sur son nouveau domaine, perdra environ 30 à 50% de son trafic habituel, il faudra compter en moyenne de 2 à 3 mois pour un retour à la normale. Surveillez attentivement vos 404 (pages d’erreurs) et procédez aux ajustements si nécessaire.

 WordPress sur son 301, changement de domaine Google Webmaster Tools 300x177

 

Enfin, n’oubliez pas

  • votre sitemap et de l’envoyer à GWT
  • vos signatures d’emails, de forums
  • vos échanges de liens, backlinks
  • vos réseaux sociaux
  • vos flux RSS
  • etc…
J’espère que ce tutoriel vous sera utile lors de votre prochain déménagement, n’hésitez pas à me faire part de vos remarques ou améliorations.

Pour ne plus rien manquer... Abonnez-vous à nos Newsletters!

Le meilleur de WP Formation dans votre boîte email...

Vous cherchez une formation pour créer votre site web, blog ou Ecommerce?

Toutes nos Formations WordPress sont éligibles au CIF, DIF, AIF, OPCA...

 WordPress sur son 301, changement de domaine formation WordPress 3 jours 134

33 commentaires

  1. Jean Michel Silone

    Bonsoir Fabrice,

    quelle méthode préconises-tu si l’installation à déplacer tourne sous une version antérieure de WordPress alors que le nouveau wp est, justement, nouveau ?.

    Ce que je veux dire c’est que la copie de l’intégralité des fichiers risque de mettre un peu le b….l non ?

    Merci de ton avis ;)

  2. Fabrice Ducarme

    Salut Jean Michel,

    Oui dans ce cas là, la méthode 1 est à proscrire!
    On peut, en revanche, parfaitement utiliser la 2.

  3. Jean Michel Silone

    Oui, je voyais bien les choses comme ça.
    En revanche, il y a un truc que j’ai toujours pas compris : les réglages du thème de l’ancienne install’ (menu/ background/page d’accueil etc…) sont perdus, quelque soit la méthode… ou alors je merdoie à chaque fois ?
    Du coup ça m’évoque la question suivante : ils se nichent dans quel fichier les réglages que l’on doit se retaper à la mi-mine ?
    C’est magique ou bien ?

  4. Fabrice Ducarme

    Si la méthode 2 est utilisée alors les réglages sont perdus, donc obligation de customiser à nouveau…
    La base des réglages se trouve dans la table wp_options.

  5. ninatraductions

    Bonjour,
    En fait, si j’ai bien compris, il y a plusieurs méthodes et il faut tester. Il vaut mieux penser à faire une petite sauvegarde avant;;;

  6. Ah punaise, va falloir que je teste Safe Search Replace parce que c’est vraiment relou de devoir se connecter à PHPMyAdmin pour modifier les « guid » des posts quand on passe de local à preprod et de preprod à prod.

    Pour la modification des options home_url et siteurl, on peut utiliser la constante define(‘RELOCATE’, true); pour que WordPress fasse la modification tout seul dès le 1er chargement du site.

  7. Bonjour Fabrice,
    merci pour l’article. Pour modifier les liens internes, je n’ai pas pu utiliser « Complete Update URLs » car il faut le faire AVANT le transfert et le php de Stéphane était un peu trop technique pour moi (risqué surtout quand tu es charette). Du coup, j’ai trouvé « Velvet Blues Update URLs » qui m’a permis de changer mes liens après la bascule et qui marche très bien.
    Bonne soirée
    isabelle

  8. Bonjour Isabelle,

    Merci de ces précisions, le fichier PHP est redoutable mais peut en rebuter certains…
    Excellente trouvaille que ce http://wordpress.org/extend/plugins/velvet-blues-update-urls/

  9. Safe Search pour la prod/preprod c’est du bonheur…

    Merci de la précision pour la constante ;p

  10. Justement j’allais te parler du regex pour éviter de casser des liens… En effet je précise qu’il est important car pour la moindre photo de l’ancien site migrée vers le nouveau, l’appel se fera vers l’ancien hébergement, mon astuce a été d’installer temporairement le plugin search regex pour ce faire, celui ci permettant de vérifier quel valeur sera modifiée, c’est aussi valable pour les citations par exemple « sur mon site tartenfion » pourra alors se transformer en « sur mon site WpFormation »…

  11. Salut Rodrigue,

    Excellent ce Search Regex, notamment pour des sites en cours en cas modifications 301 et/ou autres…
    Bon en même temps, quand j’ai passé la BDD à la moulinette de Safe Search Replace, plus une seule trace de l’ancien domaine;)

  12. Après avoir testé Safe Search Regex, je me rends compte qu’il ne fait pas du tout ce que je recherchais à la base : modifier le champ « guid » de la table wp_posts.

    En effet, il permet « uniquement » de faire une recherche d’un terme sur un titre, contenu ou commentaire et de le remplacer par ce que l’on souhaite.

    Par contre, le Velvet Blues Update URLs d’Isabelle fait ce que je demande en plus de pouvoir le faire sur les champs personnalisés et ça c’est juste énorme =D

    Voilà un plugin qui va me faire gagner pas mal de temps à plus d’un développeur pour la mise en production des sites.

    PS : il a gagné une futur présentation sur GeekPress =D)

  13. A chacun son plugin, les deux me seront utiles;)

    Puisqu’on en est à parler de GeekPress (et je suis hors sujet pour le coup), mais il me semble que Julio avait proposé un hack pour valider automatiquement les commentateurs avec + de 10 commentaires, est-il toujours valable? Il me semble que la dernière fois que je l’avais posé, il avait planté…

  14. Le hack en question est dispo ici : http://www.geekpress.fr/wordpress/astuce/valider-automatiquement-commentaires-1091/

    Après, s’il ne fonctionne plus, il faut tester, mais je suis septique vu que c’est du made by Julio.

  15. Bonsoir , une question juste un peu sur le coté de la table !! , si je souhaite juste remplacer un nom de domaine par un autre ( rien ne bouge juste l’Url principale au final en écrasant celui qui était au départ en phase test ) que dois je prévoir ? je suppose que mes liens externes /internes ( images ) vont exploser en vol , que la bdd va pointer sur l’ancien nom etc..un plugin pour ce cas ?.
    Dois je utiliser Velvet Blues Update URLs et repointer la Bdd ?

    Je recherche une méthodologie , pas à pas pour ne pas me planter !
    Avez vous cela dans les cartons ?
    Merci par avance à tous

  16. Bonjour Ness,
    Vous n’êtes pas à côté de la plaque et oui effectivement vos liens ne fonctionneront plus, donc pour le changement d’URL vous pouvez soit:

    – Suivre le tuto http://wpformation.com/deplacer-wordpress-nom-domaine/
    – Utiliser le plugin Velvet Bues
    – Essayer le fichier php Safe Search

  17. Merci pour votre réactivité et le tuto limpide !!
    J’ai un doute sur la chrono , avec en ligne de mire de mes inquiétudes de ne plus pouvoir accéder à mon admin du site. Si je résume :
    -Je contacte l’hebergeur OVH pour la migration du nom de domaine ( les deux sites chez ovh)
    – J’applique le tuto Mysql
    – Je lance le plugin Velvet ( déjà installé avant l’opération) .

    En suivant ce déroulement ai je une chance de limiter la casse ?
    Voyez vous des points de blocages dont je dois tenir compte , car j’ai peu de temps d’indisponibilité possible.

    Merci encore

  18. Houlà attention… Il s’agit bien de changer l’URL de votre domaine? Et non pas de déménager d’un domaine vers un autre?

    Par exemple, mon URL actuelle « monsite.com » doit devenir « monnouveausite.com », le tout restant sur le même serveur!

    Ceci étant dit, dans mon commentaire précédent il fallait comprendre, soit vous utilisez le tuto, soit le plugin ou bien encore le fichier Safe, pas les 3 à la fois;)

    Avant tout chose et afin de ne prendre aucun risque, faites une sauvegarde complète de votre site+BDD.

    Si vous avez des doutes sur la procédure consultez cet article: http://wpformation.com/services-sauvegarder-wordpress/, c’est gratuit pendant 7 jours, juste le temps de faire une sauvegarde complète et cela permet de migrer en automatique…

  19. désolé je n’étais pas clair dans le postulat .
    J’ai effectivement monté un site de remplacement tout neuf avec un nom de domaine actuel bidon que je vais écraser par celui du site actif via services ovh . L’ancien site va disparaître physiquement mais surtout pas le nom de domaine qui doit donc s’appliquer au nouveau site flambant neuf . Du coup je pensais ne pas bloquer le site trop longtemps et surtout faire perdurer l’excellent référencement du nom de domaine initial .
    Je suis parfois confus .

  20. Je vais suivre votre conseil et utiliser Blogvault . Cela semble être la meilleure solution pour moi .
    Je vais rechercher un tuto pour ne pas faire de boulettes .J’ai vu une vidéo mais trop courte pour bien cerner la manip .

  21. Bonjour, ce sujet tombe au bon moment, je suis en plein dedans..
    J’ai lu sur un autre blog ceci (je reprends l’intégralité). Un avis là-dessus, car je veux être sur de moi avant de lancer une redirection permanente..
    D’ailleurs, concernant la deuxième et 3ème ligne, je vois plein de codes différents (mais très ressemblants d’un site à l’autre).
    Merci pour vos retours

    Hébergements différents
    Il suffit de placer cette ligne dans le fichier .htaccess du domaine abandonné:
    RedirectPermanent / http://www.nouveau_domaine.com/

    Hébergement unique pour l’ancien et le nouveau domaine
    On placera ces quelques lignes dans le fichier .htaccess commun à l’ancien et au nouveau domaine :
    Options +FollowSymlinks
    RewriteEngine on
    RewriteCond %{HTTP_HOST} ^www.ancien_domaine.com$
    RewriteRule ^(.*) http://www.nouveau_domaine.com/$1 [QSA,L,R=301]

  22. Bonjour Christophe,
    Les 2 sont fonctionnels, l’important étant que tous les articles et pages de l’ancien domaine pointent vers le nouveau sans générer de 404. La modification .htaccess étant relativement simple à mettre en place ou à modifier, un test de 5 mn vous confortera dans votre choix.

    Pour ma part, redirection gérée depuis le .htaccess de l’ancien domaine, rien sur le nouveau;)

  23. Super, merci pour ta réponse.
    Une dernière question avant de me lancer.
    J’ai déjà un fichier access à la racine, avec tout un tas de ligne.
    Le code, je dois le placer où ? tout au début ?
    Merci

  24. La redirection prime sur le reste, donc au tout début cela me semble bien;)

  25. C’est fait, j’ai redirigé deux blogs sur un seul et même blog.
    Et comment dire, ça marche parfaitement, j’ai testé avec tout un tas d’adresse..
    Allez, je vais terminer le travail sur Google Webmaster Tools.
    Merci pour l’aide apportée !!!

  26. Bonsoir , un grand merci , j’ai suivi vos conseils et tout est ok ce soir .
    Sans encombre , le plugin Velvet fut génial pour mon cas , une modifications de la bd et tout roule .
    je vais attaquer le 301 et le Htaccess pour l’ancien site calmement , en relisant les posts ci dessus certain d’avoir les bonnes informations … Ce Blog est une mine d’or ,encore merci !!

  27. Bonsoir à tous , je reviens vers vous avec une question qui me turlupine quelque peu !!
    Je souhaite rediriger page par page un site sous Joomla vers le nouveau WordPress ( une dizaine pas plus) . Le problème rencontré est que les pages que je modifie en suivant le code redirect permanent 301 ne bronchent pas .. calmes et bien enracinées .
    J’ai essayé ceci tout en haut de la page sans espace via l’éditeur interne Joomla :

    header(« Status: 301 Moved Permanently », false, 301); header(« Location: http://www.tralala.org« ); exit();

    et en premier lieu ceci :

    Je note que l’éditeur me colle systématiquement deux tirets avant le point d’interrogation , en début et fin de ligne ..bref .Si vous avez une piste je suis preneur !
    Merci par avance
    A bientôt

  28. Merci pour ce bon article.

    Personnellement je préfère modifier les URL manuellement dans la base de données. Si l’on si connait un petit peu en SQL autant effectuer les recherches soit-même. Au moins, il n’y a pas besoin de s’inquiéter pour savoir si le plugin ou le script PHP est adapté à la structure des tables des dernières versions de WordPress.

  29. Super article merci!
    J’ai fait ma modif de DNS mais mon PR est toujours à 0. Ca fait plus de 6 mois…
    Mon problème ne vient il pas de mon fichier .htaccess? :
    # Redirection 301 du sous domaine www
    Options +FollowSymlinks
    RewriteEngine on
    RewriteCond %{HTTP_HOST} ^www.weekendtopbonplan.fr$
    RewriteRule ^(.*) http://www.viree-malin.fr/$1 [QSA,L,R=301]
    # Redirection 301 (permanente) de l’ancien nom de domaine
    RewriteCond %{HTTP_HOST} ^(www.)?weekendtopbonplan.fr
    RewriteRule (.*) http://www.viree-malin.fr/$1 [R=301,L]
    SetEnv PHP_VER 5

    Ancien : weekendtopbonplan.fr
    New : viree-malin.fr
    Est ce bon?
    Merci

  30. Bonjour @Max, normalement un changement de nom de domaine commence par des redirections .htaccess puis se complète avec une déclaration via Google Webmaster Tools afin d’informer le moteur de recherche.

    Google Webmaster Tools: Sur la page de gestion de votre ancien domaine, rendez-vous dans Configuration>>Changement d’adresse et sélectionnez le nouveau domaine dans la liste puis procédez au changement. Cette procédure vous permettra de conserver (en théorie) votre page rank.

    Il est conseillé de conserver la main sur l’ancien domaine pendant au moins 180 jours. Il faut compter en moyenne de 2 à 3 mois pour un retour à la normale…

    Dans votre cas, la redirection .htaccess semble correcte!

  31. Bonjour !
    Il semblerait qu’une erreur de taille se soit glissée dans cet article !
    Pour effectuer une redirection 301, vous indiquez le code suivant:

    RewriteEngine On
    RewriteCond %{HTTP_HOST} ^nouveaudomaine.com$ [NC]
    RewriteRule ^(.*)$ http://www.nouveaudomaine.com/$1 [R=301,L]

    Une confusion avec deux occurrences de « nouveaudomaine.com »

    Le code correct est bien entendu le suivant:

    RewriteEngine On
    RewriteCond %{HTTP_HOST} ^anciendomaine.com$ [NC]
    RewriteRule ^(.*)$ http://www.nouveaudomaine.com/$1 [R=301,L]

    A modifier, car le code affichée évidement ne fonctionne pas !

    Bonne continuation !

  32. Merci @James c’est corrigé;)

  33. Merci de ton astuce ça me sauve la vie