Talvez você já tenha ouvido a frase Time to First Byte , mas de alguma forma o conceito parece escapar de algumas pessoas. Seja porque parece incrivelmente orientado para a tecnologia ou porque parece um conceito abstrato, não tão importante para o uso diário. Nada poderia estar mais longe da verdade.
Time to First byte não é realmente um conceito ou uma ideia que apenas os técnicos deveriam entender. Todos devem ser capazes de compreender seu significado e aplicá-lo na prática.
Neste artigo vou explicar para você, em poucas palavras: o que é o Time to First Byte, como isso afeta o seu site e por que você deve prestar bastante atenção nesse assunto se quiser dar aos seus leitores a melhor experiência possível ao navegar em seu site.
Qual é o tempo para o primeiro byte?
O tempo até o primeiro byte (TTFB) é uma medida usada como indicação da capacidade de resposta de um servidor web ou outro recurso de rede.
O TTFB mede a duração do usuário ou cliente fazendo uma solicitação HTTP até o primeiro byte da página sendo recebido pelo navegador do cliente. Esse tempo é composto pelo tempo de conexão do soquete, o tempo gasto para enviar a solicitação HTTP e o tempo necessário para obter o primeiro byte da página. Embora às vezes seja mal interpretado como um cálculo pós-DNS, o cálculo original de TTFB na rede sempre inclui a latência da rede para medir o tempo que leva para um recurso começar a ser carregado.
Essa é a explicação “techie” tirada diretamente da Wikipedia . Agora vamos traduzir isso para um mais simples que sirva a todos.
Tempo até o primeiro byte é o tempo que leva para você pressionar esse botão para carregar um site até o momento em que ele começa a renderizar. Se você falasse disso em termos de jogo, o tempo para o primeiro byte seria semelhante à “latência” ou “lag” que você tem durante o jogo. A latência é uma representação direta de quanta capacidade de resposta percebida seu site tem.
Quais fatores afetam o tempo até o primeiro byte?
O tempo para o primeiro byte pode ser representado por vários fatores, mas como este é um artigo do WordPress, reduziremos tudo ao que está sendo afetado quando o WordPress estiver em vigor.
- tempo de resposta do DNS
- Configuração e desempenho do servidor (PHP e servidor web)
- Plugins/tema do WordPress
- Cache HTML ativado/desativado
Cada um desses fatores adiciona uma latência adicional ao tempo que leva para o seu site começar a renderizar. Isso significa que tudo se soma . Não é que alguns desses fatores possam afetar a latência, todos esses fatores contribuem para mais latência! Então você pode adivinhar que para um cenário ideal, tudo deve ser rápido para você obter um tempo muito bom para o primeiro byte e se algo nessa cadeia estiver demorando mais para processar, seu tempo final para o primeiro byte sofrerá.
Isso é importante porque o tempo até o primeiro byte afeta tudo o que você ou seus leitores fazem em seu site. Cada vez que um leitor clica em algum link, imagem, postagem de blog ou página, o tempo até o primeiro byte será levado em consideração. Você pode ver que um tempo ruim para o primeiro byte significará que o leitor terá uma situação semelhante a um jogador conectado a um servidor ruim. Cada clique terá um atraso considerável associado e isso afetará a experiência .
Nota: Deste ponto em diante, usarei a sigla TTFB para denotar Time to First Byte apenas para acelerar um pouco as coisas.
1. Tempo de resposta do DNS
A resolução do DNS é o primeiro fator na equação. Certifique-se sempre de usar bons servidores DNS e que eles tenham nós espalhados por todo o mundo para obter a melhor resolução possível. Uma boa maneira de reduzir o TTFB nesta etapa é usar um bom serviço global como o CloudFlare , pois esse tipo de serviço implementa o cache DNS global. Esse método é extremamente bom para reduzir o TTFB armazenando em cache outras resoluções.
2. Configuração do Servidor
A segunda etapa na latência do TTFB é o servidor real. É aqui que sua hospedagem entra em ação. O tipo de configuração de servidor web que ele emprega e as técnicas de armazenamento em cache reduzirão bastante o TTFB. Por exemplo, se o seu servidor implementar o antigo interpretador PHP 5.4, você obterá um TTFB muito alto, enquanto usar uma configuração moderna do PHP 7.1 reduzirá esse tempo por um fator de 2 ou mais.
Isso ocorre porque o interpretador PHP desempenha um papel importante no processo. Cada vez que você solicitar uma página de site ou postagem de blog que não esteja em cache , o servidor precisará processar os arquivos PHP em questão para convertê-los em formato HTML de volta ao seu navegador. Quanto mais complexos forem os arquivos PHP, mais tempo levará para pré-processá-los e enviá-los de volta ao seu navegador.
Você pode ver que o desempenho do servidor também terá uma parte importante em todo o processo. Quanto mais rápida a CPU e mais recursos sua hospedagem alocar para você, mais rápido ela processará esses arquivos e, portanto, seu TTFB será menor.
Além disso, se sua hospedagem implementar um cache PHP, isso será ainda mais reduzido na segunda solicitação, pois fornecerá uma versão em cache desse arquivo em vez de ter que processar o arquivo PHP novamente.
Você pode ver agora que existem 2 tipos de negócios de hospedagem, os serviços gerais (sem cache) e os serviços de hospedagem exclusivos do WordPress que geralmente implementam um mecanismo de cache para PHP , reduzindo seu TTFB no processo.
3. Plugins e Temas do WordPress
O terceiro passo na equação TTFB é o seu site real. Este é o fator mais importante e eu vou te mostrar o porquê.
Normalmente o WordPress dará à sua hospedagem vários arquivos PHP para processar e quanto mais complexos eles forem, mais tempo levará para processar. O WordPress é servido por plugins e esses plugins adicionam código extra ao processamento final do PHP, portanto, com isso em mente, você pode ver claramente que quanto mais plugins você instalou, mais tempo levará para sua hospedagem processá-los e, portanto, seu TTFB vai aumentar.
Quanto menos melhor
Como regra geral, menos plugins é normalmente melhor. Claro, um plugin mal codificado pode ser muito pior do que 10 plugins habilmente codificados ou é possível instalar dois plugins que entram em conflito. Mas, de um modo geral, a condensação do número de plugins facilita o gerenciamento de atualizações e mantém a velocidade do seu site. Aqui está um exemplo de uma quantidade razoável de plugins para uma instalação.
Este próximo exemplo pode ser problemático (novamente – depende parcialmente do que você instalou).
E, claro, qualquer coisa além da barreira dos 30 plugins provavelmente não é boa para sua latência. Você pode ter certeza de que um site com mais de 40 plugins terá um TTFB severamente alto mesmo se estiver hospedado em um serviço de hospedagem espetacular e eu vou te mostrar o porquê.
4. Cache de HTML
O último fator é o mais importante e está relacionado ao mecanismo de cache que você decide implementar em sua instalação do WordPress. Embora existam vários tipos de mecanismos de cache no WordPress, o mais eficaz de todos é o HTML Caching.
Ter um bom plugin como o KeyCDN Cache Enabler terá um tremendo impacto no seu TTFB, ainda mais do que a própria hospedagem. Ele converterá todos esses arquivos em HTML, então, uma vez que o cache estiver ativo, seus leitores não precisarão passar pelo pré-processador PHP em sua hospedagem e será apenas o próprio servidor responsável por servir seu conteúdo. Você pode acelerar ainda mais o processo se decidir usar uma hospedagem que inclua nginx em vez de apache como servidor web principal, como expliquei neste artigo .
Tempo para estudos de caso do primeiro byte: por que é importante
Agora deixe-me mostrar do que estamos falando. Os estudos de caso a seguir são exemplos reais de configurações de sites em vários servidores, com um resumo prático de benchmark no final.
Um site lento em um servidor lento
Ter um site lento pode ser uma dor para o TTFB e se você não se importa com um bom serviço de hospedagem, então você deve estar preparado para enfrentar o pior resultado possível.
Vamos analisar este site em detalhes. Para isso vou usar o Pingdom Tools porque é uma excelente ferramenta para você ver o TTFB. O truque é abrir os detalhes na primeira solicitação feita ao site.
Como você pode ver, o site tem um TTFB não inferior a 4,2 segundos! Isso significa que 4 segundos completos se passam até você obter alguma indicação de que o site está realmente disponível.
Agora multiplique esse tempo por todos os cliques que você fará no site e verá quanta dor isso pode causar a um leitor. Obviamente, o TTFB deve ser adicionado ao tempo total que o site leva para renderizar. O resultado será catastrófico para o desempenho , pois o site levará até 7 segundos para renderizar corretamente às vezes.
A combinação de vários fatores leva a isso. Um site mal otimizado sem um mecanismo de cache, um serviço de hospedagem muito lento e um interpretador PHP completamente desatualizado, que ainda está executando o PHP 5.4. Mesmo quando o site usa cloudflare como um mecanismo de cache externo, não há nada que possa ser feito para melhorar a situação, se seu site e sua hospedagem não cooperarem.
Um site rápido em um servidor médio
Vamos ver o que acontece quando colocamos um site muito rápido em um servidor médio que usa Apache e PHP 7.1
Com um site com menos de 10 plugins sem cache, o resultado é pelo menos 5 vezes melhor que o anterior. Você pode ver que o TTFB agora está definido em 521ms. Isso significa que o site levará 0,5 segundo para começar a renderizar no seu navegador, desde o momento em que sai do servidor até o momento em que chega ao seu computador.
O que acontece quando ativamos o cache nesse site? A magia acontece. Um servidor geralmente mediano rodando no Apache pode dar excelentes resultados com apenas 152ms de TTFB. Você pode ver o quanto um bom mecanismo de cache do WordPress afeta os resultados.
Um site muito lento em um servidor rápido
Agora vamos ver o contrário. O que acontece se colocarmos um site muito lento em um servidor muito rápido.
Um servidor otimizado rodando Plesk com nginx e PHP 7.1.11 levará 1,29 segundos para renderizar um site cheio de plugins (mais de 27).
Mas quando ativamos o Caching no WordPress através do adorável KeyCDN Cache Enabler, o resultado é incrível. O site muito lento tem seu TTFB reduzido para apenas 400ms.
Um site rápido em um servidor rápido
Agora vamos ver a situação ideal. Um site rápido rodando em um servidor rápido.
O mesmo servidor que estava dando um TTFB de 1,29 segundos em um site lento responde em menos de 500ms em um site rápido sem cache.
Se habilitarmos o cache, os resultados são simplesmente incríveis. Um servidor rápido, combinado com um site rápido com cache ativado, oferece menos de 150ms de TTFB!
Resultados de referência
Vamos ver os resultados em um grande gráfico para os amantes de benchmark.
Você pode ver que a hospedagem desempenha um papel importante na redução do seu TTFB e na melhoria da latência e do desempenho percebido do seu site, mas o que você faz com o site tem o maior impacto no desempenho.
Empacotando
Ter uma boa métrica de TTFB garantirá que você terá um site rápido e responsivo, reduzirá seu tempo geral de renderização e servirá como uma excelente métrica para determinar o desempenho. Normalmente, quanto maior o TTFB, mais lento será o seu site. Ter o TTFB em mente quando você compara seu site é fundamental, pois esse tempo também pode ser usado para determinar gargalos na sua instalação do WordPress. Você pode fazer um exercício simples simplesmente desabilitando todos os plugins e trocando para um tema básico e então medir o TTFB novamente. Você vai se surpreender com os resultados.
Eu quero terminar este artigo dizendo que esta não é de forma alguma a “uma métrica para governar todas”, pois há outros fatores a serem considerados, incluindo desempenho do banco de dados, largura de banda disponível e velocidade da rede. Mas como o TTFB geralmente também é afetado por todos esses fatores, é uma boa indicação de gargalos em outros lugares.
Espero que você tenha a chance de experimentar seu TTFB. Deixe seus comentários abaixo. Adoraríamos ouvir sobre seus próprios testes ou ajudar com qualquer dúvida que você possa ter.