Retour au blog Performance Web - 8 min

Scripts tiers et performance : les voir, puis les limiter

Comment repérer les scripts tiers dans la cascade, mesurer leur coût sur le fil principal, et les retirer, les retarder ou les remplacer par une façade.

Un script tiers est un fichier servi par un domaine qui n’est pas le vôtre : mesure d’audience, gestionnaire de balises, chat, A/B test, heatmap, lecteur vidéo, police, paiement. Vous n’en maîtrisez ni le poids ni le moment où il change. Sur la page, il entre en concurrence avec votre HTML, votre CSS et le fil principal. Le travail utile est de le nommer, de voir s’il bloque une action, puis de le retirer, de le retarder, ou de le remplacer. Ouvrir la connexion plus tôt vers son domaine est un autre sujet, preconnect, et ne le rend pas plus léger.

Les voir dans la cascade

Outils de développement, onglet Réseau, recharge en privé. Triez par domaine. Tout ce qui n’est pas votre hôte est tiers. Notez, pour l’accueil et pour une page intérieure (elles ne chargent pas les mêmes tags) :

  • le poids transféré ;
  • si la requête part avant le consentement (elle ne devrait pas, pour un tag non essentiel) ;
  • le temps d’exécution dans l’onglet Performance : les longues tâches viennent souvent de ces scripts, et elles pèsent sur l’INP.

Lighthouse résume « réduire l’impact du code tiers ». C’est une piste, pas la liste complète : un tag qui ne part qu’après un clic n’apparaît pas au chargement. Le gestionnaire de balises (souvent un seul script « léger ») charge ensuite les autres. Comptez les requêtes qu’il déclenche, pas seulement la sienne.

Le même constat côté WordPress : beaucoup de ces scripts sont injectés par une extension. Les couper au bon modèle est dans plugins et performance.

Décider pour chaque script

RôleQuestionIssue fréquente
Indispensable au rendu ou au paiementLa page sans lui est-elle fausse ou incassable ?Le garder, le charger depuis l’URL officielle, pas deux fois
MesureUn seul outil suffit-il ?Retirer le doublon (deux audiences, un pixel et le même via le gestionnaire)
Chat, heatmap, A/BServent-ils dans les cinq premières secondes ?Les charger après l’affichage, ou au clic
Vidéo intégréeLe lecteur complet est-il nécessaire avant le clic ?Une façade : image + bouton, lecteur chargé ensuite
Police tierceQuelles graisses sont vraiment utilisées ?Les auto-héberger, ou n’en garder qu’une

async et defer évitent de bloquer la construction du HTML. Ils ne rendent pas le fichier gratuit : à l’exécution, il occupe le processeur du téléphone. C’est souvent là que l’INP se dégrade, plus que sur le poids en kilo-octets. Les indicateurs sont dans Core Web Vitals.

Une façade pour une vidéo ou un chat montre l’emplacement et ne charge le script qu’au clic. Le visiteur qui ne clique pas ne paie pas le lecteur. C’est le bon compromis quand le marketing veut le bloc « présent » et que la page doit s’afficher.

Mesurer un retrait, pas une impression

  1. Notez, sur une URL, le nombre de requêtes tierces, les longues tâches, et le film du chargement (laboratoire, même profil).
  2. Retirez ou retardez un script. Videz le cache. Rechargez.
  3. Vérifiez le parcours : formulaire, paiement, bannière de consentement. Un tag « retardé » qui ne part jamais fausse aussi la mesure d’audience : c’est un choix à assumer, pas un accident.
  4. Comparez. Si rien ne bouge, le coût était ailleurs (image, serveur, CSS). Remettez le script si le métier en a besoin, et passez au suivant.

Ne préconnectez pas toute la liste « pour compenser ». Deux origines utiles au premier écran suffisent ; le reste ne doit pas être contacté tôt. Et ne chargez pas les tags marketing avant le choix de la personne : en plus du cadre CNIL, vous payez leur JavaScript pour des visites qui refuseront.

Revoyez la liste quand quelqu’un ajoute une campagne. Les scripts tiers s’accumulent par ajout, rarement par retrait. Une relecture trimestrielle de l’onglet Réseau, avec la personne qui pose les tags, évite de redécouvrir quinze domaines le jour où le téléphone devient inutilisable.

Le critère de garde est simple : sans ce script, la page affiche-t-elle le contenu et le bouton utiles. Si oui, il n’a pas à partir dans la première seconde.

Questions fréquentes

Async ou defer suffit-il à neutraliser un script tiers ?

Non. Ces attributs changent le moment du téléchargement et évitent de bloquer le HTML. Une fois exécuté, le script occupe quand même le fil principal et peut retarder l’interaction.

Un gestionnaire de balises allège-t-il la page ?

Il allège la pose des tags, pas le navigateur. Chaque tag qu’il déclenche reste un script. Le poids réel se lit dans l’onglet Réseau, pas dans l’interface du gestionnaire.

Preconnect accélère-t-il un chat ou une heatmap ?

Il ouvre la connexion plus tôt. Il ne réduit pas le JavaScript exécuté. Pour un script non indispensable au premier écran, le gain est de ne pas le charger tout de suite, pas de se connecter plus vite.

Surveiller mes URL