Les redirections sont essentielles pour garantir une bonne expérience utilisateur et préserver son SEO. Avec Nginx, elles se font directement dans le fichier de configuration. Voici comment les mettre en place efficacement.
Préalable à Nginx : Un serveur web moderne différent de Apache
Nginx (prononcé « engine x ») est un serveur web open source créé en 2004 par Igor Sysoev, un ingénieur russe qui cherchait à résoudre les limitations de performance des serveurs HTTP classiques comme Apache. Conçu dès le départ pour gérer efficacement un grand nombre de connexions simultanées avec une consommation de mémoire minimale, Nginx repose sur une architecture événementielle non-bloquante, contrairement au modèle multi-thread ou process par connexion utilisé par Apache. Ce choix technique en a rapidement fait un serveur de référence pour les sites à fort trafic ou à forte charge concurrente.
Au début des années 2010, Nginx s’est hissé parmi les serveurs web les plus utilisés dans le monde, rivalisant directement avec Apache, longtemps considéré comme le standard du marché. Si Apache reste largement utilisé, notamment pour sa compatibilité avec de nombreux systèmes de gestion de contenu et pour sa flexibilité de configuration via le fichier .htaccess
, Nginx a séduit par ses performances brutes, sa capacité à faire office de reverse proxy, son efficacité en tant que load balancer, et sa simplicité dans la gestion de contenu statique.
La différence majeure entre les deux serveurs réside dans leur philosophie de configuration : Apache permet une personnalisation à la volée via le fichier .htaccess
, ce qui est très pratique sur un hébergement mutualisé, mais introduit un coût de performance non négligeable. Nginx, à l’inverse, ne supporte pas les .htaccess
, ce qui oblige à gérer les redirections, les règles de sécurité ou les paramètres de cache directement dans les fichiers de configuration du serveur, comme nginx.conf
ou sites-available
. Cette contrainte est en réalité un atout en termes de vitesse d’exécution et de contrôle total, à condition d’avoir accès à la configuration du serveur.
Aujourd’hui, Nginx est omniprésent dans les environnements modernes : serveurs dédiés, VPS, conteneurs Docker, solutions cloud comme AWS, Google Cloud, Azure, ou encore sur des hébergements mutualisés optimisés. Il est particulièrement apprécié dans les architectures modernes (microservices, APIs REST, CI/CD) et s’intègre parfaitement avec les technologies actuelles comme PHP-FPM, Node.js ou Python. Couplé à des CMS comme WordPress, Nginx permet de booster les performances, d’améliorer la sécurité et de maîtriser finement la structure des URL ou des caches côté serveur.
Ce niveau de maîtrise est également un avantage en matière de SEO. Là où un plugin WordPress gère des redirections via PHP ou des règles .htaccess
sous Apache, Nginx permet d’appliquer directement des règles au niveau du serveur, plus rapidement, plus efficacement, et sans surcharge PHP. C’est pourquoi de nombreux référenceurs techniques ou développeurs orientés performance adoptent aujourd’hui Nginx dans leurs projets web, y compris sur WordPress.
Quelques redirections bien utiles en SEO sur Nginx
Voici pour vous aider quelques redirections utiles à mettre en place sur un serveur Nginx :
1. Redirection 301 (permanente) d’une URL vers une autre
Où faire cette configuration : La redirection 301 se configure directement dans le bloc server
du fichier nginx.conf
ou dans un fichier de site situé dans /etc/nginx/sites-available
, selon la distribution Linux utilisée (Debian, Ubuntu, CentOS, etc.). Cette méthode offre une exécution rapide et efficace de la redirection, car elle est gérée directement par le serveur, sans passer par le moteur PHP. Si vous êtes sur un hébergement mutualisé sans accès à la configuration du serveur, vous pouvez utiliser l’interface d’administration de votre hébergeur (cPanel, OVH, IONOS, o2switch, etc.), ou opter pour une solution WordPress facile à utiliser comme le plugin Redirection.
server {
listen 80;
server_name www.example.com;
location /ancienne-page {
return 301 https://www.example.com/nouvelle-page;
}
}
La redirection 301 (code de statut HTTP pour « Moved Permanently ») est utilisée pour signaler qu’une page a été déplacée de manière définitive vers une nouvelle URL. Cette pratique est essentielle lors de la suppression ou du déplacement d’une page, mais aussi dans le cadre d’une refonte de site ou d’un changement de structure des permaliens. Elle permet non seulement d’éviter les erreurs 404 (page introuvable), mais aussi de conserver le référencement acquis par la page d’origine, en transférant la majorité de son autorité SEO vers la nouvelle URL. Mal configurée, une redirection peut générer des pertes de position ou des conflits d’indexation ; il est donc important de la tester systématiquement après sa mise en place.
2. Redirection du HTTP vers HTTPS
Où faire cette configuration : Cette redirection se configure dans le fichier nginx.conf
ou dans un fichier de site dédié situé dans /etc/nginx/sites-available
, à l’intérieur d’un bloc server
écoutant sur le port 80 (HTTP). L’objectif est de capter toutes les requêtes non sécurisées et de les rediriger automatiquement vers la version sécurisée du site. Sur un hébergement mutualisé, cette option est souvent activable en un clic via l’espace client de l’hébergeur, à condition qu’un certificat SSL ait été installé. Si ce n’est pas le cas, vous pouvez passer par un plugin WordPress comme Really Simple SSL, qui détecte automatiquement l’activation d’un certificat et force les redirections côté PHP.
server {
listen 80;
server_name example.com www.example.com;
return 301 https://$host$request_uri;
}
La redirection vers HTTPS est aujourd’hui indispensable pour garantir la sécurité des échanges entre le navigateur et le serveur. Elle protège les données échangées (notamment dans les formulaires ou les connexions) grâce au chiffrement TLS, et évite les avertissements de sécurité affichés par les navigateurs modernes. D’un point de vue SEO, Google favorise clairement les sites en HTTPS : depuis 2014, l’utilisation du protocole sécurisé est un critère de classement, et les sites non sécurisés peuvent être marqués comme « non sécurisés » dans les résultats de recherche. La mise en place d’une redirection 301 propre entre HTTP et HTTPS est donc à la fois une mesure de sécurité, de performance et d’optimisation SEO.
3. Redirection de non-www vers www (ou l’inverse)
Où faire cette configuration : Ce type de redirection se met en place dans deux blocs server
distincts dans la configuration de Nginx, chacun correspondant à une version du domaine (avec ou sans www
). Sur un hébergement mutualisé, vous pouvez généralement configurer cette redirection depuis le panneau de gestion du domaine proposé par votre hébergeur. Dans le cas d’un site WordPress, vous pouvez également définir la version canonique du domaine en allant dans Réglages > Général et en modifiant les champs « Adresse web de WordPress (URL) » et « Adresse web du site (URL) ».
Il est important de choisir une version unique de votre nom de domaine pour éviter les problèmes de duplication de contenu, notamment d’un point de vue SEO. En effet, si les deux versions (avec et sans www) sont accessibles sans redirection, les moteurs de recherche peuvent indexer les deux, ce qui dilue le référencement. La redirection permanente 301 assure que tous les visiteurs et les robots sont redirigés vers la bonne version, tout en consolidant l’autorité des liens.
Non-www vers www :
server {
listen 80;
server_name example.com;
return 301 http://www.example.com$request_uri;
}
www vers non-www :
server {
listen 80;
server_name www.example.com;
return 301 http://example.com$request_uri;
}
4. Rediriger un domaine entier vers un autre
Où faire cette configuration : Cette redirection se configure directement dans le bloc server
de Nginx, généralement dans le fichier nginx.conf
ou dans un fichier de site dédié, selon l’organisation de votre serveur. Si vous êtes sur un hébergement mutualisé, vous n’aurez pas accès à ce niveau de configuration, mais la plupart des hébergeurs comme OVH, IONOS ou o2switch proposent une option de redirection de domaine dans leur tableau de bord. Cela permet de rediriger proprement un ancien domaine vers un nouveau sans avoir à gérer la configuration manuellement.
server {
listen 80;
server_name ancien-domaine.com www.ancien-domaine.com;
return 301 $scheme://nouveau-domaine.com$request_uri;
}
Ce type de redirection est particulièrement utile lors d’un changement de nom de domaine, que ce soit dans le cadre d’une stratégie de rebranding, d’une fusion de sites, ou simplement pour centraliser plusieurs domaines vers une adresse principale. La directive $request_uri
permet de conserver l’URL complète après le nom de domaine, afin que les utilisateurs soient redirigés vers la bonne page sans interruption. L’utilisation du code 301 (redirection permanente) permet de transmettre aux moteurs de recherche l’information que l’ancien domaine doit désormais être remplacé dans les index, tout en conservant la majorité de l’autorité SEO acquise au fil du temps.
5. Rediriger avec des expressions régulières (rewrite)
Où faire cette configuration : Dans un bloc location
à l’intérieur du fichier de configuration Nginx, généralement dans nginx.conf
ou dans un fichier de site situé dans /etc/nginx/sites-available
. Ce type de configuration n’est pas disponible sur les hébergements mutualisés classiques, sauf si votre fournisseur propose un accès personnalisé à la configuration Nginx (ce qui est rare). Sur un serveur dédié ou un VPS, cette méthode offre une grande flexibilité pour manipuler les URL en profondeur.
location ~ ^/blog/(.*)$ {
return 301 /articles/$1;
}
Ce type de redirection repose sur les expressions régulières (regex), qui permettent de capturer dynamiquement des segments d’URL. Dans l’exemple ci-dessus, toute URL commençant par /blog/
suivie de n’importe quel contenu (titre d’article, slug, etc.) sera redirigée vers une URL équivalente en /articles/
. Cela est particulièrement utile lors d’une refonte de site ou d’un changement de structure des permaliens, car cela évite d’avoir à écrire une redirection manuelle pour chaque page. En combinant les regex avec les codes de statut HTTP comme 301, vous assurez une migration propre tout en conservant la valeur SEO de chaque page.
6. Mettre un site en maintenance (rediriger vers une page temporaire)
Où faire cette configuration : Cette redirection s’effectue dans le bloc location /
du fichier de configuration Nginx, généralement dans un fichier spécifique au site, situé dans /etc/nginx/sites-available
. Elle permet de rediriger tout le trafic vers une page statique (ex. maintenance.html
) pendant que le site est en cours de mise à jour, de migration ou de réparation. Si vous utilisez un hébergement mutualisé avec WordPress, vous pouvez activer le mode maintenance via un plugin dédié comme WP Maintenance Mode, qui vous permet de personnaliser facilement l’apparence et le comportement de la page d’attente sans toucher au serveur.
location / {
return 302 /maintenance.html;
}
Cette redirection utilise le code HTTP 302 (Found), indiquant que la redirection est temporaire. Cela signifie que les moteurs de recherche continueront de considérer la page d’origine comme valide et ne mettront pas à jour leurs index avec la page de maintenance. C’est une bonne pratique pour les interruptions courtes. Si les travaux doivent durer plusieurs jours, il est également possible d’ajouter un en-tête Retry-After
pour indiquer quand le site sera à nouveau disponible. Enfin, il est recommandé d’exclure certaines IP (comme celle de votre équipe) de la redirection, afin de pouvoir continuer à accéder au site normalement pendant les tests ou les ajustements techniques.
7. Redirection conditionnelle selon l’agent utilisateur
Où faire cette configuration : Ce type de redirection se met en place dans le bloc server
de la configuration Nginx, à l’aide d’une directive if
conditionnée sur la variable $http_user_agent
. Elle permet d’analyser le type de navigateur ou de robot accédant au site. Sur un site WordPress, la mise en place d’un comportement similaire nécessite un développement personnalisé, par exemple via le fichier functions.php
de votre thème, en détectant l’agent utilisateur avec du code PHP. Toutefois, cette approche côté serveur (Nginx) est plus rapide et consomme moins de ressources, car elle n’implique pas l’exécution de PHP.
if ($http_user_agent ~* "Googlebot") {
return 301 https://www.example.com/bienvenue-google;
}
Ce type de redirection conditionnelle peut être utilisé pour offrir une version adaptée d’une page à certains agents utilisateurs, comme les bots des moteurs de recherche, les navigateurs mobiles ou les anciens navigateurs web. Cela peut être utile pour afficher une version simplifiée d’un site, une page d’information dédiée, ou encore rediriger certains crawlers vers des sections spécifiques du site. Attention toutefois : cette pratique peut être mal perçue par les moteurs de recherche si elle est utilisée pour présenter un contenu différent aux bots par rapport à celui vu par les visiteurs humains (ce qu’on appelle le cloaking). Pour rester dans les bonnes pratiques SEO, toute redirection basée sur l’user-agent doit conserver le même contenu et ne jamais chercher à manipuler l’indexation.
Pour conclure : Quelques bonnes pratiques SEO sur Nginx
Pour garantir une gestion efficace des redirections tout en préservant la visibilité d’un site dans les moteurs de recherche, il est essentiel d’appliquer quelques bonnes pratiques SEO lorsque vous configurez Nginx.
Tout d’abord, il est recommandé d’utiliser systématiquement le code 301 pour les redirections définitives. Ce type de redirection indique aux moteurs de recherche que l’URL d’origine a été déplacée de manière permanente, ce qui permet de transférer la majorité de l’autorité de la page (le “jus SEO”) vers la nouvelle adresse. À l’inverse, le code 302 indique une redirection temporaire, ce qui pourrait empêcher Google de mettre à jour ses index correctement.
Ensuite, pensez à tester vos redirections dès leur mise en place. Pour cela, vous pouvez utiliser la commande curl -I https://votre-site.com/page
depuis un terminal. Cette commande renvoie les en-têtes HTTP, ce qui permet de vérifier que le code retourné est bien celui attendu (301 ou 302), et que la redirection mène vers la bonne URL finale.
Une autre bonne pratique est d’éviter les chaînes de redirection. Il s’agit de scénarios dans lesquels une URL redirige vers une autre, qui elle-même redirige encore, parfois plusieurs fois de suite. Ces chaînes ralentissent le chargement des pages et peuvent être mal interprétées par les moteurs de recherche. Idéalement, une redirection ne devrait comporter qu’un seul saut entre l’ancienne et la nouvelle URL.
Enfin, lors d’une refonte de site ou d’un changement de structure d’URL, il est fortement conseillé de prévoir un plan de redirections personnalisées. Cela signifie que chaque ancienne URL importante (articles, pages, catégories) doit rediriger vers son équivalent ou une page pertinente dans la nouvelle structure. Cela permet d’éviter les erreurs 404, de conserver le trafic existant et d’assurer une transition en douceur sur le plan SEO.
En respectant ces bonnes pratiques, vous garantirez non seulement une expérience utilisateur fluide, mais aussi une continuité du référencement naturel de votre site malgré les évolutions techniques.
0 commentaires