Agence web » Actualités du digital » Quelle est la différence entre les redirections 301 et 302 ?

Quelle est la différence entre les redirections 301 et 302 ?

Si vous avez déplacé votre contenu, il est préférable de rediriger les anciens liens rompus vers l’emplacement de travail. Il existe deux types de redirections: 302, utilisées pour les tests, et 301, qui est permanente et la meilleure pour le référencement.

302 est temporaire, 301 est permanent

Les deux types de redirection produisent le même effet. Lorsqu’un utilisateur tente d’accéder à des ressources redirigées (par exemple, la version HTTP d’un lien HTTPS), le serveur Web envoie un code de réponse 301 ou 302 au navigateur de l’utilisateur, ainsi qu’un lien vers la destination prévue. Le navigateur de l’utilisateur fera alors immédiatement une autre demande vers la page appropriée, en les redirigeant efficacement.

La différence réside dans ce qui se passe la deuxième fois qu’un utilisateur visite cette page. Si vous diffusez une redirection 302, le navigateur la considérera comme temporaire. Dans l’exemple HTTPS, le navigateur continuera à envoyer des requêtes à la version HTTP non sécurisée de la page et le serveur Web continuera à envoyer 302 codes de réponse à chaque fois.

Cela est mauvais pour les performances de votre site, car un utilisateur devra effectuer plus de voyages aller-retour vers le serveur Web pour se rendre à la destination prévue. Pour résoudre ce problème, vous pouvez utiliser une redirection 301. Lorsque le navigateur essaie de faire une deuxième demande, il vérifie son cache et se souvient que l’URL est censée être redirigée, et redirige automatiquement sans déranger le serveur. Une redirection 301 est censée être envoyée une fois et rediriger pour toujours.

Cela signifie qu’une redirection 301 est très permanente. Chrome s’en souviendra jusqu’à ce que l’utilisateur efface le cache, ce qui est une opération manuelle. Si vous avez accidentellement effectué une redirection 301 incorrecte, cela peut entraîner des problèmes sur toute la ligne. Par conséquent, vous souhaiterez toujours tester les modifications avec une redirection 302 pour vérifier qu’elle fonctionne, puis déployer une redirection 301.

Comment cela affecte-t-il le référencement?

La plupart du temps, les moteurs de recherche comme Google verront une redirection 301 et mettront à jour leur classement de recherche en conséquence. Si vous modifiez des noms de domaine, vous souhaiterez 301 rediriger les liens de votre ancien domaine vers les pages du nouveau domaine. Cela conduira votre nouveau domaine à remplacer votre ancien dans les classements de recherche, ce qui est (probablement) ce que vous voulez.

En fin de compte, devoir rediriger votre site ne nuira probablement pas beaucoup à votre référencement. Entre 90 et 99% du classement de votre site sera transféré lors du changement de votre nom de domaine complet, donc la redirection de quelques pages ne fera aucun mal. Notez que cela ne s’applique qu’aux redirections 301: les redirections 302 sont temporaires et n’auront aucun effet immédiat sur votre classement, mais peuvent vous faire glisser à long terme si vous ne passez pas au 301.

Comment configurer des redirections dans Nginx

Dans Nginx, vous pouvez implémenter des redirections en utilisant le rewrite directif. Cela correspondra à une chaîne avec une expression régulière et redirigera l’utilisateur vers une URL modifiée. Si vous souhaitez simplement rediriger une ancienne page vers une nouvelle page, vous pouvez sélectionner le nom de la page et la remplacer par une réécriture:

server {
  server_name www.example.com;
  rewrite ^/old_page.html$ new_page.html redirect;
}

Ensuite, si vous voulez en faire une redirection permanente, remplacez «rediriger» par «permanent»:

rewrite ^/old_page.html$ new_page.html permanent;

Vous pouvez utiliser la même syntaxe pour faire correspondre plusieurs pages. Par exemple, si vous souhaitez mapper un domaine entier à un nouveau domaine, vous pouvez utiliser:

server {
  server_name olddomain.com;
  rewrite ^/(.*)$ https://newdomain.com/$1 permanent;
}

Pour rediriger HTTP vers HTTPS, vous souhaiterez plutôt utiliser un bloc d’écoute sur le port 80 qui redirigera tout le trafic en servant manuellement un 301:

server {
  listen 80;

  server_name example.com;
  return 301 https://example.com$request_uri;
}

Comment configurer des redirections dans Apache

Pour Apache, la configuration est également simple. Pour les redirections de base, vous pouvez utiliser le Redirect , qui prend deux arguments: l’ancienne page et la nouvelle page.

Redirect /oldpage https://www.example.com/newpage

Il s’agit par défaut d’une redirection 302, mais vous pouvez la rendre permanente en utilisant « Redirect 301« .

La directive Redirect prend des paramètres manuels, mais vous pouvez utiliser RedirectMatch pour faire correspondre les URL avec des expressions régulières. Par exemple, pour remapper un dossier comme /img à un sous-domaine, vous pouvez utiliser:

RedirectMatch ^/img/(.*)$ http://media.example.com/$1

Pour rediriger HTTP vers HTTPS, vous devez utiliser:

RewriteEngine On 
RewriteCond %{SERVER_PORT} 80 
RewriteRule ^(.*)$ https://www.yourdomain.com/$1 (R,L)

La valeur par défaut est 302, mais vous pouvez la rendre permanente en définissant le code retour à la fin:

RewriteRule ^(.*)$ https://www.yourdomain.com/$1 (R=301,L)

★★★★★