Desempenho de JavaScript de terceiros

Saiba como o JavaScript de terceiros pode afetar o desempenho e o que você pode fazer para evitar que ele deixe seus sites mais lentos.

JavaScript de terceiros geralmente se refere a scripts incorporados no seu site que são:

  • Não criado por você
  • Veiculado por servidores de terceiros

Os sites usam esses scripts para várias finalidades, incluindo:

  • Botões de compartilhamento em redes sociais
  • Incorporações do player de vídeo
  • Serviços de chat
  • Iframes de publicidade
  • Scripts de métricas e análises
  • Scripts de testes A/B para experimentos
  • Bibliotecas auxiliares (como formatação de datas, animação e bibliotecas funcionais)

Scripts de terceiros podem fornecer funcionalidades eficientes, mas essa não é a história toda. Eles também afetam a privacidade, a segurança e o comportamento da página, além de serem particularmente problemáticos para o desempenho.

Desempenho

Qualquer quantidade significativa de JavaScript pode prejudicar o desempenho. Mas, como o JavaScript de terceiros normalmente está fora de seu controle, ele pode trazer outros problemas.

Rede

Configurar conexões leva tempo, e enviar muitas solicitações a vários servidores causa lentidão. Esse tempo é ainda maior para conexões seguras, que podem envolver buscas DNS, redirecionamentos e várias viagens de ida e volta ao servidor final que lida com a solicitação do usuário.

Scripts de terceiros geralmente aumentam a sobrecarga da rede com itens como:

  • Disparar solicitações de rede adicionais
  • Como extrair imagens e vídeos não otimizados
  • Armazenamento em cache HTTP insuficiente, o que força a busca frequente de recursos de rede
  • Compactação insuficiente do servidor de recursos
  • Várias instâncias de frameworks e bibliotecas extraídas por diferentes incorporações de terceiros.

Renderização

A forma como o JavaScript de terceiros é carregado é muito importante. Se isso for feito de maneira síncrona no caminho crítico de renderização, isso atrasa a análise do restante do documento.

Se um terceiro tiver problemas no servidor e não fornecer um recurso, a renderização será bloqueada até que a solicitação expire, o que pode levar de 10 a 80 segundos. É possível testar e simular esse problema com os testes de ponto único de falha do WebPageTest (link em inglês).

O que fazer

O uso de JavaScript de terceiros costuma ser inevitável, mas há ações que podem ser feitas para minimizar os efeitos adversos:

  • Ao escolher recursos de terceiros, dê preferência àqueles que enviam a menor quantidade de código, mantendo a funcionalidade de que você precisa.
  • Use os orçamentos de performance no conteúdo de terceiros para manter os custos sob controle.
  • Não use a mesma funcionalidade de dois fornecedores diferentes. Você provavelmente não precisa de dois gerenciadores de tags ou duas plataformas de análise.
  • Audite e limpe com frequência scripts redundantes de terceiros.

Para saber como auditar o conteúdo de terceiros e carregá-lo de maneira eficiente para melhorar o desempenho e a experiência do usuário, confira as outras postagens na seção Otimizar recursos de terceiros.