# Audit de faisabilité — ajouter AMP à Acieb v2

**Date** : 2026-07-30 · **Branche** : `audit/amp-feasibility` · **Base** : `dev` @ `5669685`
**Périmètre** : faisabilité technique, coût, valeur SEO, alternatives.
Aucun code modifié — audit seul.

---

## Verdict

**AMP n'est pas ajoutable à ce projet, et ne devrait pas l'être même si c'était possible.**

Trois constats indépendants, chacun suffisant à lui seul :

1. **Next.js 16 a supprimé AMP.** Pas déprécié : supprimé. Le projet est en 16.2.6.
2. **AMP n'a jamais existé dans l'App Router.** C'était une fonctionnalité du Pages Router. Ce site est 100 % App Router.
3. **Le problème que l'on croit résoudre avec AMP n'est pas là où on le cherche.** 85 % du poids de la home est **une seule vidéo**. AMP ne corrigerait rien à cela.

---

## 1. Blocage technique

### Next.js 16 a retiré AMP

Source : la documentation **embarquée avec la version installée** du projet
(`node_modules/next/dist/docs/01-app/02-guides/upgrading/version-16.md`) — donc exacte pour
16.2.6, et non une doc générique en ligne.

> **Removals** — *These features were previously deprecated and are now removed:*
>
> ### AMP Support
>
> *AMP adoption has declined significantly, and maintaining this feature adds complexity to
> the framework. **All AMP APIs and configurations have been removed** :*
> - *`amp` configuration from your Next config file*
> - *`next/amp` hook imports and usage (`useAmp`)*
> - *`export const config = { amp: true }` from pages*
>
> *Evaluate if AMP is still necessary for your use case. Most performance benefits can now be
> achieved through Next.js's built-in optimizations and modern web standards.*

Le codemod historique est mort lui aussi
(`01-app/02-guides/upgrading/codemods.md`) :

> *Built-in AMP support and this codemod have been removed in Next.js 16.*

Sur les ~700 fichiers de documentation livrés avec Next 16.2.6, **AMP n'apparaît que dans
3 fichiers, tous des guides de migration** — c'est-à-dire uniquement pour expliquer comment
s'en débarrasser. Aucune page de référence, aucun guide d'usage.

### AMP n'a jamais été supporté dans l'App Router

`useAmp`, `export const config = { amp: true }` et la clé `amp` de `next.config` étaient des
API **Pages Router**. Ce projet n'a pas de dossier `pages/` : tout est sous `app/`.

Autrement dit, même sur Next.js 15 — avant la suppression — la réponse aurait déjà été non
sans migrer d'abord tout le site vers le Pages Router.

### Ce qu'il faudrait faire pour passer outre

| Voie | Réalité |
|---|---|
| Réactiver le flag | Impossible, le code n'existe plus dans le framework |
| Rétrograder Next.js | Il faudrait descendre **sous la 16** *et* réécrire le site en Pages Router |
| Écrire l'AMP à la main | Maintenir un second gabarit HTML par page, hors de React, en double des 127 articles |

Aucune de ces voies n'est raisonnable pour un gain qui, comme montré plus bas, est nul.

---

## 2. Ce que le site perdrait

AMP interdit le JavaScript personnalisé. Or la valeur commerciale du site est précisément
dans son JavaScript :

| Fonctionnalité | Sort en AMP |
|---|---|
| Comparateur électricité pro (wizard 4 étapes) | **impossible** |
| Simulateur d'exonération d'accise | **impossible** |
| Mini-simulateur de la home | **impossible** |
| Prise de rendez-vous Cal.com | **impossible** (embed tiers) |
| Formulaires de contact avec Server Actions | **impossible** |
| Accordéon FAQ, animations `motion` | à réécrire en composants AMP |

Ce sont les points de conversion du site. Une version AMP serait une brochure sans tunnel —
donc du trafic qui arrive sur une page incapable de générer un lead.

---

## 3. La valeur SEO d'AMP aujourd'hui

Le seul avantage de classement qu'AMP ait jamais eu était l'**accès au carrousel Top Stories**,
réservé aux éditeurs de presse. Cette exigence a sauté avec la mise à jour Page Experience :
Top Stories est ouvert aux pages non-AMP, et le badge éclair a disparu des SERP.

Deux points spécifiques à ce site :

- **Acieb n'est pas un éditeur de presse.** Top Stories n'a jamais été un débouché. Le carrousel
  ne s'affiche pas sur des requêtes comme `courtier energie b2b`.
- **AMP n'a jamais été un facteur de classement en soi.** Ce qui compte, ce sont les Core Web
  Vitals — mesurables, et déjà mesurés ci-dessous.

> Note de méthode : ce raisonnement ne s'appuie pas sur les déclarations de Google, mais sur
> ce qui est observable — la disparition du badge AMP en SERP, l'abandon d'AMP par les grands
> éditeurs, et la suppression du support par les frameworks (dont Next.js, cf. §1).

---

## 4. Le vrai problème, mesuré

Lighthouse mobile sur `https://www.aciebenergie.fr/` (4G throttlée, 2026-07-30) :

| Métrique | Valeur | Lecture |
|---|---|---|
| Performance | **73**/100 | perfectible |
| LCP | **5,0 s** | ⚠️ le point noir |
| Speed Index | 7,0 s | ⚠️ |
| FCP | 2,0 s | correct |
| **TBT** | **0 ms** | ✅ excellent |
| **CLS** | **0** | ✅ parfait |

### Répartition du poids — 43 requêtes, 3 859 Ko

| Type | Req. | Poids | Part |
|---|---|---|---|
| **Media** | **1** | **3 262 Ko** | **85 %** |
| Script | 22 | 326 Ko | 8 % |
| Image | 5 | 132 Ko | 3 % |
| Font | 1 | 48 Ko | 1 % |
| Document | 1 | 35 Ko | 1 % |
| Reste | 13 | 55 Ko | 1 % |

**Une seule ressource pèse 85 % de la page** : `/videos/hero-background.mp4`, **3,2 Mo**.

`components/hero/HeroServer.tsx:26-40` :

```tsx
<video autoPlay muted loop playsInline
       poster="/videos/hero-poster.jpg"
       preload="metadata">
  <source src="/videos/hero-background.mp4" type="video/mp4" />
</video>
```

Le `preload="metadata"` est sans effet : `autoPlay` force le navigateur à télécharger de quoi
lire la vidéo. Elle part donc intégralement, y compris sur un mobile en 4G, pour un fond
décoratif recouvert d'un voile sombre à 60 % d'opacité.

### Ce que cela dit d'AMP

**AMP autorise la vidéo** (`amp-video`). Une home AMP avec le même fichier de 3,2 Mo aurait
exactement le même LCP. Le goulot n'est pas le framework, ni le JavaScript — le JS ne pèse
que 326 Ko après le retrait de three.js, et le TBT est à **0 ms**, ce qui signifie que le
thread principal n'est jamais bloqué.

**AMP corrige un problème que ce site n'a pas, et ne corrige pas celui qu'il a.**

---

## 5. Ce qu'il faut faire à la place

Par rapport LCP gagné / effort, dans l'ordre :

| # | Action | Gain attendu | Effort |
|---|---|---|---|
| 1 | **Ne pas servir la vidéo sur mobile** — poster seul en dessous d'un seuil de largeur | −3,2 Mo sur mobile | S |
| 2 | **Réencoder** : AV1/WebM + MP4 de repli, viser < 800 Ko | −75 % du poids média | S |
| 3 | **`preload="none"` + lecture après le premier rendu** | LCP découplé de la vidéo | S |
| 4 | **Respecter `prefers-reduced-motion`** — ne pas lancer l'autoplay | a11y + gain sur les mêmes profils | S |
| 5 | Traiter les 300 ms de « unused JavaScript » | marginal | M |

Les points 1 à 4 portent tous sur le même fichier. C'est un chantier court, sans risque
architectural, et il vise directement les 85 % du poids.

À noter : TBT 0 ms et CLS 0 signifient que **l'interactivité et la stabilité visuelle sont
déjà excellentes** — les deux dimensions qu'AMP prétendait garantir. Le seul axe restant est
le poids média, sur lequel AMP n'apporte rien.

---

## Recommandation

**Abandonner la piste AMP.** Elle est techniquement fermée (§1), destructrice pour la
conversion (§2), sans valeur SEO pour ce type de site (§3), et à côté du problème réel (§4).

Ouvrir à la place un chantier « poids média de la home » sur les points 1 à 4 du §5.

Si l'objectif derrière la demande était autre — présence dans un carrousel, distribution via
un cache tiers, ou une exigence d'un partenaire — il faut le nommer explicitement : la réponse
technique serait alors différente, et probablement sans rapport avec AMP.
