WP Manifestindependent plugin directory
manifest / seo / redirect-brain

Redirect Brain

WordPress plugin — decide where an old URL should lead before you delete the post behind it. 301/302/307/308/410 rules, a real 404 log, CSV import/export.

★ 0stars
1release downloads
v1.0.0latest · 2mo ago

Install

Download redirect-brain-1.0.0.zip From the v1.0.0 release on GitHub, Aug 3, 2026

Upload it under Plugins → Add New Plugin → Upload Plugin, then activate.

Install straight from GitHub with WP-CLI:

wp plugin install https://github.com/waddou/redirect-brain/releases/download/v1.0.0/redirect-brain-1.0.0.zip
No built-in updater. New versions won't appear under Dashboard → Updates. Install new releases yourself, or let Git Updater track the repository.

Décidez où mène une ancienne URL avant de supprimer l'article qui se trouvait derrière.

Un plugin WordPress pour les sites qui ont dix ans et des articles qui n'en valent plus la peine. Supprimer un article est facile ; ce qui l'est moins, c'est que son URL reste indexée, reste liée depuis l'extérieur, et reste visitée. Supprimer sans réfléchir, c'est envoyer chacun de ces visiteurs dans un mur.

  • Auteur : Aroua Wadie — moncompte.org
  • Licence : GPL-2.0-or-later
  • Prérequis : WordPress 5.8+, PHP 7.4+

Ce que fait le plugin

Règles de redirection 301, 302, 307, 308, plus 410 Gone et 404 quand le contenu ne reviendra vraiment pas.
Trois modes de correspondance Exacte, joker * pour des sections entières, expression régulière quand rien d'autre ne suffit.
Journal des 404 exploitable Une ligne par URL morte distincte, triée par nombre de visiteurs touchés. Un clic la transforme en redirection.
Suggestion au bon moment Un article part à la corbeille : une notice apparaît avec son ancien chemin pré-rempli. Rien n'est créé sans votre accord.
Import / export CSV Pour les jours où vous avez trois cents URLs à traiter.

Pourquoi ça ne coûte rien

C'est la décision d'architecture qui structure tout le reste.

Une règle ordinaire n'est consultée qu'une fois que WordPress a déjà conclu à une 404. Sur toutes les pages de votre site qui fonctionnent encore — c'est-à-dire la quasi-totalité — le plugin ne fait aucune requête et aucun traitement.

Les règles marquées « appliquer même si l'URL existe encore » sont traitées à part, dans une liste minuscule et vide sur la plupart des sites. Vous ne payez la fonctionnalité que si vous vous en servez.

Installation

wp-content/plugins/redirect-brain/

Copiez le dossier, activez le plugin, ouvrez Redirect Brain dans le menu d'administration. Les tables sont créées à l'activation.

Désactiver le plugin laisse vos règles intactes. Seule la suppression depuis l'écran Extensions les efface.

Utilisation

Le cas courant : un article obsolète

  1. Vous mettez l'article à la corbeille.
  2. Une notice apparaît : « /vieil-article/ a perdu l'article qui se trouvait derrière. Où doivent aller les visiteurs ? »
  3. Vous saisissez la cible, choisissez 301, vous validez. Terminé.

Si vous préférez ne rien proposer, la cible peut rester vide avec un code 410 Gone : c'est la façon correcte de dire à Google que le contenu a été supprimé volontairement et qu'il peut cesser de revenir.

Le cas volumineux : une catégorie entière

Une règle joker suffit :

Source : /ancienne-categorie/*
Cible  : /nouvelle-categorie/*
Code   : 301

L'astérisque de la source capture la fin du chemin, celui de la cible la réinjecte. /ancienne-categorie/mon-article/ part donc vers /nouvelle-categorie/mon-article/.

Le cas tordu : une structure de permaliens abandonnée

Une règle regex — sans délimiteurs, les groupes capturés reviennent en $1, $2 :

Source : ^/blog/[0-9]{4}/[0-9]{2}/(.*)$
Cible  : /$1
Code   : 301

Repartir des vraies 404

L'écran 404 liste les URLs mortes que vos visiteurs ont réellement demandées, la plus coûteuse en premier. C'est la meilleure liste de travail possible : elle est fondée sur du trafic constaté, pas sur des suppositions. Chaque ligne offre Créer une redirection (le chemin est pré-rempli) et Ignorer, pour écarter le bruit.

Format CSV

Colonnes attendues à l'import, et produites à l'export :

source, target, status_code, match_type, is_active, is_forced, ignore_query, priority, notes

Seule source est obligatoire ; le reste retombe sur les valeurs par défaut définies dans Outils. Une ligne dont la source existe déjà met à jour la règle au lieu d'échouer — vous pouvez donc corriger un fichier et le réimporter.

L'import produit un rapport ligne par ligne : créées, mises à jour, rejetées avec le motif du rejet.

Architecture

redirect-brain.php          amorçage, en-tête, activation
uninstall.php               purge propre à la suppression
includes/
  class-rb-installer.php    schéma, migrations versionnées, réglages
  class-rb-matcher.php      logique pure : (chemin, index) → règle | null
  class-rb-repository.php   CRUD et validation des règles
  class-rb-index.php        index compilé et son invalidation
  class-rb-router.php       résolution en deux étages, envoi des en-têtes
  class-rb-log-404.php      journal agrégé
  class-rb-csv.php          import / export
  class-rb-post-watcher.php capture de l'URL avant suppression
  class-rb-plugin.php       câblage des hooks — le seul fichier qui en contient
admin/                      écrans, WP_List_Table, styles
languages/                  .pot, fr_FR
bin/make-pot.sh             régénération des catalogues de traduction
tests/test-matcher.php      vérification autonome du matcher

Chaque classe a une responsabilité unique. RB_Matcher est volontairement dépourvu de toute dépendance à WordPress : c'est la pièce où une erreur subtile coûterait le plus cher, donc c'est celle qu'on peut vérifier seule.

php tests/test-matcher.php   # 33 assertions, ni WordPress ni base de données
./bin/make-pot.sh            # ré-extrait les chaînes et recompile le .mo

Points d'extension

Hook Rôle
redirect_brain_capability Capability requise pour gérer les redirections (manage_options par défaut).
redirect_brain_should_run Court-circuiter le routeur sur certaines requêtes.
redirect_brain_target Modifier la destination juste avant l'envoi.
redirect_brain_matched Action déclenchée quand une règle répond.
redirect_brain_watch_post Décider si l'URL d'un article mérite une suggestion.
redirect_brain_ignored_extensions Extensions de fichiers exclues du journal.
redirect_brain_bot_pattern Motif de détection des robots.

Détails qui comptent

  • Correspondance insensible à la casse. Un site de dix ans reçoit autant de /Vieil-Article/ que de /vieil-article/, et les deux doivent atterrir au même endroit.
  • Slash final normalisé. /vieil-article et /vieil-article/ sont la même règle. Un chemin dont le dernier segment ressemble à un nom de fichier (/sitemap.xml) est laissé tel quel.
  • Anti-boucle. Une règle dont la cible retombe sur sa propre source est refusée à l'enregistrement, et une requête ne peut être redirigée qu'une seule fois.
  • Query string. Ignorée par défaut, pour que les paramètres de tracking n'empêchent pas une règle de matcher. Désactivable règle par règle.
  • Sécurité. Nonce et capability sur chaque écriture, $wpdb->prepare partout, échappement en sortie, validation des expressions régulières avant enregistrement, refus des cibles en javascript: ou data:.

Licence

GPL-2.0-or-later. Voir LICENSE.

Releases

1 release. Each count is every asset in that release; expand a row for the breakdown.

Tag
Published
Assets
Downloads
v1.0.0 latest
Aug 3, 2026 2mo ago
redirect-brain-1.0.0.zip
1