web-dev-qa-db-fra.com

Utilisation des redirections 301 pour changer de domaine et maintenir le référencement

Je suis en train de configurer un site Web Wordpress avec un nouveau nom de domaine pour remplacer le site Web actuel de mon client. Je souhaite rediriger l’ancien domaine vers le nouveau domaine de manière à maintenir dans la mesure du possible le classement des moteurs de recherche de l’ancien site. Une fois le nouveau site prêt, mon plan consiste à déplacer l'ancien nom de domaine vers un domaine parqué sur le nouveau serveur, puis à utiliser les redirections 301 pour rediriger les demandes d'ancien nom de domaine et de pages HTML vers le Wordpress correspondant. pages sur le nouveau domaine. Ainsi, à titre d'exemple, une demande de http://www.olddomain.ca/success-stories.html serait redirigée vers https://newdomain.com/testimonials/ .

J'ai testé les redirections pour chaque page html sur le nouveau serveur et cela semble fonctionner correctement, mais je ne sais pas comment tester la redirection de l'ancien nom de domaine tant qu'il n'est pas configuré en tant que domaine parqué pointant vers le nouveau serveur. .

J'ai donc deux questions:

  • Cette approche permettra-t-elle de maintenir le classement des moteurs de recherche de l'ancien site ou existe-t-il un meilleur moyen?
  • Ces règles redirigeront-elles le domaine parqué vers le nouveau domaine (en plus de la suppression de www)?

    RewriteCond %{HTTP_Host} !^newdomain\.com [NC]
    RewriteRule ^(.*)$ https://newdomain.com/$1 [R,L]
    

J'utilise actuellement les redirections 302, mais je passerai à 301 une fois les tests terminés. C’est la première fois que je travaille avec le fichier htaccess, je me félicite donc de toute suggestion sur la façon de l’améliorer.

# Redirect HTML pages from old site to new equivalents
RewriteEngine On
RewriteBase /
RewriteRule ^index\.html?$ / [NC,R,L]
RewriteRule ^about-us\.html?$ /about/ [NC,R,L]
RewriteRule ^coaching\.html?$ /services/ [NC,R,L]
RewriteRule ^how-we-do-it\.html?$ /services/ [NC,R,L]
RewriteRule ^news-calendar\.html?$ / [NC,R,L]
RewriteRule ^philosophy\.html?$ /about/ [NC,R,L]
RewriteRule ^services\.html?$ /services/ [NC,R,L]
RewriteRule ^success-stories\.html?$ /testimonials/ [NC,R,L]
RewriteRule ^teams\.html?$ /services/ [NC,R,L]
RewriteRule ^training\.html?$ /services/ [NC,R,L]

# Remove WWW Prefix, enforce HTTPS, and redirect parked domain
RewriteEngine On
RewriteCond %{SERVER_PORT} 80 [OR]
RewriteCond %{HTTP_Host} !^newdomain\.com [NC]
RewriteRule ^(.*)$ https://newdomain.com/$1 [R,L]

# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>
# END WordPress
4
Tom Monks

1) En appliquant des redirections 301, vous indiquez en principe aux moteurs de recherche que vous avez déplacé cette page ou ce groupe de pages à un autre emplacement. Pas de problèmes ici, tout va bien.

À plusieurs reprises, Google a déclaré que 301 n’auraient aucun impact sur le transfert du pouvoir de classement des liens pointant vers vos anciennes URL. Donc, pour répondre à votre première question, soyez assuré que vous ne perdrez aucun classement de cette façon.

Cependant, vous pourriez perdre le classement de plus de 200 autres facteurs de classement qui devront être réévalués une fois que vous aurez mis en ligne le nouveau site Web. Vous pourriez perdre des classements pour modifier la présentation, la structure et la conception du site Web, créer un nouveau contenu, etc. Vous pourriez également perdre le classement même en changeant de serveur, le site Web sera différent partie importante.

Avant de décider de migrer, de mettre à niveau ou d’améliorer un site Web, nous nous attendons à ce que nous connaissions les besoins de nos clients ou à ce que nous ayons suffisamment appris de nos expériences passées pour que nos chances d’avoir un impact positif sur l’entreprise ou, surtout, sur nos utilisateurs. base. Mais malheureusement, ce n'est pas toujours le cas.

2) le code htaccess a l’air beau, mais ne me prenez pas Word, vous devez le tester car chaque environnement est différent. Assurez-vous que lorsque vous essayez de rediriger une URL, spécialement la page d’accueil, vous ne faites pas plus d’une redirection.

Ainsi, par exemple, si vous redirigez exemple-old.com vers exemple-new.com, assurez-vous de ne pas tout d'abord rediriger vers www.exemple-old.com, puis vers exemple-new.com.

Faites des tests afin que vous puissiez être sûr que ce soit www. Ou non www. la version du site redirigera toujours vers example-new.com

4
Raul Reyes

Commentaire: Je vais continuer à tester pour m'assurer qu'il ne fait pas plus d'une redirection.

Les directives que vous avez publiées déclencheraient plusieurs redirections si vous demandiez l'ancien domaine .

# Redirect HTML pages from old site to new equivalents
RewriteEngine On
RewriteBase /
RewriteRule ^index\.html?$ / [NC,R,L]
RewriteRule ^about-us\.html?$ /about/ [NC,R,L]
:

Sauf si vous incluez le nouveau domaine dans la substitution, vous allez alors rediriger /about-us.html vers /about/ sur l'ancien ancien domaine - avant étant redirigé vers new-domain.com/about/ (par votre redirection attrape-tout).

Donc, vos redirections devraient être de la forme:

RewriteRule ^index\.html?$ https://newdomain.com/ [NC,R,L]
RewriteRule ^about-us\.html?$ https://newdomain.com/about/ [NC,R,L]
:

(À moins que vous n'ayez supprimé l'indicateur L de ces directives afin qu'elles soient transmises et capturées par la redirection fourre-tout qui suit - cependant, cela serait moins fiable et plus sujet aux erreurs.)

RewriteCond %{HTTP_Host} !^newdomain\.com [NC]

Vous devez supprimer le drapeau NC de cette condition négative . Vous souhaitez que la redirection se produise lorsque l'hôte n'est pas "newdomain.com" (toutes en minuscules). Vous souhaitez toujours rediriger "NEWDOMAIN.COM" (une requête malformée). Si vous incluez l'indicateur NC, "NEWDOMAIN.COM" ne sera pas redirigé, car la condition échouerait.

RewriteEngine On
RewriteBase /

De plus: Il suffit d'inclure ces directives une seule fois dans le fichier (en fait, vous ne semblez pas utiliser du tout RewriteBase dans le code que vous avez posté). Si vous incluez ces directives plusieurs fois, la directive last gagne et contrôle tout le fichier.

2
MrWhite