Qu’est-ce que les redirections 301 ?

Dans le monde du web, les redirections 301 (redirections permanentes de pages web et de médias) sont essentielles en matière de SEO (optimisation pour les moteurs de recherche) lorsqu’un site web est entièrement refait. Elles permettent de ne pas perdre les positions acquises dans les moteurs de recherche par l’indexation des anciennes pages. En effet, dans le cadre d’une refonte, les URL (adresses des pages) sont susceptibles d’être toutes modifiées, ainsi que les chemins vers les différents médias, eux-mêmes indexés par les moteurs de recherche. Ces redirections 301 sont également l’occasion d’améliorer le SEO en optant pour des URL optimisées pour le SEO, en incluant des mots-clés pertinents en rapport avec le contenu.
Le grand principe des redirections 301est d’indiquer aux moteurs les correspondances entre les anciennes adresses et les nouvelles.

Cas d’école : le Club Alpin Français de Bourg-en-Bresse

Nous avons a effectuer ce type de redirections pour rediriger les pages de l’ancien site du Club Alpin Français de Bourg-en-Bresse (https://www.clubalpinbourgenbresse.fr) vers celles du nouveau site web (https://www.clubalpin01.fr/) que nous avons livré début octobre 2025.

Procédure détaillée de redirections 301 pour un projet sous Symfony

Voici la procédure détaillée pour mettre en place des redirections 301 entre deux sites web avec des noms de domaine différents, dans le cadre d’un projet Symfony. Cette méthode garantit que les anciens liens pointent vers les nouvelles URL de manière permanente, ce qui est essentiel, comme nous l’avons dit, pour le référencement (SEO) et l’expérience utilisateur.

1. Préparation des fichiers et de l’environnement

1.1. Identifier les URL sources et cibles

  • Liste des URL : Établissez une liste exhaustive des anciennes URL (source) et leurs correspondantes sur le nouveau site (cible). Cela peut être un fichier CSV, une base de données ou un tableau.

    Exemple :

1.2. Vérifier l’accès au serveur

  • Assurez-vous d’avoir accès au serveur hébergeant l’ancien site (via SSH, FTP, ou un panneau d’administration comme cPanel ou Plesk).
  • Vérifiez que vous pouvez modifier les fichiers .htaccess (sur un serveur Apache) ou la configuration du serveur web (sur un serveur Nginx).

2. Mise en place des redirections 301

2.1. Redirections via .htaccess (Apache)

Si votre ancien site est hébergé sur un serveur Apache, utilisez le fichier .htaccess à la racine du site.

Exemple de syntaxe pour une redirection 301 :

Redirect 301 /ancienne-page https://nouveau-site.fr/nouvelle-page

Pour des redirections massives : Utilisez mod_rewrite pour des règles plus complexes.

RewriteEngine On
RewriteRule ^produit/([0-9]+)$ https://nouveau-site.fr/catalogue/$1 [R=301,L]

Rediriger tout le site vers un nouveau domaine :

RewriteEngine On
RewriteCond %{HTTP_HOST} ^ancien-site.fr$ [OR]
RewriteCond %{HTTP_HOST} ^www.ancien-site.fr$
RewriteRule (.*)$ https://nouveau-site.fr/$1 [R=301,L]

2.2. Redirections via Nginx

Si votre serveur utilise Nginx, modifiez le fichier de configuration du site (généralement dans /etc/nginx/sites-available/).

Exemple de redirection 301 :

server {
    listen 80;
    server_name ancien-site.fr www.ancien-site.fr;
    return 301 https://nouveau-site.fr$request_uri;
}

Pour des redirections spécifiques :

location /ancienne-page {
    return 301 https://nouveau-site.fr/nouvelle-page;
}

2.3. Redirections via Symfony (si l’ancien site est toujours actif)

Si l’ancien site est toujours en Symfony et que vous souhaitez gérer les redirections directement dans l’application, utilisez un EventListener ou un Controller.

Exemple avec un Controller :

// src/Controller/RedirectionController.php
namespace App\Controller;

use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
use Symfony\Component\HttpFoundation\RedirectResponse;
use Symfony\Component\Routing\Annotation\Route;

class RedirectionController extends AbstractController
{
    #[Route('/ancienne-page', name: 'redirection_ancienne_page')]
    public function redirectAnciennePage(): RedirectResponse
    {
        return $this->redirect('https://nouveau-site.fr/nouvelle-page', 301);
    }
}

Exemple avec un EventListener :

// src/EventListener/RedirectionListener.php
namespace App\EventListener;

use Symfony\Component\HttpKernel\Event\RequestEvent;
use Symfony\Component\HttpKernel\KernelEvents;
use Symfony\Component\HttpFoundation\RedirectResponse;
use Symfony\Component\EventDispatcher\EventSubscriberInterface;

class RedirectionListener implements EventSubscriberInterface
{
    public static function getSubscribedEvents(): array
    {
        return [
            KernelEvents::REQUEST => 'onKernelRequest',
        ];
    }

    public function onKernelRequest(RequestEvent $event): void
    {
        $request = $event->getRequest();
        $path = $request->getPathInfo();

        if ($path === '/ancienne-page') {
            $event->setResponse(new RedirectResponse('https://nouveau-site.fr/nouvelle-page', 301));
        }
    }
}

3. Validation et tests

3.1. Tester les redirections

  • Utilisez un outil comme le Vérificateur de redirection d’URL de Sitechecker ou la console Chrome (onglet Network) pour vérifier que les redirections renvoient bien un code 301.
  • Testez manuellement plusieurs URL pour confirmer qu’elles pointent vers les bonnes pages.

3.2. Mettre à jour les outils de suivi

  • Google Search Console : Ajoutez le nouveau site et soumettez un sitemap mis à jour.
  • Google Analytics : Mettez à jour les paramètres de suivi pour le nouveau domaine.

4. Surveillance post-migration

  • Suivi des erreurs 404 : Utilisez Google Search Console pour détecter les liens brisés et ajoutez des redirections si nécessaire.
  • Analyse du trafic : Vérifiez que le trafic est bien redirigé vers le nouveau site.

Pour plus d’exemples de codes de redirections 301 compatibles Apache à intégrer dans une fichier .htaccess, je vous recommande cette page du site leptitdigital.fr : https://www.leptidigital.fr/webmarketing/seo/comment-faire-redirection-301-htaccess-exemples-13824/

Si vous avez besoin de faire des redirections 301 pour votre nouveau site web Symfony ou WordPress sans vous prendre la tête pour ne pas retomber au fin fond des résultats des moteurs de recherche, contactez WebSteem !