De nombreux facteurs contribuent aux performances des pages Web. Les scores de performances Lighthouse ont tendance à changer en raison de la variabilité inhérente aux technologies Web et réseau, même si aucune modification n'a été apportée à la page.
Sources de variabilité
La variabilité de la mesure des performances est introduite via un certain nombre de canaux avec différents niveaux d'impact. Vous trouverez ci-dessous un tableau contenant plusieurs sources courantes de variabilité des métriques, l'impact type qu'elles ont sur les résultats et l'étendue dans laquelle elles sont susceptibles de se produire dans différents environnements.
Source | Impact | Utilisateur final type | PageSpeed Insights | Laboratoire contrôlé |
---|---|---|---|---|
Non-déterminisme de la page | Élevé | LIKELY | LIKELY | LIKELY |
Variabilité du réseau local | Élevé | LIKELY | IMPROBABLE | IMPROBABLE |
Variabilité du réseau de niveau 1 | Moyenne | POSSIBLE | POSSIBLE | POSSIBLE |
Variabilité des serveurs Web | Faibles | LIKELY | LIKELY | LIKELY |
Variabilité du matériel client | Élevé | LIKELY | IMPROBABLE | IMPROBABLE |
Conflit de ressources client | Élevé | LIKELY | POSSIBLE | IMPROBABLE |
Non-déterminisme du navigateur | Moyenne | CERTAIN | CERTAIN | CERTAIN |
Vous trouverez ci-dessous des descriptions plus détaillées des sources de variance et de leur impact sur les combinaisons les plus probables d'environnement d'exécution et d'environnement Lighthouse. Bien que la limitation appliquée et les approches de limitation simulées puissent être utilisées dans l'un de ces trois environnements, l'utilisateur final type utilise une limitation simulée.
Non-déterminisme de la page
Les pages peuvent contenir une logique non déterministe qui modifie la façon dont un utilisateur explore une page. Il peut s'agir d'un test A/B qui modifie la mise en page et les composants chargés, ou d'une expérience publicitaire différente en fonction de la progression de la campagne. Il s’agit d’une source de variance intentionnelle et irrévocable. Si la page change d'une manière qui nuit aux performances, Lighthouse devrait être en mesure d'identifier ce cas de figure. La seule mesure d'atténuation consiste à s'assurer que le propriétaire du site s'assure que la même version de la page est testée entre différentes exécutions.
Variabilité du réseau local
Les réseaux locaux présentent une variabilité inhérente à la perte de paquets, à la hiérarchisation variable du trafic et à l'encombrement du réseau sur le dernier kilomètre. Les utilisateurs disposant de routeurs bon marché et de nombreux appareils partageant une bande passante limitée sont généralement les plus sensibles. La limitation appliquée atténue partiellement ces effets en appliquant une latence de requête minimale et un débit maximal qui masquent les nouvelles tentatives sous-jacentes. La limitation simulée atténue ces effets en relançant l'activité réseau par elle-même.
Variabilité du réseau de niveau 1
Les interconnexions réseau sont généralement très stables et ont un impact minimal, mais les requêtes multi-zones géographiques, c'est-à-dire la mesure des performances d'un site chinois aux États-Unis, peuvent commencer à rencontrer un niveau de latence élevé introduit par les sauts de réseau de niveau 1. La limitation appliquée masque partiellement ces effets avec la limitation du réseau. La limitation simulée atténue ces effets en relançant l'activité réseau par elle-même.
Variabilité du serveur Web
Les serveurs Web ont une charge variable et ne répondent pas toujours dans le même délai. Les sites à faible trafic avec une infrastructure d'hébergement partagée sont généralement plus sensibles à cela. La limitation appliquée masque partiellement ces effets en appliquant une latence de requête minimale à son réseau. La limitation simulée est sensible à cet effet, mais l'impact global est généralement faible par rapport à d'autres variabilités du réseau.
Variabilité du matériel client
Le matériel sur lequel la page Web se charge peut avoir un impact considérable sur ses performances. La limitation appliquée ne peut pas faire grand-chose pour atténuer ce problème. La limitation simulée réduit partiellement ce problème en limitant le temps d'exécution théorique des tâches du processeur pendant la simulation.
Conflit de ressources client
D'autres applications exécutées sur la même machine que Lighthouse est en cours d'exécution peuvent entraîner des conflits au niveau des ressources de processeur, de mémoire et de réseau. Les logiciels malveillants, les extensions de navigateur et les antivirus ont un impact particulièrement important sur les performances Web. Les environnements de serveur mutualisé (tels que Travis, AWS, etc.) peuvent également être affectés par ces problèmes. En général, l'exécution simultanée de plusieurs instances de Lighthouse déforme également les résultats en raison de ce problème. La limitation appliquée est susceptible à ce problème. La limitation simulée réduit partiellement ce problème en relançant seule l'activité réseau et en plafonnant l'exécution du processeur.
Non-déterminisme du navigateur
La variabilité d'exécution des tâches des navigateurs dépend de la manière dont les pages Web sont chargées. Cela est inévitable pour les limitations appliquées, car en fin de compte, elles ne font que signaler tout ce qui a été observé par le navigateur. La limitation simulée peut atténuer partiellement cet effet en simulant l'exécution seule, en ne réutilisant que les temps d'exécution des tâches du navigateur dans son estimation.
Effet des stratégies de limitation
Vous trouverez ci-dessous un tableau contenant plusieurs sources courantes de variabilité des métriques, l'impact type qu'elles ont sur les résultats et la mesure dans laquelle différentes stratégies de limitation de Lighthouse sont capables d'atténuer leur effet. Pour en savoir plus sur les différentes stratégies de limitation, consultez notre documentation sur la limitation.
Source | Impact | Limitation simulée | Limitation appliquée | Aucune limitation |
---|---|---|---|---|
Non-déterminisme de la page | Élevé | AUCUNE Atténuation | AUCUNE Atténuation | AUCUNE Atténuation |
Variabilité du réseau local | Élevé | Atténué | ENTIÈREMENT atténuer | AUCUNE Atténuation |
Variabilité du réseau de niveau 1 | Moyenne | Atténué | ENTIÈREMENT atténuer | AUCUNE Atténuation |
Variabilité des serveurs Web | Faibles | AUCUNE Atténuation | ENTIÈREMENT atténuer | AUCUNE Atténuation |
Variabilité du matériel client | Élevé | ENTIÈREMENT atténuer | AUCUNE Atténuation | AUCUNE Atténuation |
Conflit de ressources client | Élevé | ENTIÈREMENT atténuer | AUCUNE Atténuation | AUCUNE Atténuation |
Non-déterminisme du navigateur | Moyenne | ENTIÈREMENT atténuer | AUCUNE Atténuation | AUCUNE Atténuation |
Stratégies pour gérer les écarts
Isoler les facteurs externes
- Isolez autant que possible votre page de toute influence tierce. Il n'est jamais amusant d'être responsable des défaillances de variables de quelqu'un d'autre.
- Isolez le non-déterminisme de votre propre code lors des tests. Si une animation s'affiche de manière aléatoire, les chiffres de vos performances peuvent aussi être aléatoires.
- Isolez votre serveur de test de la plus grande volatilité du réseau. Utilisez localhost ou une machine sur le même réseau exact pour chaque problème de stabilité.
- Isolez votre environnement client des influences externes telles que les logiciels antivirus et les extensions de navigateur. Si possible, utilisez un appareil dédié pour les tests.
Si les ressources de votre machine sont vraiment limitées ou si la création d'un environnement propre s'est avéré difficile, utilisez un environnement de laboratoire hébergé comme PageSpeed Insights ou WebPageTest pour exécuter vos tests à votre place. Dans les situations d'intégration continue, utilisez des serveurs dédiés lorsque cela est possible. Les environnements CI sans frais et les instances "rafraîchissantes" sont généralement assez volatils.
Exécuter Lighthouse plusieurs fois
Lorsque vous créez vos seuils d'échec, mentaux ou programmatiques, utilisez des valeurs agrégées telles que la médiane, le 90e centile, ou même la valeur minimale, au lieu de tests uniques.
Le score Lighthouse médian de 5 exécutions est deux fois plus stable qu'une exécution, et des outils tels que pwmetrics peuvent exécuter Lighthouse automatiquement. L'utilisation de la valeur minimale représente également une nette amélioration par rapport à l'absence de tests. De plus, elle est incroyablement simple à implémenter. Il vous suffit d'exécuter Lighthouse jusqu'à cinq fois jusqu'à ce que l'opération réussisse.