# OPTIM-07 — Analyse Core Web Vitals (pourquoi ça ne passe pas)

**Date** : 2026-06-25
**Source** : rapport Lighthouse `toulouse-les-orgues.org-20260624T121514.json` (mobile, throttling simulé 4G).
**Statut** : 📊 ANALYSE (diagnostic). Actions = à prioriser.

## Verdict : le problème est le CHARGEMENT, pas l'interactivité ni le layout
| Métrique | Valeur | Seuil "bon" | État |
|---|---|---|---|
| **LCP** | **5,6 s** | < 2,5 s | 🔴 échec (le bloquant principal) |
| **FCP** | **4,2 s** | < 1,8 s | 🔴 échec |
| Speed Index | 5,8 s | < 3,4 s | 🟠 |
| **CLS** | 0,012 | < 0,1 | 🟢 parfait |
| **TBT** (proxy INP) | 0 ms | < 200 ms | 🟢 parfait |
| Score perf | 66/100 | | 🟠 |

→ CLS et interactivité sont **déjà bons**. Tout se joue sur la **vitesse de rendu/chargement** (LCP/FCP).

## Poids de la page : 1,28 Mo / 64 requêtes
| Type | Req | Poids |
|---|---|---|
| **Images** | 17 | **702 KiB** ← levier #1 |
| Fonts | 7 | 240 KiB (dont 1 police icônes Divi de 90 KiB) |
| Scripts | 23 | 216 KiB |
| CSS | 15 | 62 KiB |
| 3rd-party | 8 | 149 KiB |

## Cause racine du LCP
- L'élément LCP = **grande image hero** `uploads/2026/06/26_TLO_Post_FB_1080x1350-1-1081x970.jpg` = **184 KiB en JPG**.
- **AUCUNE variante `.webp`** pour cette image (Imagify quota épuisé → images récentes non converties).
- WebP partiel ailleurs (9 refs webp via `<picture>` Imagify) mais **pas sur l'image qui compte**.
- WebP q80 sur ce visuel = ~60-90 KiB (gain 50-65 %) → impact LCP direct.

## Plan d'action priorisé
1. **Images (levier #1, vise LCP+FCP)** — **reprendre OPTIM-06** (pipeline WebP libvips) pour convertir **toutes** les images (dont l'image LCP) + `preload` de l'image LCP + vérifier le `srcset` (éviter de servir du 1081px là où ~600px suffisent). C'est LA correction du CWV.
2. **Fonts (240 KiB / 7 fichiers)** — `font-display: swap`, `preload` de la police critique, retirer la **police icônes Divi (90 KiB)** côté visiteur si inutilisée, réduire les graisses. Améliore FCP.
3. **Render-blocking Divi** — activer **Divi → Options du thème → Performance** : Critical CSS, Defer jQuery + scripts, Dynamic CSS. Faible effort, gain FCP/LCP.
4. **Mineurs** (~530 ms cumulés) : unused-css (30 KiB), unused-js (71 KiB), unminified-css (11 KiB) ; confirmer Brotli actif.

## Note
- Sans migration OLS (en attente de validation), ces actions se font sur l'**Apache actuel**.
- OPTIM-06 était en pause sur une décision d'espace disque (`uploads/backup/`) → à rouvrir.
- Mesure lab 1 run ; à recroiser avec le terrain (CrUX) si dispo.
