Como melhorar o PSI mobile da sua página com apenas 5 caracteres.

Oferecer uma boa experiência para os usuários, na minha opinião, é uma premissa básica de qualquer software. Especialmente para aplicações web, velocidade de carregamento é uma característica que pode impactar, profundamente, a experiência dos usuários.

Pensando nisso, desde o início de 2018, o Google começou a considerar a velocidade das páginas web como uma das métricas de seu algoritmo de rankeamento. Uma das ferramentas, utilizadas pelo Google, para avaliar a performance das páginas é o PSI - PageSpeed Insights, uma ferramenta que indica a perfomance de uma página em relação ao relatório Chrome UX e sugere otimizações.

Para saber se sua página atende aos critérios definidos pelo PSI, utilize o link https://developers.google.com/speed/pagespeed/insights/ e informe o endereço de sua página. Após a análise, a ferramenta dará uma nota de 0 a 100 e apresentará os feedbacks de como melhorar sua aplicação.

Se você está lendo este artigo então conhece meu site ravpacheco.com. Quando começei a construío-lo, além do obejtivo de organizar o acesso as todas as minhas informações profissionais, tinha apenas 2 pré-requisitos técnicos:

(Obs.: Na data em que este artigo foi escrito o site tinha a versão antiga, disponível em old.ravpacheco.com)

  • Flexibilidade para extensão - por isso a escolha por uma ferramenta open source via código.
  • Ser muito rápido - por isso a escolha por algo minimalista (na melhor expressão da palavra).

Recentemente, adicionei no site uma janela de chat que permite qualquer pessoa me enviar mensagens (de forma anônima ou identificada). A janela de chat é um componente da plataforma BLiP, chamado BLiP Chat.

O processo para incluir o BLiP Chat em uma página web é extremamente simples. Basta copiar e colar dois blocos de scripts no HTML de sua página.

<script
  src="https://unpkg.com/blip-chat-widget"
  type="text/javascript"
></script>
<script>
  ;(function () {
    window.onload = function () {
      new BlipChat()
        .withAppKey('your-api-key')
        .withButton({ color: '#222222' })
        .build()
    }
  })()
</script>

O arquivo carregado pelo componente (https://unpkg.com/blip-chat-widget) é bem simples e seu tamanho é de apenas alguns Kb. Para minha surpresa, após adicionar o componente o PSI mobile da minha página caiu 24 pontos.

Resultado PSI mobile antes da otimização

A justificativa pela queda de pontuação é o fato das tags scripts travarem o carregamento do restante da página, enquanto o arquivo do componente é baixado pelo browser.

Para contornar esse problema, uma estratégia simples é adicionar o atributo async (sim, apenas 5 caracteres) nos blocos scripts. Scripts que possuem o atributo async são executados em asincronamente, antes mesmo de todo o processo de parsing da página.

<script
  async
  src="https://unpkg.com/blip-chat-widget"
  type="text/javascript"
></script>
<script>
  ;(function () {
    window.onload = function () {
      new BlipChat()
        .withAppKey('your-api-key')
        .withButton({ color: '#222222' })
        .build()
    }
  })()
</script>

Após adicionar o atributo async, realizei uma nova análise na página e recuperei meus 24 pontos 😉.

Resultado PSI mobile depois da otimização

Uma outra opção para casos como esses é usar o atributo defer (também 5 caracteres) que posterga a execução do script para depois do parsing da página. Para saber mais sobre esses atributos veja os links [1] e [2].

Conclusão

Resumindo: Apresentei a ferramenta PSI, utilizada pelo Google para metrificar a performance e rankear paginas web, e demonstrei como melhorar a performance da sua aplicação utilizando o atributo async.

Gostou da dica? Concorda com meus argumentos? Tem alguma sugestão? Gostaria de sugerir outro ponto de vista ou criticar algo? Deixe seu comentário abaixo 👇. Se gostar do artigo compartilhe com seus amigos, quem sabe ele pode ser útil para outra pessoa também! 😉