Lumen releases
Plugin WordPress — optimise les images (WebP / AVIF / JPEG), enrichit les médias (images, SVG, PDF, vidéos) et génère un pack SEO (alts, JSON-LD, Gutenberg).
Install
The author publishes release zips, so WP-CLI can install straight from GitHub:
wp plugin install https://github.com/romaindoyen/wp-lumen/releases/download/v1.9.8/lumen-wp-1.9.8.zipReadme
Lumen
Plugin WordPress — optimise les images (WebP / AVIF / JPEG), enrichit les médias
(images, SVG, PDF, vidéos) et génère un pack SEO (alts, JSON-LD, Gutenberg).
Fonctionnalités
| Domaine | Détail |
|---|---|
| Optimisation | Conversion WebP / AVIF (si supporté) / JPEG, tailles natives WP |
| Original | Remplacement prioritaire WebP → AVIF → JPEG, ou sidecars ; réécriture des URLs contenu / Elementor |
| SEO | Alts SEO / WCAG / court, titre, légende, description (images, SVG, PDF, vidéos) |
| Pack | JSON-LD ImageObject + snippet Gutenberg <picture> (images raster) |
| Traitement | Action Scheduler + ticks adaptatifs multi-médias, total estimé en lazy (scale 50k+) |
| Restauration | Sauvegarde de l’original avant remplacement + bouton fiche média |
| Outils | Nettoyage, URLs cassées (diagnostic / réécriture), rapports (CSV, Excel, PDF) |
| Icônes | Kit PNG 16→512, ZIP, favicons injectés dans le <head> |
| IA | Vision multi-fournisseur + validation optionnelle des métadonnées + estimateur d’appels bulk |
| Apparence | Thème admin clair ou sombre |
| Admin | Dashboard, navigation, modales succès/échec, UI responsive |
Tailles générées
full · large (1024) · medium_large (768) · medium (300) · thumbnail (150, crop)
Défauts utiles
- Formats : WebP + JPEG
- Remplacer l’original : activé
- Auto à l’upload : désactivé (bulk recommandé pour l’existant)
- Qualités : WebP 82 % · JPEG 85 % · AVIF 65 %
Prérequis
- WordPress 6.0+
- PHP 7.4+
- Imagick (recommandé) ou GD
- Support AVIF selon l’hébergeur
Installation
Depuis une release GitHub
- Télécharger
lumen-wp.zipdepuis la release - WordPress → Extensions → Ajouter → Téléverser
- Activer Lumen
- Configurer Lumen → Réglages
- (Optionnel) lancer Lumen → Traitement pour les médias déjà présents
Depuis les sources
# Copier le dossier dans les plugins
cp -r lumen-wp /chemin/vers/wp-content/plugins/lumen-wp
Le ZIP / le dossier doit s’appeler lumen-wp et contenir lumen.php à la racine du plugin.
Build du ZIP
# Depuis la racine du repo (staging rsync + .distignore)
./bin/build-zip.sh
# → dist/lumen-wp.zip
# → dist/lumen-wp-X.Y.Z.zip
Le script exclut .git, docs/, .github/, etc. via .distignore, vérifie la version dans le ZIP, et n’exige plus un arbre git propre (utile en local).
À chaque tag v* poussé sur GitHub, le workflow Release ZIP publie les deux archives sur la release.
Utilisation rapide
- Réglages — formats, qualités (%), thème clair/sombre, auto-upload, clés IA
- Traitement — médiathèque (Images / PDF / SVG / Vidéos, reprise, IA en option)
- Icônes — déposer un logo → kit PNG + favicons site
- Médias — fiche média → SEO, copier Gutenberg / JSON-LD, re-traiter / restaurer
- Outils — nettoyage des variantes, état du traitement, avancer manuellement
Checklist manuelle
- [ ] Upload d’un JPEG → variantes + meta SEO + statut
ok - [ ] SVG → SEO seul (pas d’optimisation)
- [ ] PDF / vidéo → SEO (+ IA si configurée)
- [ ] Traitement ~20 médias → progression, erreurs isolées (liens fiches)
- [ ] AVIF coché sans support serveur → notice, WebP/JPEG OK
- [ ] Mode « garder original » vs « remplacer »
- [ ] Remplacer original → sauvegarde + restauration fiche média
- [ ] Outils → nettoyage variantes (aperçu + lancement)
- [ ] Traitement / Outils → « Avancer maintenant » si bloqué
- [ ] Copier Gutenberg / JSON-LD depuis la fiche média
- [ ] Clé IA invalide ou rate limit → règles locales conservées
- [ ] Thème clair / sombre → contraste OK (boutons, steppers, activité)
- [ ] Kit d’icônes → ZIP + favicons dans le
<head>
Structure
lumen-wp/
├── lumen.php # Bootstrap
├── assets/admin/ # CSS / JS / icônes
├── includes/
│ ├── Plugin.php
│ ├── Media_Types.php
│ ├── Optimizer.php
│ ├── Original_Backup.php
│ ├── Content_Url_Rewriter.php
│ ├── Reports.php
│ ├── Exporters.php
│ ├── Bulk_Queue.php
│ ├── Cleanup.php
│ ├── Seo.php
│ ├── Pack.php
│ ├── Vision_Ai.php
│ ├── Icon_Kit.php
│ ├── Hooks.php
│ └── Admin/ # Dashboard, Bulk, Tools, Icons, Settings, …
└── readme.md
Changelog
1.9.8
- Bulk IA : plus de « IA reportée / SEO local » — si le tick est trop court, le média attend Vision
- Bulk IA : batch figé à 1 (plus de spirale ticks rapides → encore moins d’IA)
1.9.7
- Bulk : un média « processing » n’est plus vu comme « jamais traité » (file qui s’entête)
- Curseur avancé avant Imagick : un crash PHP ne rebloque plus le même ID
- Repair / upgrade : processing → erreur (hors file), plus de remise en pending
- Optimizer : plus de
set_time_limit(180)en bulk ; Imagick TIME 25s ; fail-fast fichier illisible
1.9.6
- Uninstall : suppression des meta
_lumen_*(plus de « processing » fantôme après réinstall) - Upgrade : réparation auto des statuts processing coincés
- Outils : bouton « Réparer les statuts processing »
1.9.5
- Bulk : les MIME
unsupportedne restent plus dans la file (fin de boucle « Déjà traité ») - Poll admin : plus de
run_pending(HTTP 503 Hostinger) ; intervalle 5s - Tick : saute rapidement les médias déjà OK
1.9.4
- Bulk : démarrer / poll ne bloquent plus sur COUNT AS + tick IA (timeouts Hostinger)
- Messages d’erreur AJAX plus explicites (HTTP / délai)
1.9.3
- Bulk : recovery des médias coincés en « processing » après timeout
- Bulk : reprogramme toujours le tick suivant si running (évite file morte)
- Bulk : IA seulement si budget tick suffisant ; timeout Vision 25s
- Lock orphelin auto-libéré après 90s
1.9.2
- Bulk : MIME non optimisable (GIF, HEIC, TIFF…) → statut
unsupported, ignoré, la file continue - Bulk : limite API Vision → pause explicite + modale (reprendre ou désactiver l’IA)
1.9.1
- Sécurité :
edit_postsur Suggest / Re-traiter / Restaurer et Validation ; Bulk, Outils, URLs et exports réservés àmanage_options - Sanitize des métadonnées IA avant écriture attachment
- Chemins backup / sidecars confinés au répertoire uploads
- Journal jobs : purge auto des lignes > 90 jours
- Uninstall : options, transients et table
lumen_jobsnettoyés - Réglage : préfixe site sur alts WCAG / court (optionnel)
- Zip release : exclusion de
vendor/
1.9.0
- Schema FAQPage : extraction locale, enrichissement IA optionnel, injection front, correctif Audit
- Schema VideoObject pour les médias vidéo traités par Lumen
- Réglages : émettre FAQ / enrichir FAQ via IA
- Validation IA : reconstruction VideoObject à l’approbation
1.8.0
- Clés API Vision chiffrées au repos (
lumen1:/ AES-256-CBC, salts WP) - Réglages : laisser vide conserve la clé ; option d’effacement
- Dashboard : caps serveur enrichies (Ghostscript, FFmpeg, exec, OpenSSL, Action Scheduler, mémoire)
1.7.0
- Journal jobs SQL (
lumen_jobs) : historique tokens par traitement / Suggest - Historique : pastille Tokens + détail des derniers runs
- Dashboard : KPI tokens du mois
- Outils : vider le journal jobs (table + cache)
1.6.2
- Médiathèque : carte SEO compacte (Titre, Alt WCAG, Description + Suggérer / Re-traiter) dans la modale détail
- PDF : aperçu IA via Ghostscript si Imagick absent ; fallback SEO IA sur le nom de fichier si aperçu impossible
- « Suggérer (IA) » : sauvegarde serveur + synchro champs WP / Backbone ; modales Lumen au-dessus de la médiathèque
- Validation (À valider) : layout carte corrigé
- Audit : score en anneau % ; export PDF (remplace l’export CSV cassé sur cette page)
- Modale d’erreur : plus de bouton « Annuler » fantôme
1.6.1
- Page Historique : timeline des médias traités, filtres de statut, modale Détails
- Validation intégrée dans Traitement (onglet À valider) ; ancienne URL redirigée
- Dashboard : « Prochaines actions » + raccourcis Historique/Audit (plus de liste paginée des médias)
- Audit : layout compact (toolbar + scorebar + liste) ; confirmations via modale Lumen
1.6.0
- Audit SEO/GEO (Lumen → Audit) : alt manquants, images/vidéos non traités, meta SEO, extraits, FAQ détectée, slogan, llms.txt
- Correctifs assistés (médias via Action Scheduler / Hooks, meta SEO Yoast/Rank Math/SEOPress, llms.txt)
llms.txtservi dynamiquement via rewrite (réglage GEO)- Export CSV du dernier audit
1.5.0
- Validation IA optionnelle : file Lumen → Validation (approuver / rejeter)
- Estimateur d’appels IA avant traitement bulk (vs budget mensuel)
- Statut
awaiting_validation+ meta_lumen_seo_pending
1.4.0
- Action Scheduler embarqué (
lib/action-scheduler3.6.4) pour bulk + URLs - Ticks multi-médias auto-adaptatifs (budget temps Hostinger)
- Start sans gros
COUNT: total estimé en arrière-plan (lazy) - Poll Outils / Traitement réveille aussi le runner AS
- Notice : ping externe
wp-cron.phppour tourner sans page ouverte
1.3.48
- URLs cassées incrémentales : skip des médias déjà propres (
_lumen_urls_clean) - Case « Parcours complet » + bouton « Réessayer les erreurs » (IDs du dernier run)
- Invalidation clean meta après re-optimisation / restauration original
1.3.47
- URLs cassées prod-hardened : ticks 25 s, timeout AJAX 25 s, reprise auto job stale, erreurs visibles
- Fallback
admin-poststart / tick / stop (sans JS) - Rewrite direct des CSS Elementor sur disque + limites SQL allégées par tick
- try/catch par média (un échec n’arrête plus toute la file)
1.3.46
- URLs cassées : progression pilotée par la page Outils (1 tick / poll) — fiable sur Hostinger sans WP-Cron
- Fallback formulaires
admin-postsi AJAX bloqué + démarrage sans COUNT SQL lourd
1.3.45
- Outils → URLs cassées : file d’attente + barre de progression (1 média / tick, cron + force-tick) — plus de timeout 500
- Inclut 1.3.44 : réécriture des tailles
-WxH.png+ régénération miniatures au replace
1.3.44
- URLs cassées : réécriture aussi des tailles WordPress (
-110x37.png→.webp/ full) — corrige logos Elementor flous après replace - Remplacement original : régénération des miniatures + nettoyage des anciennes tailles jpg/png
1.3.43
- Outils → URLs cassées : Diagnostiquer / Réécrire via formulaires
admin-post(plus fiables qu’AJAX) + résultat affiché côté serveur
1.3.42
- Outils → URLs cassées : diagnostic plus rapide + feedback / timeout AJAX
1.3.41
- Optimisation : gros JPEG/drone/panorama — plafond 4096 px, limites Imagick, moins de « time limit exceeded »
1.3.40
- Outils : diagnostiquer les URLs obsolètes + réécriture globale (contenu, Elementor, options)
1.3.39
- PDF : correction des accents (WinAnsiEncoding + conversion UTF-8)
1.3.38
- PDF rapports : mise en page structurée (bandeau Lumen, KPI, tableaux, pied de page)
1.3.37
- Rapports : export audit médiathèque + historique (CSV, Excel, PDF) depuis Outils
- Historique des traitements : capacité portée à 50 runs
1.3.36
- Remplacement d’original : réécriture des URLs en dur dans le contenu et Elementor (réglage)
- Restauration : réécriture inverse des URLs
1.3.35
- Thème clair : barre de progression + journal d’activité
1.3.34
- En-tête admin : « Lumen » + numéro de version
1.3.33
- Thème clair : contraste du bilan « OK » (Outils)
1.3.32
- Thème clair par défaut
1.3.31
- Thème clair : correction bordure des steppers qualité
1.3.30
- Thème clair : steppers qualité + pastilles formats (PNG/JPEG/SVG)
1.3.29
- Thème clair : cases à cocher lisibles + bouton désactivé contrasté
1.3.28
- Thème clair : contraste renforcé (boutons, pastilles, champs, pagination)
1.3.27
- Modale : « Ouvrir les réglages » uniquement si l’IA n’est pas configurée
1.3.26
- Thème admin clair / sombre (réglage Lumen → Apparence)
1.3.25
- SEO local : légende et description remplies depuis le nom de fichier (ex. SVG sans IA)
1.3.24
- Erreurs bulk : liste complète avec titre + lien vers la fiche média (Traitement, historique, Dashboard)
1.3.23
- Traitement : popup d’info si on coche l’IA Vision sans configuration
1.3.22
- Vocabulaire admin unifié autour des « médias » (plus seulement les images)
1.3.21
- SVG : SEO seul (pas d’optimisation)
- PDF / vidéos : SEO + IA Vision (aperçu WP, Imagick PDF, ffmpeg vidéo)
- Bulk : cases Images / PDF / SVG / Vidéos
1.3.14
- Modèles IA : catalogue Lumen + actualisation API Vision (select whitelisté, cache 12 h)
1.3.11
- Historique léger des traitements (10 runs : dates, totaux, options, auteur, dernières erreurs)
1.3.9
- Aperçu nettoyage en cartes (images / variantes / sauvegardes)
- Build ZIP sans
.git(bin/build-zip.sh+ release GitHub sur tagsv*)
Read the full README on GitHub →
Releases
| Tag | Published | Asset | Downloads |
|---|---|---|---|
| v1.9.8 | Aug 28, 2026 | lumen-wp.zip | 0 |
| v1.9.8 | Aug 28, 2026 | lumen-wp-1.9.8.zip | 2 |
| v1.9.7 | Aug 28, 2026 | lumen-wp.zip | 2 |
| v1.9.7 | Aug 28, 2026 | lumen-wp-1.9.7.zip | 3 |
| v1.9.6 | Aug 26, 2026 | lumen-wp.zip | 0 |
| v1.9.6 | Aug 26, 2026 | lumen-wp-1.9.6.zip | 1 |
| v1.9.5 | Aug 26, 2026 | lumen-wp.zip | 0 |
| v1.9.5 | Aug 26, 2026 | lumen-wp-1.9.5.zip | 1 |
| v1.9.4 | Aug 26, 2026 | lumen-wp-1.9.4.zip | 1 |
| v1.9.4 | Aug 26, 2026 | lumen-wp.zip | 0 |
| v1.9.3 | Aug 26, 2026 | lumen-wp-1.9.3.zip | 1 |
| v1.9.3 | Aug 26, 2026 | lumen-wp.zip | 0 |
| v1.9.2 | Aug 26, 2026 | lumen-wp-1.9.2.zip | 1 |
| v1.9.2 | Aug 26, 2026 | lumen-wp.zip | 0 |
| v1.9.1 | Aug 23, 2026 | lumen-wp.zip | 0 |
| v1.9.1 | Aug 23, 2026 | lumen-wp-1.9.1.zip | 1 |
| v1.9.0 | Aug 21, 2026 | lumen-wp.zip | 0 |
| v1.9.0 | Aug 21, 2026 | lumen-wp-1.9.0.zip | 0 |
| v1.8.0 | Aug 21, 2026 | lumen-wp.zip | 0 |
| v1.8.0 | Aug 21, 2026 | lumen-wp-1.8.0.zip | 0 |
| v1.7.0 | Aug 21, 2026 | lumen-wp.zip | 0 |
| v1.7.0 | Aug 21, 2026 | lumen-wp-1.7.0.zip | 0 |
| v1.6.2 | Aug 21, 2026 | lumen-wp.zip | 0 |
| v1.6.2 | Aug 21, 2026 | lumen-wp-1.6.2.zip | 0 |
| v1.6.1 | Aug 20, 2026 | lumen-wp-1.6.1.zip | 1 |
Active-site estimate ≈10 comes from the v1.9.7 cohort. Method.