Les dessous techniques de l’extension GeneratePerf (WP Meetup Sophia Antipolis)
Une avant-première locale
Eroan Boyer
Le jeudi 22 janvier 2026, j’ai animé le BarCamp de Sophia-Antipolis avec une conférence intitulée »Les dessous techniques de l’extension GeneratePerf ». Cette dernière s’est déroulée dans une atmosphère très conviviale et les échanges ont été particulièrement riches. Un grand merci à Denis pour l’organisation, à o2switch pour le sponsoring et à la vingtaine de participants présents pour leur intérêt et leurs questions pointues autour de WordPress, des plugins et de la web performance.
Contexte du Meetup
- Événement organisé par le Sophia Antipolis WordPress Meetup, groupe local dédié aux utilisateurs, développeurs et passionnés de WordPress.
- Format BarCamp, avec un focus technique sur la création de plugins et sur GeneratePerf, une extension orientée performance et industrialisation des projets.
- Objectif : montrer des bonnes pratiques concrètes, partager des retours d’expérience terrain et ouvrir la discussion sur les outils modernes (IA, IDE, gestion des mises à jour, etc.).

Plan des sujets abordés
1. Créer son propre plugin WordPress
- Point de départ : choix entre partir d’un « plugin bootstrap » existant sur GitHub ou coder from scratch, en pesant les avantages en termes de temps, de dette technique et de compréhension du code.
- Place de l’IA : usage de Copilot dans VSCode ou d’IDE spécialisés comme Antigravity ou Cursor, avec l’idée de garder la maîtrise des patterns et de ne pas déléguer l’architecture à l’IA.
- Gestion des options : utilisation des API natives de WordPress (wp_options) pour activer/désactiver des comportements, discussion sur le choix entre plusieurs options isolées ou un tableau d’options global.
- Nouvelle UI d’options : présentation d’une interface basée sur DataForm, pensée pour s’intégrer avec la nouvelle identité visuelle de l’admin WordPress et faciliter l’organisation des réglages.
- Structure granulaire : n’exécuter que le strict nécessaire via des hooks ciblés (en particulier côté admin), et ne charger CSS/JS en front que si la fonctionnalité correspondante est réellement active.
- Vigilance sur les enqueue/register : éviter les gros bundles JS/CSS ou les icon-fonts chargés en permanence, même lorsque les fonctionnalités ne sont pas utilisées, car c’est un énorme frein à la performance.
- Internationalisation : mise en place de la traduction dans les principales langues, avec retour d’expérience sur Loco Translate (fichiers dans l’extension) et sur une traduction intégrale réalisée avec Gemini 3 Pro à partir de l’anglais et d’une version FR de référence.
- Pertinence des traductions IA : démonstration que, bien guidée, l’IA peut comprendre le sens métier des chaînes et produire des traductions plus cohérentes que du mot-à-mot.
- Design du dashboard : importance de proposer un écran d’options qui se démarque, avec un vrai travail sur le HTML/CSS, plutôt qu’une UI grise générique en onglets.
- UX d’abord : montrer que l’ergonomie et la lisibilité des réglages jouent beaucoup sur l’adoption d’un plugin par des non-développeurs.
- Extensibilité : ajout de crochets (actions/filters) pour permettre aux intégrateurs avancés de surcharger certains comportements sans complexifier l’interface grand public.
- Documentation associée : expliquer les hooks disponibles et fournir des exemples de code pour favoriser un écosystème autour de l’extension.
- Changelog détaillé : insister sur l’importance de lister précisément les évolutions, corrections et changements de comportement, plutôt qu’un vague « améliorations diverses ».
- Intérêt du changelog : servir de mini-historique en l’absence de Git, rassurer sur la compatibilité des mises à jour et démontrer le dynamisme du plugin (argument marketing et commercial).
- Documentation technique : décrire le rôle de chaque option, les shortcodes disponibles, les comportements par défaut non modifiables et les hooks exposés, avec exemples d’usage.
- Objectif : réduire les zones d’ombre, limiter les tickets de support et permettre aux développeurs d’intégrer le plugin proprement dans leurs propres architectures.
- Exigences WordPress.org : rappel des attentes en matière de sécurité, de qualité de code et de bonnes pratiques, et présentation de l’extension Plugin Check (PCP), devenue incontournable pour faire valider un plugin dans le répertoire officiel.
- Hors repository : spécificités des plugins distribués en direct, qui doivent implémenter un système de mise à jour maison pointant vers un serveur tiers, avec l’impact potentiel d’un hébergement lent sur les performances des sites.
- Licences et updates : nécessité d’un système de gestion des licences pour contrôler l’accès aux mises à jour, en particulier dans un modèle freemium ou licence annuelle.
- Enjeux business : montrer comment la couche technique (API de mise à jour, vérification de licence) s’articule avec la stratégie commerciale du plugin.
2. GeneratePerf : philosophie et fonctionnalités
- Origines : GeneratePerf est né en 2018 sous forme de thème enfant pour GeneratePress, avant de devenir un plugin en 2021 pour faciliter les mises à jour et la maintenance.
- Modèle d’utilisation : l’extension est utilisée en interne sur les projets clients de création/refonte, avec une licence offerte la première année puis un renouvellement possible à 90 € pour continuer à bénéficier des mises à jour.
- Hooking avancé : GeneratePerf modifie ou étend le comportement de nombreux plugins via leurs hooks, y compris le cœur WordPress et Gutenberg, afin d’optimiser l’expérience d’édition et le front.
- Gestion des extensions tierces : intégration spécifique avec des plugins de cache, SEO et autres outils, pour aligner leurs réglages sur une approche orientée performance.
- Polices locales optimisées : GeneratePerf propose une gestion de fonts locales plus légère que les Google Fonts classiques, qui restent volumineuses et souvent peu optimisées même auto-hébergées.
- Catalogue de polices : mise à disposition d’une liste croissante de polices variables (plage de graisse idéale de 300–800), subsetées pour les langues occidentales, en surchargant le gestionnaire de polices de GeneratePress pour masquer le reste.
- Gestion des icônes : adoption d’un système d’icônes SVG dans un bloc <defs> avec <use>, afin de ne charger le sprite qu’une fois par page et d’éviter totalement les icon-fonts ou PNG.
- Personnalisation via thème enfant : possibilité de surcharger ce système d’icônes facilement dans le thème enfant pour adapter la bibliothèque à chaque projet.
- Surcharges CSS simplifiées : une fonction dédiée va chercher les styles dans l’extension, puis dans le thème enfant si des overrides existent, ce qui offre un niveau de personnalisation supérieur aux simples réglages de couleurs.
- Bénéfice pour les intégrateurs : permettre de garder un code propre et centralisé tout en offrant une grande liberté de theming sur chaque site.
- One Click Configurator : ancien fonctionnement en surcharge automatique des options à l’activation, jugé peu transparent et fragile en cas de changement d’extensions.
- Nouvelle approche : le configurateur informe clairement via des messages d’information natifs et permet à l’utilisateur de déclencher et gérer lui-même l’application des presets, pour plus de contrôle et de visibilité.
- Panneau « Santé du site » : ajout d’un panneau visuel complémentaire à l’outil de Site Health intégré à WordPress, pour aider à identifier les points de vigilance spécifiques à la performance.
- Pédagogie : rendre les signaux de santé plus compréhensibles pour les utilisateurs finaux et les équipes marketing, pas seulement pour les développeurs.
- Report intelligent des JS tiers : système pensé pour mieux gérer le report d’exécution des scripts tiers non critiques que certaines solutions de cache.
- Implémentation : usage de l’API
requestIdleCallback, avec adaptation du comportement selon la mémoire disponible sur le device, ce qui permet de réduire le Blocking Time et d’améliorer l’INP de manière ciblée.
Les nombreux échanges avec les membres du Sophia Antipolis WordPress Meetup ont confirmé l’importance d’aborder le sujet de la conception de plugins WordPress, y compris pour des utilisateurs au profil peu technique. Comprendre le fonctionnement et les enjeux autour du développement d’extensions est finalement utile à tous. Cela permet de mieux dialoguer avec les prestataires, de faire des choix éclairés parmi les milliers de plugins disponibles sur le repo officiel et gagner en autonomie pour améliorer la qualité et la performance des projets WordPress.
Un grand merci encore à Denis et à o2switch, ainsi qu’à toutes les personnes présentes pour leurs retours, questions et idées, qui donneront lieu à de futures améliorations de GeneratePerf et à d’autres rencontres autour de WordPress.
Plus d’infos : https://www.meetup.com/fr-fr/sophia-antipolis-wordpress-meetup/events/312671427/
Dernière mise à jour le le 27 janvier 2026