Erreur 404. Pas le message d'accueil couru par les internautes. Et l'un des pire signaux pour les moteurs de recherche (si ce n'est un mauvais contenu). Alors, que faire ? C'est simple, nous allons voir comment gérer l'erreur 404 (et l'erreur 410, tant que nous y sommes).
Cet article prend 7 minutes à lire et comporte 1709 mots.
J’ai récemment changé la structure de mon blog, et bien sûr, j’ai fait attention à tout rediriger correctement. Tout… enfin tout ce à quoi j’ai pensé ?
Google, lui, a indexé des contenus qui eux, ne sont pas redirigés. Et je me retrouve donc avec quelques erreurs 404. Pas sur mon blog, mais sur ma page personnelle, celle où je présente mon activité.
Alors que faire ? Quelles sont les solutions à une erreur 404 ? En principe, la page d’erreur 404 est prévue dans tout bon thème, c’est le modèle 404.php
, et le Codex WordPress nous explique comment créer cette page. Au-delà du principe, intéressons-nous au traitement concret.
La réponse simple est soit une page d’erreur 404 personnalisée, soit une redirection. Mais dans les faits, c’est un peu plus compliqué. Pourquoi ?
Tout simplement parce qu’il n’y a pas une raison unique à une page non trouvée.
- Vous avez pu la supprimer par erreur. Si elle est encore dans la corbeille, vous pouvez la récupérer, et l’affaire est classée.
- Ou vous pouvez avoir supprimé une page, volontairement. Pour que son contenu ne figure plus sur votre site.
- Mais le problème peut aussi venir d’une restructuration de l’architecture de votre site. Par exemple si vous avez changé la structure des permaliens.
- Vous pouvez aussi avoir migré tout ou partie de votre contenu sur un autre domaine.
- Pour finir, l’adresse peut avoir été mal renseignée par l’internaute.
Et en fonction du cas de figure, la solution ne sera pas forcément une redirection, ou, tout au moins, pas la même redirection.
Avant de passer en revue chaque cas de figure, je vous présente l’indispensable…
Redirection, l’extension qui gère l’erreur 404
Si vous n’avez jamais installé d’extension pour WordPress, je vous recommande la lecture de l’article Installer, activer, mettre à jour et supprimer une extension WordPress.
Installez l’extension, activez-la. Pas vraiment besoin de la configurer, elle fonctionne telle quelle. Mais il faudra quand même passer par les écrans de configuration.
Vous arrivez enfin à la page des options :
Rien à changer ici non plus, si ce n’est la durée de vie du cache de redirection. Réglez-le sur jamais ne période de tests, puis sur indéfiniment si vous ne voulez pas (du moins dans l’immédiat) changer la structure de votre site.
Vous pouvez passer aux redirections (premier lien en haut à gauche) :
Rien de plus simple : vous saisissez l’URL à rediriger, l’URL cible et vous cliquez sur Ajouter une redirection. Votre redirection est en place.
Pour voir les erreurs 404 sur votre site, rendez-vous dans le quatrième onglet : 404. Voici un exemple, avec ce blog :
Vous pouvez gérer vos erreurs ici-même si vous n’avez que des erreurs ponctuelles :
Quelle solution à l’erreur 404 si
Il s’agit d’une erreur de l’internaute
Ce n’est d’ailleurs pas forcément l’internaute qui est en cause. Il peut y avoir une coquille dans un lien pointant vers votre site, quelque part sur le web. Le résultat est le même.
Vous pouvez avoir un formulaire pour permettre au visiteur d’effectuer une recherche sur votre site. Il y a de fortes chances pour qu’il retrouve très vite son chemin, s’il ne s’agit que d’une erreur de frappe.
Vous pouvez également installer l’extension WP 404 Auto Redirect to Similar Post, elle n’est pas donnée pour compatible avec la toute dernière version de WordPress, mais fonctionne bien quand même.
Voici ce que vous obtiendrez (dans la console de test) si une similarité est trouvée :
Et donc, l’internaute arrivera directement sur l’article qu’il voulait lire, en principe. Vous aurez une entrée 404 générée, et enregistrée éventuellement, en fonction des extensions installées sur votre site.
Vous pouvez l’installer à la place d’une page d ‘erreur 404 personnalisée, ou en plus. À définir dans les réglages de l’extension. Si aucune redirection n’est trouvée, la page d’erreur 404 s’affichera et permettra à l’internaute de se repérer.
Vous avez supprimé la page par erreur
WordPress ne supprime pas définitivement vos pages et articles. Il les déplace dans la corbeille, où ils sont en attente d’une deuxième action de votre part : soit vous les supprimez définitivement, soit vous les restaurez, sans perte. C’est donc un premier niveau de sécurité.
Si vous avez supprimé définitivement l’élément, c’est un peu plus ennuyeux. Tout est fonction de la gestion des sauvegardes. Parce que vous effectuez régulièrement des copies de sécurité, n’est-ce pas ?
Sinon, il ne vous reste plus qu’à recréer votre contenu, ou à gérer l’erreur 404.
Vous avez volontairement supprimé la page
Il n’empêche, une erreur 404, ce n’est pas très agréable pour l’internaute. Et ce n’est pas bon pour Google non plus.
Il vaudrait mieux lui envoyer un signal moins négatif, après tout, vous avez le droit de supprimer un contenu, mais au moins, dites-le aux moteurs de recherche en indiquant que la page n’existe plus.
Ce n’est plus un code d’erreur 404 qui sera renvoyé, mais un code 410 (Gone). Ils ne chercheront plus à indexer cette ressource.
Si vous n’êtes pas à l’aise avec la console Linux, ne vous prenez pas la tête, une erreur 404, c’est déjà mieux que rien. Pour les autres, voici comment procéder, pour les deux serveurs web les plus utilisés, NGINX et Apache.
Pour un serveur Plesk, le code suivant semble ne pas fonctionner (ni pour NGINX, ni pour Apache). Si quelqu’un a déjà tenté, je suis preneur !
Pour NGINX, vous aurez à déclarer les URL supprimées :
map $request_uri $gone_var { /mon-article-supprime/ 1; /mon-autre-article-supprime/ 1; }
Puis à indiquer au serveur où se rendre :
server { .... error_page 410 @gone; if ($gone_var) { return 410; } location @gone { rewrite ^(.*)$ /erreur-410/ break; } .... }
Pour Apache, la liste des URL s’effectue ainsi :
# Pour un article : Redirect 410 /mon-article-supprime/ Redirect 410 /mon-autre-article-supprime/ # Pour un répertoire complet : RedirectMatch gone "/repertoire-supprime/*$"
410
ou gone
? Peu importe, les deux sont interchangeables, le résultat sera le même.
Vous aurez ensuite à déclarer la page d’erreur :
ErrorDocument 410 /erreur-410/
Vous avez déplacé votre site
C’est un cas de figure assez simple à traiter. Il suffit de déclarer aux moteurs de recherche le nouvel emplacement, en utilisant le code 301 (Moved Permanently). Ils iront chercher la ressource là où elle se trouve désormais. Si rien n’a changé dans la structure de votre site, une simple ligne suffit à gérer la redirection.
Pour NGINX, voici la syntaxe, à placer dans le fichier de configuration du site d’origine :
rewrite ^(.*) https://nouveau-domaine.com/$1 permanent;
Pour Apache, la syntaxe sera (à placer dans le fichier .htaccess
) :
RewriteRule ^(.*)$ https://nouveau-domaine.com/$1 [R=301,L]
En fait, ce n’est pas une erreur 404, la ressource ne serait traitée comme telle que si vous ne déclariez pas la nouvelle URL. C’est une redirection, avec le code 301
parce que la ressource est déplacée de manière permanente.
Si vous n’êtes pas à l’aise avec les fichiers système, l’extension Redirection peut tout gérer pour vous, ou tout au moins vous indiquer quoi faire exactement.
Par contre, en cas de changement de nom de domaine, prévoyez quelques jours de battement avant de tout supprimer de l’emplacement d’origine, ou avant la résiliation du nom de domaine, le temps que les moteurs de recherche passent sur votre site et récupèrent les bonnes informations.
Vous avez modifié la structure de votre site
Avant de migrer votre site, récupérez l’ensemble des permaliens actuels et faites une copie de sécurité, au cas où la migration tournerait court. Vous pourrez ainsi retrouver l’ensemble de vos données.
Si vous avez déjà migré, une sauvegarde sera d’ailleurs plus qu’utile 🙂 Commencez par recréer votre site en local, ou dans un environnement de test avec la dernière sauvegarde avant modification de la structure.
Installez et activez WP All Export. Cette extension va en quelque sorte vous sauver la vie.
Vous trouverez un guide pour cette extension dans l’article Exportez vos données WordPress avec WP All Export (et importez-les avec WP All Import).
Installez et activez également Redirection.
Exportez uniquement les permaliens, au format CSV.
Vous aurez ainsi une liste complète des vos anciennes URL, une par ligne. Vous aurez besoin de modifier le nom de domaine, mais c’est un moindre mal, un simple rechercher / remplacer tout dans un éditeur de texte suffira.
Répétez l’opération sur votre nouveau site (installation de l’extension et exportation des permaliens).
Ouvrez vos fichiers CSV, et récupérez les permaliens du second, un à un, pour les faire correspondre aux permaliens de l’ancienne structure, dans une deuxième colonne (B pour Excel et la majorité des tableurs, ou après une virgule sur la même ligne, si vous avez ouvert les fichiers CSV dans un éditeur de texte).
Sauvegardez au format CSV (en fait, c’est du texte brut, avec un séparateur tel qu’une virgule, un point-virgule ou une tabulation, ni plus ni moins).
Dans Redirection (l’extension), importez le CSV avec ses deux colonnes, et le tour est joué.
Bon d’accord, si vous avez 900 articles et / ou 800 pages, vous allez y passer un moment. Mais c’est le prix à payer pour récupérer une structure correcte, ne pas avoir un site tout cassé, et pour ne pas oublier la prochaine fois (enfin, j’espère pour vous).
Désactivez et supprimez l’extension WP All Ιmport, et vérifiez que les redirections sont correctes.
Voila, vous en avez fini avec vos erreurs 404 (enfin, celles liées à la structure du site).
Derniers conseils
Soignez votre page d’erreur 404. Les internautes qui arriveront sur votre site vous en sauront gré. Et si elle est vraiment spéciale, qui sait, elle sera même source d’attraction 😉
À titre d’exemple, voici la page dédiée sur ce site :
Vous pouvez vous y rendre via l’URL tsw.ovh/erreur-404/ si vous voulez la tester – mais dans ce cas, aucune erreur 404 ne sera générée ?
Avant de mettre en ligne vos changements, réalisez un checkup complet de votre site et des URL avant / après. Plutôt deux fois qu’une, d’ailleurs. On n’est jamais trop prudent. N’oubliez pas les fichiers médias, qui peuvent eux aussi être indexés par Google et peuvent constituer une part non négligeable de votre trafic.
Ce checkup vous permettra de vérifier qu’aucune URL n’a été oubliée quand vous aurez mis en ligne votre nouvelle structure. Et de déterminer comment gérer vos redirections, en fonction de l’ancienne et de la nouvelle structure.
Et en aparté, je serais surpris qu’il n’en reste pas quelques unes, perdues dans la nature ?
Et vous, comment gérez-vous l’erreur 404 ?