🎯 Plan d’amélioration des filtres Pagefind
📊 État actuel
Après analyse de votre système de filtres :
✅ Points forts
- Filtres Pagefind fonctionnels après la correction
- Compteurs de résultats par tag déjà présents
- Interface de filtrage active/inactive
- Support de multiples filtres simultanés
⚠️ Points à améliorer
- Inconsistance des tags : “IA” (73) vs “AI” (13) vs “Intelligence Artificielle” (5)
- Tags génériques : “développement” (38 articles) - peu discriminant
- Fragmentation FR/EN : “automatisation” (18) vs “automation” (5)
- Manque de suggestions : L’utilisateur ne sait pas quels tags combiner
- Pas de tri par pertinence : Résultats affichés dans l’ordre par défaut
🚀 Améliorations proposées
1. Normalisation automatique des tags ⭐⭐⭐
Impact : Immédiat et fort Effort : Faible
Fichiers créés :
scripts/normalize_tags.rb- Script de normalisationscripts/normalize_tags_mapping.yml- Mapping des tags
Usage :
# Prévisualisation
ruby scripts/normalize_tags.rb
# Application
ruby scripts/normalize_tags.rb --apply
Bénéfices :
- Consolidation : “AI” + “IA” + “Intelligence Artificielle” → “IA” (91+ articles)
- Cohérence linguistique : tout en FR ou distinction claire FR/EN
- Réduction de la fragmentation des résultats
2. Suggestions de tags liés ⭐⭐⭐
Impact : Fort (découvrabilité) Effort : Moyen
Fichiers créés :
assets/js/filter-enhancements.js- Logique des suggestionsassets/css/filter-enhancements.css- Styles visuels_includes/filter-mode-toggle.html- Toggle ET/OU
Fonctionnalités :
- Suggestions basées sur la co-occurrence des tags
- Affichage dynamique en fonction des filtres actifs
- Interface visuelle attractive (gradient violet)
Exemple :
Filtre actif : #IA
→ Suggestions : #ChatGPT, #prompt engineering, #automatisation, #MCP
3. Mode de filtrage ET/OU ⭐⭐
Impact : Moyen (flexibilité) Effort : Moyen
Comportement :
- Mode OU (par défaut) : Affiche les articles avec AU MOINS un tag
- Mode ET : Affiche les articles avec TOUS les tags sélectionnés
Usage :
- Utile pour recherches exploratoires (OU)
- Utile pour recherches précises (ET)
4. Tri par pertinence ⭐⭐
Impact : Moyen (qualité des résultats) Effort : Faible
Critères de scoring :
- +10 points par tag correspondant
- +5 points si le terme apparaît dans le titre
- +2 points si le terme apparaît dans l’excerpt
- +3 points pour les articles featured
Résultat :
- Articles les plus pertinents en premier
- Meilleure expérience utilisateur
5. Compteurs dynamiques sur les tags ⭐
Impact : Faible (info contextuelle) Effort : Faible
Fonctionnalité :
- Afficher combien d’articles correspondent à chaque tag
- Griser les tags qui n’ont aucun résultat dans le contexte actuel
Exemple :
#IA (73)
#PrestaShop (77)
#développement (38) ← grisé si 0 résultats
📋 Plan d’implémentation
Phase 1 : Nettoyage (Priorité 1) 🔥
- Normaliser les tags ⏱️ 10 min
cd /home/user/ndabene.github.io ruby scripts/normalize_tags.rb # Prévisualisation ruby scripts/normalize_tags.rb --apply # Application git add _posts git commit -m "chore: Normaliser les tags pour améliorer les filtres" - Rebuild Pagefind ⏱️ Auto (CI/CD)
- Se fera automatiquement au prochain déploiement
Phase 2 : Améliorations UX (Priorité 2) 🎨
- Intégrer les suggestions de tags ⏱️ 15 min
- Ajouter le container dans
pages/blog.html - Charger les scripts JS/CSS
- Tester les suggestions
- Ajouter le container dans
- Ajouter le toggle ET/OU ⏱️ 10 min
- Inclure le composant dans la page blog
- Connecter avec
blog-search-pagefind.js
- Implémenter le tri par pertinence ⏱️ 10 min
- Intégrer la fonction dans les résultats de recherche
Phase 3 : Optimisations (Priorité 3) ✨
- Compteurs dynamiques ⏱️ 5 min
- Tests et ajustements ⏱️ 15 min
🎯 Résultats attendus
Avant normalisation
#IA (73) + #AI (13) + #Intelligence Artificielle (5) = fragmentation
Recherche "IA" → 73 résultats seulement
Après normalisation
#IA (91) = consolidation
Recherche "IA" → 91 résultats
Avec suggestions
Filtre actif : #PrestaShop
→ Suggestions automatiques : #e-commerce, #PHP, #Symfony
Meilleure découvrabilité du contenu
📈 Métriques de succès
- ✅ Réduction du nombre de tags de 20% (moins de fragmentation)
- ✅ Augmentation du taux de clic sur les filtres de 30%
- ✅ Réduction du taux de rebond de 15%
- ✅ Augmentation du nombre moyen de pages vues par session
🔧 Maintenance continue
Bonnes pratiques pour les futurs articles
- Utiliser les tags normalisés :
- Toujours utiliser “IA” (pas “AI” ou “Intelligence Artificielle”)
- Toujours utiliser “automatisation” (pas “automation”)
- Limiter le nombre de tags :
- Maximum 5-7 tags par article
- Privilégier la spécificité à la généralité
- Éviter les tags trop génériques :
- ❌ “développement” → ✅ “développement web”, “développement API”
- ❌ “PHP” seul → ✅ “PHP” + tag plus spécifique
- Script de validation automatique :
- Ajouter un hook pre-commit pour vérifier les tags
- Suggérer des alternatives si tag non standard détecté
🚀 Déploiement
Installation immédiate (recommandé)
# 1. Normaliser les tags
ruby scripts/normalize_tags.rb --apply
# 2. Commit
git add _posts scripts
git commit -m "feat: Améliorer la pertinence des filtres Pagefind
- Normalisation des tags (IA, automatisation, PrestaShop)
- Ajout des suggestions de tags liés
- Mode de filtrage ET/OU
- Tri par pertinence des résultats"
# 3. Push
git push
Installation progressive (si préféré)
Phase 1 uniquement → Tester → Phase 2 → Tester → Phase 3
📚 Documentation
❓ FAQ
Q: La normalisation va-t-elle casser les anciens liens vers les tags ? R: Non, Jekyll régénérera automatiquement les pages de tags avec les nouveaux noms.
Q: Peut-on revenir en arrière après la normalisation ?
R: Oui, via Git : git checkout HEAD~1 _posts
Q: Les améliorations sont-elles compatibles avec le code existant ? R: Oui, elles sont conçues comme des extensions progressives sans breaking changes.
Q: Quel est l’impact sur les performances ? R: Négligeable. Les suggestions utilisent des données déjà en mémoire. Le tri est fait côté client sur les résultats déjà filtrés.