Resumo
O uso de scripts de terceiros pode ter um grande impacto no desempenho de um site. Tais scripts costumam operar de forma bloqueante e podem atrapalhar o tempo de carregamento das páginas. Para reduzir o tenpo gasto com tais scripts, recomenda-se:
- Evitar ao máximo usar scripts de terceiros
- Postergar o carregamento dos scripts para após a interação do sistema
- Usar async ou defer nos scripts
- Pré-carregar conexão com a origem do script
Postergando o carregamento de scripts.
Caso o script em questão não seja prioritário, isto é, pode aguardar uma interação do usuário ou não representa uma funcionalidade vital ao site, uma recomendação é postergar seu carregamento para o momento em que o usuário interage com o site de fato. Cada script pode exigir uma estratégia diferente para postergar sua execução. Abaixo, existe um exemplo de uma estratégia comum (fonte) para postergar o script para que seja executado apenas após a interação do usuário seguida de um atraso:Async e Defer nos script
A presença de uma tag<script src="script.js"> ocasiona o atraso da execução
do carregamento da DOM. Isto porque o browser irá respeitar a ordem dos scripts
para baixá-los e executá-los.
Caso o script em si não faça manipulação na DOM, ele é um forte candidato para
ser atrasado via async. Um script async será baixado de forma assíncrona para só
então ser executado na primeira oportunidade que der antes do loading da DOM:
Pré-carregar conexão com a origem do script
Se possível, é uma recomendação servir o script localmente (pastastatic).
Caso o script esteja em outro domínio, a recomendação é fazer uso do prefetch
para acelerar a resolução do DNS do servidor do script:
importante: use o preconnect apenas quando necessário e para os script de maior impacto.