Consultant web performance expert Symfony
Optimiser la web performance des applications Symfony
Symfony motorise les applications PHP les plus exigeantes : e-commerce, médias, fintech. Sa puissance se paie en performance si Doctrine, Twig et le cache HTTP ne sont pas cadrés. J'interviens sur l'ensemble pour livrer un TTFB stable et des Core Web Vitals au vert.
Ils me font confiance
Les symptômes Symfony qui appellent un audit
Symfony présente des goulets caractéristiques sur Doctrine, le bootstrap, et l'absence de HTTP cache discipliné.
🔁 TTFB qui dérive sur les listings et templates riches
Doctrine N+1 ou hydration object inadaptée sur les listings. Le passage à array hydration ou scalar queries pour les listings descend la consommation mémoire de 70% et le TTFB de 40%.
💾 Doctrine Result Cache inexploité
Les références stables (catégories, taxonomies, configurations) sont re-requêtées à chaque page. Le second-level cache Doctrine (via Redis ou APCu) les sert en mémoire : gain TTFB systématique.
🐢 Bootstrap Symfony lourd en production
Sans assets:install --symlink, sans cache:clear --env=prod, sans dump du conteneur DI, Symfony rebootstrap à chaque requête. Le composer install --optimize-autoloader --no-dev est obligatoire.
📡 Pas de HTTP cache ni Varnish frontal
Les pages publiques cacheables (catalogues, articles, pages SEO) sont régénérées à chaque visite. Pose Symfony HttpCache ou Varnish + ESI sur les fragments dynamiques (header user, panier). Le TTFB ressenti chute.
⚙️ PHP 7.x ou opcache mal configuré
PHP 8.x + opcache + JIT divise le temps d'exécution Symfony par 2 à 4. La mise à jour PHP et l'activation correcte (opcache.memory_consumption, opcache.max_accelerated_files) est le gain le plus rentable.
🚀 Trafic en hausse mais latence qui dérive
Sans FrankenPHP ou RoadRunner en worker mode, Symfony bootstrap à chaque requête. Le passage en worker mode descend le TTFB de 50 à 150ms gratuitement. À évaluer dès que le bootstrap pèse plus que la logique métier.
Méthodologie d'optimisation Symfony
4 étapes pour transformer votre performance
1. Profiling Blackfire ou Symfony Profiler
Identification des N+1 Doctrine, des templates Twig lents, des services lourds à instancier. Cartographie des endpoints LCP-critiques.
2. Optimisation Doctrine
Eager loading explicite, hydration array sur listings, scalar queries pour exports, second-level cache sur références stables, indexes SQL manquants.
3. HTTP cache et Twig cache
Pose Symfony HttpCache ou Varnish frontal, ESI sur fragments dynamiques, headers Cache-Control disciplinés, Twig cache pré-compilé en production.
4. Worker mode si pertinent
Évaluation FrankenPHP ou RoadRunner selon le profil de trafic. Migration prudente avec tests des singletons et de la mémoire partagée.
1. Profiling Blackfire ou Symfony Profiler
Identification des N+1 Doctrine, des templates Twig lents, des services lourds à instancier. Cartographie des endpoints LCP-critiques.
2. Optimisation Doctrine
Eager loading explicite, hydration array sur listings, scalar queries pour exports, second-level cache sur références stables, indexes SQL manquants.
3. HTTP cache et Twig cache
Pose Symfony HttpCache ou Varnish frontal, ESI sur fragments dynamiques, headers Cache-Control disciplinés, Twig cache pré-compilé en production.
4. Worker mode si pertinent
Évaluation FrankenPHP ou RoadRunner selon le profil de trafic. Migration prudente avec tests des singletons et de la mémoire partagée.
Engagements de la mission
Questions fréquentes
Symfony Profiler ou Blackfire en production ?
Doctrine est-il intrinsèquement lent ?
FrankenPHP, RoadRunner, Swoole : lequel pour Symfony ?
Comment se structurent vos accompagnements Symfony ?
Faire baisser votre TTFB Symfony
Données 2023-2026
Ce qu'en disent mes clients
Excellent travail.
Paul a nettement amélioré la vitesse du site et l’a parfaitement aligné avec les recommandations Google.
Professionnel, rigoureux et efficace, je recommande vivement.
Nicolas - April Moto
Directeur digital & e-commerce
Nous sommes très satisfaits du travail de Paul. Il se montre rapide, disponible et particulièrement efficace. Depuis son arrivée, de très bons résultats ont été constatés, tant en termes de performance que de réactivité. Un vrai atout pour notre équipe.
Léo - Maison de luxe
E-commerce Product Owner
Je sais pas si on l'a assez répété.
Mais si vous voulez améliorer votre vitesse de chargement,
Faire plaisir à Google et mettre vos Signaux Web Essentiels dans le vert,
Contactez Paul Delcloy.
Florian Darroman - Les Makers
Co-fondateur
Symfony, puissance et complexité à apprivoiser
Symfony est le framework PHP des applications complexes et long-terme. Doctrine ORM, EventDispatcher, Messenger, Twig, HTTP Foundation : un écosystème mature qui permet de modéliser n'importe quel domaine métier. Cette puissance ouvre aussi des angles de dette performance qui se cumulent rapidement sur des projets vieillissants ou sous-cadrés.
L'angle d'optimisation web performance sur Symfony est multi-couches : profiling via WebProfilerBundle ou Blackfire, optimisation Doctrine (N+1, hydration mode, second-level cache), Twig cache et OPcache, HTTP cache via Symfony Cache Component, et activation de FrankenPHP ou Roadrunner sur les apps modernes.
Doctrine, premier chantier de perf
Doctrine est l'ORM Symfony de référence, et c'est aussi sa première source de coûts performance. Les N+1, l'hydration object trop coûteuse, les fetches eager inadaptés, les Collections lazy-loadées dans des boucles : chaque pattern multiplie les requêtes ou les allocations mémoire.
Le diagnostic Blackfire ou Symfony Profiler expose ces motifs immédiatement. Le refactor (eager loading explicite, hydration array sur les listes, scalar queries pour les exports, Doctrine Result Cache sur les références stables) descend le TTFB de 40 à 70% sur les pages concernées.
HTTP cache et ESI pour les pages dynamiques
Symfony excelle sur le HTTP cache via le Symfony Cache Component (Reverse Proxy intégré, ou Varnish frontal). Couplé à ESI (Edge Side Includes), il permet de cacher des pages entières tout en gardant des fragments dynamiques (panier, user info) frais.
Cette architecture est puissante mais demande une discipline de modélisation : cache headers cohérents, ESI tag correctement scopés, invalidation pensée dès la conception. C'est ce qui distingue les Symfony rapides des Symfony qui rament malgré toute leur sophistication. Sur des projets e-commerce Symfony comme Sylius, c'est l'un des leviers structurels d'une intervention webperf.
Autres expertises Technologies
Angular
Angular optimisé : lazy modules, OnPush change detection, SSR Universal ou Analog, signals, zone.js élimination. Core Web Vitals stables sur SPA enterprise.
DécouvrirAstro
Astro optimisé : islands architecture, image optimization, view transitions, content collections. Sites quasi-statiques avec Core Web Vitals au vert.
DécouvrirDrupal
Drupal optimisé : Render API et cache contexts, Dynamic Page Cache + BigPipe, Views performance, MySQL tuning. Core Web Vitals au vert sur les templates stratégiques.
Découvrir