Gérer les redirections d’un site WordPress

Gérer les redirections d’un site WordPress

Durant la vie d’un site web, on est amené à modifier des adresses (url) web et il faut aider les internautes (et les moteurs de recherche) à s’y retrouver. C’est pour cela que l’on a inventé les redirections 301 (permanentes) voire 302 (temporaires). Nous allons voir ici comment utiliser l’extension Redirection, de John Godley.

Cet article a été mis à jour le 10 novembre 2017.

Redirections SEO !

geralt / Pixabay

Pourquoi faire des redirections ?

Les moteurs de recherche passent leur temps à indexer des contenus, des sites font des liens vers des contenus, des internautes copient et collent une adresse web… Si vous supprimez ou modifiez une url (d’un article, d’une page, d’une catégorie, …), tous ces liens archivés par des tiers vont aboutir à une page en « erreur 404 », un code HTTP qui indique que l’adresse recherchée n’existe pas.

Afin de simplifier la vie des internautes, mais aussi de conserver un bon référencement dans les moteurs de recherche, il faut indiquer quelle est l’adresse de remplacement de celle qui ne fonctionne plus. C’est ce qu’on appelle une redirection. Et elle peut être permanente (301), ou temporaire (302).

Comment faire des redirections ?

On peut les écrire directement dans le fichier .htaccess de notre site WordPress mais ça présente des inconvénients :

  • il faut connaître la syntaxe précise, ce qui n’est pas toujours simple ;
  • La lisibilité n’est pas très bonne et on risque des erreurs ;
  • Mais surtout, si on déplace le site, on risque d’oublier de déplacer aussi les redirections dans le .htaccess créé dans le nouvel hébergement.

C’est à cause de la dernière raison que j’ai décidé d’utiliser une extension WordPress pour les redirections. Le gros avantage aussi est qu’un administrateur compétent, mais sans expérience de code, peut aussi définir des redirections.

Utiliser l’extension Redirection, de John Godley

L’extension Redirection a de très bons avis, est mise à jour régulièrement et est utilisée par des centaines de milliers de sites.

Je l’ai donc installée et activée sur un site récemment modifié lourdement.

La notion de module

L’extension peut utiliser 3 « modules » pour réaliser les redirections :

  • module « WordPress », qui a l’avantage d’être simple (pas besoin d’un accès à .htaccess) mais sollicite plus les ressources du site ;
  • module « Apache », qui est plus rapide. Mais attention, elle ne fonctionne pas toujours (voir plus bas) ;
  • module « Nginx » – je n’ai pas cherché à l’utiliser, je ne crois pas que mon serveur utilise Nginx.

La page Redirection, du développeur de l’extension (en anglais) explique plus en détail ce que sont ces modules.

J’ai créé deux groupes de redirection (onglet Groups du menu « outils » >> « Redirections »), l’un, intitulé « redirections WP », est associé au module WordPress, l’autre, « Redirection Apache », est associé au module Apache.

Créer des redirection (quel que soit le groupe)

On peut utiliser un fichier CSV ou entrer chaque redirection à la main. Dans tous les cas, une syntaxe précise est à adopter.

La syntaxe à adopter

Imaginons que vous souhaitez rediriger https://mon-site/test-old  vers https://mon-site/test-new .

Le problème, c’est que si l’internaute tape https://mon-site/test-old/ , avec un « / » final, la redirection ne se fera que si vous avez bien défini l’url source.

Il faudra écrire que la source est /test-old/? , avec « /? » à la fin et cocher la case « Regex » (Regular Expression). Cette expression dit qu’il faut rediriger qu’il y ait le / à la fin ou non.

Avec un fichier CSV

Pour créer les redirections, j’ai importé un fichier CSV (créé avec Libre Office Calc, car Microsoft Excel gère très mal l’encodage et les caractères de séparation des CSV). Ce fichier CSV contenait des éléments comme suit (elles fonctionnent mais évidemment je ne les ai créées que pour l’exemple) :

source target regex type code match hits title
/test-old/? /test-new 1 url 301 url 0
/old-page/? https://autre-site.com/new-page 1 url 301 url 0

J’ai défini le groupe pour l’ensemble des redirections du fichier CSV durant l’importation.

A la main

La deuxième redirection s’affiche comme ça si on la saisit à la main :

Régler une redirection 301 avec l'extension Redirection

Régler une redirection 301 avec l’extension Redirection

 

Redirection avec le module WordPress

Ca fonctionne parfaitement. Toutes mes redirections utilisant le module WordPress se font à la perfection.

Redirection avec le module Apache

Dans le menu WordPress « outils » >> « Redirections », on voit un onglet « options ».

Il faut y définir le chemin vers le fichier .htaccess de l’hébergement. Pour le connaître, je suis allée regarder dans Réglages / WP Super Cache, onglet avancé et « Cache Location » est défini comme : /home/clients/2453337d17…073506d/site/wp-content/cache/

Donc dans Outils / redirection, onglet options, je définis Apache Module comme : /home/clients/2453337d17…073506d/site/.htaccess.

J’ai laissé sur « default server » car je préfère que ce soit Infomaniak qui gère l’absence ou la présence de www devant le nom de domaine.

J’ai ensuite créé des redirections exactement comme précédemment. Mon fichier .htaccess est effectivement modifié si je crée une redirection dans le groupe « Redirection Apache » entre /test/ et /cat/bla-bla :

<IfModule mod_rewrite.c>
RewriteRule ^test/$ /cat/bla-bla/ [R=301,L]
</IfModule>

Mais la redirection ne fonctionne pas. L’url monsite/test n’est pas dirigée vers monsite/cat/bla-bla….

J’ai cherché comment régler le module Apache, mais les onglets que je vois sont « Redirects | Groups | Log | 404s | Import/Export | Options | Support ». Je ne peux pas accéder à un onglet « Module » qui me permettrait de régler Apache…

J’ai déposé une demande d’aide sur le support de l’extension et j’ai reçu une réponse 2 jours après ma demande. Voici la solution, en attendant une mise à jour de l’extension.

J’utilise l’extension WP Super Cache pour accélerer mes sites. Elle écrit également des informations dans le fichier .htaccess.

John Godley, l’auteur de l’extension Redirection m’a proposé de corriger à la main le fichier .htaccess et d’y  déplacer les éléments relatifs à la redirection avant les éléments liés à WP Super Cache.

Donc dans le fichier .htaccess, il faut déplacer les éléments

# Created by Redirection

CODE

# End of Redirection

avant les éléments

# BEGIN WPSuperCache 

Code

# END WPSuperCache

Et maintenant ça fonctionne correctement !

Et maintenant ?

Les redirections fonctionnent correctement.

Check-list de vérification sécurité et SEO d’un site WordPress

Check-list de vérification sécurité et SEO d’un site WordPress

A la création d’un site, il est indispensable de vérifier la sécurité et l’indexabilité du site WordPress. C’est également indispensable après le transfert d’un site vers un nouvel hébergement. Cette check_list contient des éléments applicables à tout site WordPress et des actions spécifiques au transfert vers un hébergement d’un VPS Plesk. Cet article fait partie de la série .

Vérification de la sécurité

(1) sécuriser tout ce qui peut l’être avec WordPress Toolkit.

Avec Plesk, on dispose du WordPress Toolkit.

Sécuriser un site avec le WordPress Toolkit de Plesk

Sécuriser un site avec le WordPress Toolkit de Plesk

Après avoir cliqué sur « analyser la sécurité », je donne l’autorisation de sécuriser tout ce qui ne l’est pas.

Nota : selon cet article sur Devblog.Plesk, les changements ne sont pas faits en modifiant .htaccess (et n’en lit même pas le contenu pour définir le statut de sécurité). C’est la configuration du serveur web qui est modifiée. Toute modification du .htaccess va remplacer la configuration serveur correspondante.

(2) utiliser toutes les fonctionnalités de Sucuri

J’utilise l’extension gratuite « Sucuri Security – Auditing, Malware Scanner and Hardening » pour la sécurité du site. Les modifications qui suivent sont réalisées avec cette extension.

  • Exécuter tous les « hardening » proposés sauf  « website firewall protection » (pas dans la version gratuite de sucuri) et « error logs » qui « can not be determined ». Attention, je n’ai jamais essayé de voir si Sucuri peut changer correctement le préfixe de base de données. J’ai procédé comme indiqué dans l’article Changer le préfixe de base de données WordPress.
  • Dans Settings / Général (ou par une console d’erreur comme Query Monitor), j’ai eu une erreur indiquant que Sucuri n’a plus l’autorisation de stocker les données de Sucuri dans /home/parcoursz/www/wp-content/uploads/sucuri. Au final pour corriger le problème, il suffit de désactiver Sucuri, supprimer les fichiers stockés dans wp-content/uploads/sucuri puis réactiver Sucuri.

(3) Modifier wp-config.php

  • Vérifier que Sucuri a ajouté define( ‘DISALLOW_FILE_EDIT’, true );  pour interdire la modification de fichiers à partir du tableau de bord WordPress ;
  • En profiter pour ajouter une instruction pour limiter le nombre de versions stockées pour un article ou une page : define( ‘WP_POST_REVISIONS’, 5 );

(4) Ajuster .hataccess

Normalement c’est inutile pour un site monosite. Pour un site multisite, il faudra l’ajuster, mais ce sera l’objet d’un autre article.

Vérification pour le SEO

Après la création d’un site ou son transfert, il faut vérifier quelques points essentiels pour que le site reste correctement indexé par les moteurs de recherche :

(5) Google analytics

  • Vérifier que l’identifiant google analytics du site est toujours correctement défini. Pour moi c’est dans le menu « Insight » puisque j’utilise l’extension « Google Analytics par MonsterInsights« 
  • Vérifier que Google Analytics et Google for Webmasters nous considèrent toujours comme propriétaire du site : j’ai laissé un enregistrement TXT contenant un code de vérification Google dans les enregistrements DNS sur OVH (cf l’article Réglages DNS d&rsquo;un hébergement tiers à domaines gérés par OVH). En principe il n’y a pas de problème mais il vaut mieux vérifier car on peut avoir oublié de transférer un fichier html de vérification ou ne pas avoir défini l’enregistrement TXT.

(6) Yoast SEO

  • Vérifier que les réglages de l’extension sont correctement faits ;
  • Vérifier que la connexion à la search console est faite correctement ;
  • Si les sitemaps dans google for webmasters ne sont pas récents, les soumettre à nouveau ;
  • Dans Google for Webmasters, regarder les erreurs d’exploration et les corriger (redirection) ;
  • Dans un site nouvellement créé, on vérifiera aussi que l’on a correctement rempli les extraits SEO pour l’ensemble des contenus.

(7) vitesse du site

  • Tester le site avec Google Test My Site puis corriger les défauts éventuels. Ce site teste l’ergonomie sur appareil mobile, la vitesse sur mobile et la vitesse sur ordinateur.

Création d’un site : extension de SEO

Un site c’est bien, mais un site auquel les internautes arrive c’est mieux. Le SEO (Search Engine Optimization) est fait pour ça.

Je n’y connais rien dans les méthodes de SEO sophistiquées. Par contre, il faut aider les moteurs de recherche à nous trouver et afficher la bonne synthèse d’un contenu dans les moteurs de recherche.

L’extension WordPress SEO by Yoast

J’utilise WordPress SEO by Yoast, comme extension de SEO. Il faut l’installer sur le site puis la paramétrer.

Pour des informations détaillées sur le paramétrage, on pourra se référer aux articles externes suivants :

Quelques choix que je fais dans les paramétrages

Dans les réglages de l’extension, partie « titres et métas »,

onglet « types d’articles » :

le titre par défaut est %%title%% %%page%% %%sep%% %%sitename%%

Pour les articles et les pages, je préfère %%title%% %%page%%

Pour les articles,  j’active « Afficher la date dans la prévisualisation de l’extrait« .

Pour les médias, je coche « noindex, follow » car je n’ai aucun contenu original.

onglet « taxonomies » :

Pour les formats, je coche « noindex, follow » car je ne crois pas que ça me serve.

Le titre et les méta de la page d’accueil

Le tableau de bord WordPress permet de régler la page qui servira de page d’accueil (page statique) et la page pour les articles.

Modifier la page qui sert de page statique d’accueil. On voit en dessous de l’éditeur des cases à remplir pour l’extension WordPress SEO by Yoast. Ce qui est entouré d’un ovale rouge correspond à ce qui s’affichera dans un moteur de recherche pour un internaute. Ca correspond à ce qui est écrit au début de la page. Pas très attirant…

seo-1

Je peux créer un titre et une description spécifiques pour les moteurs de recherche, sans avoir à modifier le contenu du début de ma page.  Et voici ce qui apparaîtra pour la même page maintenant que j’ai rempli « titre SEO » et « Meta description ». Quand même nettement mieux !

seo-2

Le titre et les métas du blog

Il faut également les remplir. C’est le même système que pour la page d’accueil.

La génération de sitemaps pour aider les robots

Sur l’utilisation des sitemaps, voir l’article sur google pour les webmasters.