optimisation core web vitals 7 min

Mentions légales : ta licence MIT tue ton LCP

Copier-coller la licence MIT dans les mentions légales peut faire chuter vos Core Web Vitals. Voici comment l’intégrer sans sacrifier la performance.

Par Julien Morel
Partager

Un site SaaS qu’on audite, LCP à 3,9 s sur mobile. Le bundle JS était propre, les images optimisées. Pourtant, le diagnostic Lighthouse pointait un bloc de texte monolithique dans le flux HTML : la page mentions légales, avec la licence MIT intégralement recopiée en plein DOM. 12 000 caractères, pas de lazy loading, pas de mise en cache conditionnelle. Personne n’avait pensé à regarder cette page, parce que « personne ne la lit ». Google, lui, la crawl, l’indexe et la mesure. On a détaillé l’analyse complète des signaux dans notre dossier optimisation core web vitals.

Googlebot ne fait pas de distinction entre légal et produit

Il télécharge le HTML, le parse, évalue le LCP et alimente les données de la Search Console. Si le plus grand élément visible est un bloc de licence qui met 2 secondes à se peindre, l’audit enregistrera ce retard. Pire, chaque octet consommé par cette page est pris sur le budget de crawl alloué au domaine. Une page de mentions légales découverte depuis le footer mobilise autant de ressources qu’une fiche produit, pour un contenu qui n’a aucune valeur de classement. Sur un gros catalogue multilingue, une part non négligeable du crawl part dans des déclinaisons de licences Open Source que la Search Console n’étiquette jamais comme « gâchis ».

Le coût réel de la licence MIT en plein flux HTML

Une licence MIT non compressée pèse environ 2,5 Ko en texte brut. C’est peu. Mais insérée en haut du DOM, avant la première image ou le titre principal, elle retarde le rendu de l’élément le plus grand. Sur un site multilingue avec cinq variations, cela donne 12,5 Ko servis systématiquement au premier octet. Multipliez par le nombre de pages si la licence est rappelée dans un pied de page chargé en SSR, et vous avez un volume de données qui mange du TTFB et du LCP sans que le compteur Lighthouse accuse autre chose qu’un « bloc texte volumineux ». Le diagnostic passe inaperçu parce qu’on cherche toujours un bundle JS mal découpé. Ici, c’est du texte statique, le tueur silencieux.

⚠️ Attention : Un texte de licence copié dans un <pre> sans cache HTTP sera retransmis à chaque navigation. Activez au minimum un Cache-Control agressif sur les ressources juridiques.

Trois manières de charger la licence sans bloquer le LCP

La licence doit rester accessible. L’obligation juridique n’impose pas qu’elle soit gravée dans le premier paquet de HTML qui arrive au navigateur.

Chargement asynchrone après l’événement load. L’idée est simple : on place un conteneur vide dans le DOM initial, et on déclenche une requête fetch vers un fichier texte statique une fois la page rendue. Le texte est injecté dans le conteneur sans bloquer le parsing. Le LCP se déclenche avant, sur un élément visuel pertinent. Avec fetchpriority="low", on empêche la requête de concurrencer les appels critiques.

Composant lazy avec Suspens en React. Si le site est construit avec Next.js ou un SPA React, un React.lazy autour d’un composant LegalBlock empêche le SSR d’alourdir le HTML initial. Le navigateur reçoit une coquille vide, l’hydratation est rapide, le texte juridique arrive ensuite. Si vous gérez l’état global avec Zustand, un simple flag licenseLoaded évite de refaire la requête à chaque changement de route, ce qui réduit le temps de peinture pour les visites successives.

Service worker et cache stale-while-revalidate. Pour les pages légales visitées épisodiquement, un service worker peut servir le texte depuis le cache tout en vérifiant une mise à jour en arrière-plan. Le LCP devient quasi instantané car le bloc est déjà disponible localement, sans aucun octet réseau pour cette ressource.

Lien en dur, présent sur toutes les URLs du site. Chaque passage du bot emprunte ce chemin, parfois quotidiennement, et télécharge du texte qui ne change jamais. Une solution qu’on applique sur nos side-projects : servir les pages juridiques avec un en-tête Link de preload conditionnel uniquement pour les navigateurs, et les exclure du sitemap XML. Elles restent accessibles aux utilisateurs, Googlebot ne les voit plus comme prioritaires.

Une autre piste : segmenter les pages par type d’obligation. Une page dédiée uniquement à la licence MIT, légère et avec un TTFB minimal, aura un coût de crawl bien inférieur à une page unique qui accumule mentions légales, politique de confidentialité, conditions d’utilisation et licences. Fractionner, c’est réduire le poids unitaire, et si un robot décide de toutes les crawler, il le fera en parallélisant sans saturer une seule ressource.

Une seule page pour tout, c’est un mur que le parseur doit avaler

Mentions légales, CGU et licence MIT sur la même URL : le parseur HTML doit ingérer l’intégralité avant de passer à la suite, FCP repoussé, LCP dégradé. Scinder par type d’obligation ramène chaque page sous 8 Ko et redonne un LCP sous 2,5 s sur mobile.

Mesurer l’impact avant et après avec Lighthouse et Search Console

Lance Lighthouse sur la page mentions légales, le problème saute. Ouvre les DevTools, onglet Performance, coche Disable cache, enregistre et recharge. Regarde le moment où le bloc de licence apparaît dans le fil d’eau. S’il sort avant les images produits ou le titre h1, le LCP est cuit. Après correction, un test de page Search Console et une comparaison Core Web Vitals sur 28 jours suffit : la courbe du LCP baisse, parfois de 30 % rien qu’en déplaçant le texte derrière un fetch. Dans notre exploration de Claude Code face à Cursor, on a vu que ces outils génèrent un script d’audit des pages légales en quelques instructions.

Questions fréquentes

Peut-on mettre la page de mentions légales en noindex pour éviter l’impact ?

Techniquement, oui, vous pouvez l’exclure de l’index via noindex. Mais Googlebot continuera de la crawler si elle est liée en footer, donc le coût de crawl demeure. Une meilleure approche consiste à la conserver indexable tout en limitant son poids, pour rester conforme aux attentes de transparence tout en protégeant votre budget de crawl.

La licence MIT doit-elle être textuellement reproduite ou un lien suffit-il ?

La licence impose de conserver la notice de copyright, mais un lien vers une page dédiée contenant le texte intégral de la licence satisfait cette obligation dans la plupart des juridictions. Vérifiez auprès de votre conseil juridique, mais charger le lien sans le texte complet dans le corps de chaque page est souvent accepté et libère le LCP.

Est-ce que charger la licence en JavaScript la rend invisible pour Googlebot ?

Googlebot exécute le JavaScript et finit par voir le contenu, mais le texte chargé en asynchrone après load peut ne pas être indexé instantanément. Si l’indexation du contenu juridique est une priorité, optez pour un rendu serveur partiel : envoyez le bloc via fetch coté serveur et insérez-le avant l’envoi de la réponse, avec un Cache-Control agressif.

Articles similaires

Julien Morel

Julien Morel

Ancien dev front React passé SEO technique après une migration e-commerce qui a fait perdre 60% du trafic organique à son employeur en une nuit (fichier robots.txt oublié en staging). Depuis, il écrit pour que ça n'arrive à personne d'autre et teste sur ses propres side-projects avant de publier quoi que ce soit.

Cet article est publie a titre informatif. Faites vos propres recherches avant toute decision.