Gérer l’erreur 404

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écem­ment changé la struc­ture de mon blog, et bien sûr, j’ai fait atten­tion à tout rediriger cor­recte­ment. Tout… enfin tout ce à quoi j’ai pen­sé ?

Google, lui, a indexé des con­tenus qui eux, ne sont pas redirigés. Et je me retrou­ve donc avec quelques erreurs 404. Pas sur mon blog, mais sur ma page per­son­nelle, celle où je présente mon activ­ité.

Alors que faire ? Quelles sont les solu­tions à une erreur 404 ? En principe, la page d’er­reur 404 est prévue dans tout bon thème, c’est le mod­èle 404.php, et le Codex Word­Press nous explique com­ment créer cette page. Au-delà du principe, intéres­sons-nous au traite­ment con­cret.

La réponse sim­ple est soit une page d’er­reur 404 per­son­nal­isée, soit une redi­rec­tion. Mais dans les faits, c’est un peu plus com­pliqué. Pourquoi ?

Tout sim­ple­ment parce qu’il n’y a pas une rai­son unique à une page non trou­vée.

  • Vous avez pu la sup­primer par erreur. Si elle est encore dans la cor­beille, vous pou­vez la récupér­er, et l’af­faire est classée.
  • Ou vous pou­vez avoir sup­primé une page, volon­taire­ment. Pour que son con­tenu ne fig­ure plus sur votre site.
  • Mais le prob­lème peut aus­si venir d’une restruc­tura­tion de l’ar­chi­tec­ture de votre site. Par exem­ple si vous avez changé la struc­ture des permaliens.
  • Vous pou­vez aus­si avoir migré tout ou par­tie de votre con­tenu sur un autre domaine.
  • Pour finir, l’adresse peut avoir été mal ren­seignée par l’in­ter­naute.

Et en fonc­tion du cas de fig­ure, la solu­tion ne sera pas for­cé­ment une redi­rec­tion, ou, tout au moins, pas la même redi­rec­tion.

Avant de pass­er en revue chaque cas de fig­ure, je vous présente l’indis­pens­able…

Redirection, l’extension qui gère l’erreur 404

Si vous n’avez jamais instal­lé d’ex­ten­sion pour Word­Press, je vous recom­mande la lec­ture de l’ar­ti­cle Installer, activ­er, met­tre à jour et sup­primer une exten­sion Word­Press.

Installez l’ex­ten­sion, activez-la. Pas vrai­ment besoin de la con­fig­ur­er, elle fonc­tionne telle quelle. Mais il fau­dra quand même pass­er par les écrans de con­fig­u­ra­tion.

Vous arrivez enfin à la page des options :

Options de Redi­rec­tion

Rien à chang­er ici non plus, si ce n’est la durée de vie du cache de redi­rec­tion. Réglez-le sur jamais ne péri­ode de tests, puis sur indéfin­i­ment si vous ne voulez pas (du moins dans l’im­mé­di­at) chang­er la struc­ture de votre site.

Vous pou­vez pass­er aux redi­rec­tions (pre­mier lien en haut à gauche) :

Les redi­rec­tions

Rien de plus sim­ple : vous sai­sis­sez l’URL à rediriger, l’URL cible et vous cliquez sur Ajouter une redi­rec­tion. Votre redi­rec­tion est en place.

Pour voir les erreurs 404 sur votre site, ren­dez-vous dans le qua­trième onglet : 404. Voici un exem­ple, avec ce blog :

Onglet 404

Vous pou­vez gér­er vos erreurs ici-même si vous n’avez que des erreurs ponctuelles :

Gér­er l’er­reur 404

Quelle solution à l’erreur 404 si

Il s’agit d’une erreur de l’internaute

Ce n’est d’ailleurs pas for­cé­ment l’in­ter­naute qui est en cause. Il peut y avoir une coquille dans un lien pointant vers votre site, quelque part sur le web. Le résul­tat est le même.

Vous pou­vez avoir un for­mu­laire pour per­me­t­tre au vis­i­teur d’ef­fectuer une recherche sur votre site. Il y a de fortes chances pour qu’il retrou­ve très vite son chemin, s’il ne s’ag­it que d’une erreur de frappe.

Vous pou­vez égale­ment installer l’ex­ten­sion WP 404 Auto Redi­rect to Sim­i­lar Post, elle n’est pas don­née pour com­pat­i­ble avec la toute dernière ver­sion de Word­Press, mais fonc­tionne bien quand même.

Voici ce que vous obtien­drez (dans la con­sole de test) si une sim­i­lar­ité est trou­vée :

Arti­cle sim­i­laire trou­vé

Et donc, l’in­ter­naute arrivera directe­ment sur l’ar­ti­cle qu’il voulait lire, en principe. Vous aurez une entrée 404 générée, et enreg­istrée éventuelle­ment, en fonc­tion des exten­sions instal­lées sur votre site.

Vous pou­vez l’in­staller à la place d’une page d ‘erreur 404 per­son­nal­isée, ou en plus. À définir dans les réglages de l’ex­ten­sion. Si aucune redi­rec­tion n’est trou­vée, la page d’er­reur 404 s’af­fichera et per­me­t­tra à l’in­ter­naute de se repér­er.

Vous avez supprimé la page par erreur

Word­Press ne sup­prime pas défini­tive­ment vos pages et arti­cles. Il les déplace dans la cor­beille, où ils sont en attente d’une deux­ième action de votre part : soit vous les sup­primez défini­tive­ment, soit vous les restau­rez, sans perte. C’est donc un pre­mier niveau de sécu­rité.

Si vous avez sup­primé défini­tive­ment l’élé­ment, c’est un peu plus ennuyeux. Tout est fonc­tion de la ges­tion des sauve­g­ardes. Parce que vous effectuez régulière­ment des copies de sécu­rité, n’est-ce pas ?

Sinon, il ne vous reste plus qu’à recréer votre con­tenu, ou à gér­er l’er­reur 404.

Vous avez volontairement supprimé la page

Il n’empêche, une erreur 404, ce n’est pas très agréable pour l’in­ter­naute. Et ce n’est pas bon pour Google non plus.

Il vaudrait mieux lui envoy­er un sig­nal moins négatif, après tout, vous avez le droit de sup­primer un con­tenu, mais au moins, dites-le aux moteurs de recherche en indi­quant que la page n’ex­iste plus.

Ce n’est plus un code d’er­reur 404 qui sera ren­voyé, mais un code 410 (Gone). Ils ne chercheront plus à index­er cette ressource.

Si vous n’êtes pas à l’aise avec la con­sole Lin­ux, ne vous prenez pas la tête, une erreur 404, c’est déjà mieux que rien. Pour les autres, voici com­ment procéder, pour les deux serveurs web les plus util­isés, NGINX et Apache.

Pour un serveur Plesk, le code suiv­ant sem­ble ne pas fonc­tion­ner (ni pour NGINX, ni pour Apache). Si quelqu’un a déjà ten­té, je suis pre­neur !

Pour NGINX, vous aurez à déclar­er les URL sup­primées :

map $request_uri $gone_var {
  /mon-article-supprime/ 1;
  /mon-autre-article-supprime/ 1;
}

Puis à indi­quer au serveur où se ren­dre :

server {
    ....

    error_page 410 @gone;

    if ($gone_var) {
        return 410;
    }

    location @gone {
        rewrite ^(.*)$ /erreur-410/ break;
    }

    ....
}

Pour Apache, la liste des URL s’ef­fectue ain­si :

# 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 inter­change­ables, le résul­tat sera le même.

Vous aurez ensuite à déclar­er la page d’er­reur :

ErrorDocument 410 /erreur-410/

Vous avez déplacé votre site

C’est un cas de fig­ure assez sim­ple à traiter. Il suf­fit de déclar­er aux moteurs de recherche le nou­v­el emplace­ment, en util­isant le code 301 (Moved Per­ma­nent­ly). Ils iront chercher la ressource là où elle se trou­ve désor­mais. Si rien n’a changé dans la struc­ture de votre site, une sim­ple ligne suf­fit à gér­er la redi­rec­tion.

Pour NGINX, voici la syn­taxe, à plac­er dans le fichi­er de con­fig­u­ra­tion du site d’o­rig­ine :

rewrite ^(.*) https://nouveau-domaine.com/$1 permanent;

Pour Apache, la syn­taxe sera (à plac­er dans le fichi­er .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éclar­iez pas la nou­velle URL. C’est une redi­rec­tion, avec le code 301 parce que la ressource est déplacée de manière per­ma­nente.

Si vous n’êtes pas à l’aise avec les fichiers sys­tème, l’ex­ten­sion Redi­rec­tion peut tout gér­er pour vous, ou tout au moins vous indi­quer quoi faire exacte­ment.

Par con­tre, en cas de change­ment de nom de domaine, prévoyez quelques jours de bat­te­ment avant de tout sup­primer de l’emplacement d’o­rig­ine, ou avant la résil­i­a­tion du nom de domaine, le temps que les moteurs de recherche passent sur votre site et récupèrent les bonnes infor­ma­tions.

Vous avez modifié la structure de votre site

Avant de migr­er votre site, récupérez l’ensem­ble des permaliens actuels et faites une copie de sécu­rité, au cas où la migra­tion tourn­erait court. Vous pour­rez ain­si retrou­ver l’ensem­ble de vos don­nées.

Si vous avez déjà migré, une sauve­g­arde sera d’ailleurs plus qu’u­tile 🙂 Com­mencez par recréer votre site en local, ou dans un envi­ron­nement de test avec la dernière sauve­g­arde avant mod­i­fi­ca­tion de la struc­ture.

Installez et activez WP All Export. Cette exten­sion va en quelque sorte vous sauver la vie.

Vous trou­verez un guide pour cette exten­sion dans l’ar­ti­cle Exportez vos don­nées Word­Press avec WP All Export (et importez-les avec WP All Import).

Installez et activez égale­ment Redi­rec­tion.

Choix de l’élé­ment à exporter

Exportez unique­ment les permaliens, au for­mat CSV.

Vous aurez ain­si une liste com­plète des vos anci­ennes URL, une par ligne. Vous aurez besoin de mod­i­fi­er le nom de domaine, mais c’est un moin­dre mal, un sim­ple rechercher / rem­plac­er tout dans un édi­teur de texte suf­fi­ra.

Répétez l’opéra­tion sur votre nou­veau site (instal­la­tion de l’ex­ten­sion et expor­ta­tion des permaliens).

Ouvrez vos fichiers CSV, et récupérez les permaliens du sec­ond, un à un, pour les faire cor­re­spon­dre aux permaliens de l’an­ci­enne struc­ture, dans une deux­ième colonne (B pour Excel et la majorité des tableurs, ou après une vir­gule sur la même ligne, si vous avez ouvert les fichiers CSV dans un édi­teur de texte).

Sauve­g­ardez au for­mat CSV (en fait, c’est du texte brut, avec un sépara­teur tel qu’une vir­gule, un point-vir­gule ou une tab­u­la­tion, ni plus ni moins).

Dans Redi­rec­tion(l’ex­ten­sion), importez le CSV avec ses deux colonnes, et le tour est joué.

Bon d’ac­cord, si vous avez 900 arti­cles et / ou 800 pages, vous allez y pass­er un moment. Mais c’est le prix à pay­er pour récupér­er une struc­ture cor­recte, ne pas avoir un site tout cassé, et pour ne pas oubli­er la prochaine fois(enfin, j’e­spère pour vous).

Dés­ac­tivez et sup­primez l’ex­ten­sion WP All Ιmport, et véri­fiez que les redi­rec­tions sont cor­rectes.

Voila, vous en avez fini avec vos erreurs 404 (enfin, celles liées à la struc­ture du site).

Derniers conseils

Soignez votre page d’er­reur 404. Les inter­nautes qui arriveront sur votre site vous en sauront gré. Et si elle est vrai­ment spé­ciale, qui sait, elle sera même source d’at­trac­tion 😉

À titre d’ex­em­ple, voici la page dédiée sur ce site :

page d'erreur 404
page d’er­reur 404

Vous pou­vez vous y ren­dre 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 met­tre en ligne vos change­ments, réalisez un check­up com­plet de votre site et des URL avant / après. Plutôt deux fois qu’une, d’ailleurs. On n’est jamais trop pru­dent. N’ou­bliez pas les fichiers médias, qui peu­vent eux aus­si être indexés par Google et peu­vent con­stituer une part non nég­lige­able de votre traf­ic.

Ce check­up vous per­me­t­tra de véri­fi­er qu’au­cune URL n’a été oubliée quand vous aurez mis en ligne votre nou­velle struc­ture. Et de déter­min­er com­ment gér­er vos redi­rec­tions, en fonc­tion de l’an­ci­enne et de la nou­velle struc­ture.

Et en aparté, je serais sur­pris qu’il n’en reste pas quelques unes, per­dues dans la nature ?

Et vous, com­ment gérez-vous l’er­reur 404 ?

Retour en haut
We use cookies in order to give you the best possible experience on our website. By continuing to use this site, you agree to our use of cookies.
Accept