Automatizar a medição de desempenho na Web

A performance da Web pode ter um impacto enorme na toda a experiência do usuário. Se você tem tentado melhorar o desempenho do seu site, provavelmente já ouviu falar do PageSpeed Insights, uma ferramenta que analisa páginas e oferece conselhos sobre como torná-las mais rápidas com base nas práticas recomendadas para desempenho da Web em dispositivos móveis e computadores.

As pontuações do PageSpeed são baseadas em vários fatores, incluindo a minimização dos scripts, a otimização de imagens, a compactação do conteúdo, o tamanho adequado dos alvos de toque e a evitação de redirecionamentos da página de destino.

Com 40% de pessoas potencialmente abandonando páginas que levam mais de três segundos para carregar, é cada vez mais importante se preocupar com a velocidade de carregamento das páginas nos dispositivos dos usuários.

Métricas de performance no processo de build

Embora seja possível acessar manualmente os PageSpeed Insights para saber como suas pontuações estão, vários desenvolvedores têm perguntado se é possível ter uma pontuação de desempenho semelhante no processo de criação.

A resposta é: com certeza.

Introdução ao PSI para Node

Hoje, temos o prazer de apresentar o PSI para Node, um novo módulo que funciona muito bem com Gulp, Grunt e outros sistemas de build. Ele pode se conectar ao serviço do PageSpeed Insights e retornar um relatório detalhado da sua performance na Web. Confira uma prévia do tipo de relatório que ele ativa:

Tela de relatórios de desempenho

Os resultados acima são bons para ter uma ideia do tipo de melhorias que podem ser feitas. Por exemplo, um valor de 5,92 para dimensionar o conteúdo para a viewport significa que ainda é possível fazer algum trabalho, enquanto um valor de 24 para minimizar os recursos de bloqueio de renderização pode sugerir que você precisa adiar o carregamento do JS usando o atributo async.

Redução da barreira de entrada para o PageSpeed Insights

Se você já tentou usar a API PageSpeed Insights ou qualquer uma das ferramentas que criamos com base nela, provavelmente precisou se registrar para ter uma chave de API dedicada. Sabemos que, embora isso leve apenas alguns minutos, pode ser um problema para quem quer receber insights como parte do fluxo de trabalho normal.

O serviço do PageSpeed Insights aceita solicitações sem uma chave de API para até uma solicitação a cada cinco segundos (o suficiente para qualquer pessoa). Para uso mais regular ou builds de produção sérios, é recomendável registrar uma chave.

O módulo PSI oferece suporte a uma opção nokey para configuração em menos de alguns minutos e a opção key por um pouco mais de tempo. Os detalhes sobre como se registrar para uma chave de API estão documentados.

Primeiros passos

Você tem duas opções para integrar o PSI ao seu fluxo de trabalho. Você pode integrá-la ao seu processo de build ou executá-la como uma ferramenta instalada globalmente no sistema.

Processo de versão

Usar o PSI no seu processo de build do Grunt ou do Gulp é bastante simples. Se você estiver trabalhando em um projeto do Gulp, poderá instalar e usar o PSI diretamente.

Instalar

Instale o PSI usando o npm e transmita --save-dev para salvar no arquivo package.json.

npm install psi --save-dev

Em seguida, defina uma tarefa do Gulp para ela no gulpfile da seguinte maneira (também abordada no nosso projeto de exemplo do Gulp):

var psi = require('psi');
gulp.task('psi', function (cb) {
    psi({
        nokey: 'true', // or use key: ‘YOUR_API_KEY’
        url: site,
        strategy: 'mobile',
    }, cb);
});

Para o exemplo acima, é possível executar a tarefa usando:

gulp psi

Se você usa o Grunt, pode usar o grunt-pagespeed (link em inglês) de James Cryer, que agora usa o PSI para gerar relatórios.

Instalar

npm install grunt-pagespeed --save-dev

Em seguida, carregue a tarefa no Gruntfile:

grunt.loadNpmTasks('grunt-pagespeed');

e configurá-lo para uso:

pagespeed: {
    options: {
    nokey: true,
    url: "https://www.html5rocks.com",
    strategy: "mobile"
    }
}

Em seguida, execute a tarefa usando:

grunt pagespeed

Como instalar como uma ferramenta global

Também é possível instalar o PSI como uma ferramenta disponível globalmente no seu sistema. Novamente, podemos usar o npm para instalar a ferramenta:

$ npm install -g psi

Em qualquer janela de terminal, solicite relatórios do PageSpeed Insights para um site (com a opção nokey ou um key específico da API, conforme abaixo):

psi http://www.html5rocks.com --nokey --strategy=mobile

ou para quem tem uma chave de API registrada:

psi http://www.html5rocks.com --key=YOUR_API_KEY --strategy=mobile

Pronto.

Faça da performance parte da sua cultura

Precisamos começar a pensar mais sobre o impacto dos nossos designs e implementações na experiência do usuário.

Soluções como o PSI podem monitorar a performance da Web em computadores e dispositivos móveis e são úteis quando usadas como parte do fluxo de trabalho regular pós-implantação.

Queremos saber sua opinião e esperamos que o PSI ajude a melhorar a cultura de performance da sua equipe.