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ôle | Question | Issue fréquente |
|---|---|---|
| Indispensable au rendu ou au paiement | La page sans lui est-elle fausse ou incassable ? | Le garder, le charger depuis l’URL officielle, pas deux fois |
| Mesure | Un seul outil suffit-il ? | Retirer le doublon (deux audiences, un pixel et le même via le gestionnaire) |
| Chat, heatmap, A/B | Servent-ils dans les cinq premières secondes ? | Les charger après l’affichage, ou au clic |
| Vidéo intégrée | Le lecteur complet est-il nécessaire avant le clic ? | Une façade : image + bouton, lecteur chargé ensuite |
| Police tierce | Quelles 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
- Notez, sur une URL, le nombre de requêtes tierces, les longues tâches, et le film du chargement (laboratoire, même profil).
- Retirez ou retardez un script. Videz le cache. Rechargez.
- 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.
- 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.
