8 Verdades Inconvenientes Sobre Velocidade de Sites

Todos queremos sites extremamente rápidos, mas será que estamos aptos a aceitar algumas verdades desconfortáveis sobre velocidade de carregamento?

imagem de um avião supersônico

Que você, eu, e todas as pessoas que têm sites na Internet ansiamos por tempos de carregamento cada vez mais curtos, ninguém duvida. Entretanto, ter um site que carregue muito rápido — do tipo que o pessoal do SEO diz que agrada ao bot — demanda muitos cuidados que vão além de ter um bom servidor e usar caches.

Nos próximos parágrafos vamos falar sobre algumas verdades desagradáveis sobre velocidade de carregamento de sites. Desagradáveis, mas importantes e necessárias — e certamente óbvias, mas nem por isso negligenciadas.

8 – Existem fatores ocultos que influenciam a rapidez do site

O protocolo HTTP (e mais ainda o HTTP/2, que se já não é não vai demorar nada para tornar-se padrão de fato para a web) conta com algumas sutilezas que podem impactar no tempo de carga de uma página.

Cabeçalhos de http push, preload, dns prefetch e outros podem fazer com que o navegador antecipe quais recursos vão ser necessários para a exibição da página, carregando-os ao mesmo tempo que os demais objetos utilizando-se da multiplexação TCP quando aplicável, ou mesmo pela correta utilização de uma conexão TCP extra.

Não fazer uso destas sutilezas técnicas não vai prejudicar seu site, mas caso seu desenvolvedor aceite o desafio de afinar seu site nos mínimos detalhes, você poderá se sobressair ante a concorrência.

7 – Anúncios acabam com a velocidade do site

Não há o que elaborar no que diz respeito a esse aspecto: anúncios acabam com a velocidade de carregamento de qualquer site, por uma série de motivos. O principal é que as redes de anúncios disparam diversos scripts secundários que acompanham um simples banner, com o objetivo de garantirem estatísticas e métricas que são necessárias para justificar o investimento dos anunciantes.

7.1 – “Pixels” e scripts de rastreamento também deixam o site lento

Se os scripts de rastreamento das redes de anúncios deixam o site lento, o seu Analytics, os pixels do Facebook, de suas redes de afiliado, e quaisquer outros scripts de acompanhamento também têm essa característica.

6 – Medidas de velocidade são relativas

Quando alguém diz que quer ter um site rápido deveria logo em seguida perguntar-se para quem quer que essa rapidez seja aparente.

Vamos fingir que todos nós pensamos na percepção do usuário, e não na do Googlebot, para continuar a reflexão.

A primeira coisa a se avaliar é onde estão os usuários (ou onde está a persona, em termos de marketing) com relação a onde está, fisicamente, o servidor que hospeda nosso site.

Para ilustrar, vamos comparar duas medidas de velocidade da página inicial da própria PortoFácil, usando dois locais de medição do Pingdom Tools.

Primeira medida de velocidade: 546ms

Segunda medida: 2,11s

Na primeira medição a ferramenta apresentou um tempo de praticamente meio segundo para o carregamento da página. Na segunda a mesma página apresentou um tempo 4× o primeiro, acima de 2s. Por quê?

A única diferença foi que escolhemos locais de teste diferentes em cada medição: no primeiro testamos de Nova Iorque, Estados Unidos; no segundo testamos a partir de Melbourne, na Austrália.

Acontece que a nossa persona não está nem lá nem acolá. O público do nosso site está bem aqui, no Brasil. Ou seja, nenhum dos dois testes tem qualquer validade absoluta (relativa sim, falaremos abaixo).

5 – Nenhum medidor de velocidade tem precisão

Embora todo mundo use prints deste ou daquele medidores de velocidade de sites para impressionar os amigos, os concorrentes, os clientes, sejamos honestos: nenhum tem precisão suficiente para ser considerado individualmente.

A maior utilidade destas ferramentas é apontar as possibilidades de melhoria em uma determinada página, é servir como um guia para que façamos a otimização dos recursos que temos com o máximo possível de eficiência.

A ênfase no termo “possível”, reiteramos, é porque muitas vezes não haverá a menor possibilidade executar uma ou mais das medidas propostas pelas ferramentas. O principal exemplo é pelo tempo extra implicado pelos anúncios: se for para não ter anúncios, a maioria de nós tampouco terá motivos para ter sites.

5.1 – O navegador é o medidor mais preciso que existe

Se você quiser saber realmente o quão rápido o seu site carrega, calce os sapatos do seu visitante: abra suas páginas no navegador com as ferramentas de desenvolvimento ativas e fique de olho na aba “rede” (se não souber fazer isso, ou não conseguir interpretar a informação, peça ajuda ao seu programador).

No caso da página inicial da PortoFácil o resultado no nosso Chrome é o seguinte:

Tempo real de carregamento: 1,37s

Embora o documento tenha sido completamente carregado em 377ms o carregamento total da página levou 1,37s. A marca de 377ms é tempo que devemos tentar diminuir (e aí poderemos usar as sugestões das ferramentas como um guia do que tentar fazer), porque é isso que o bot considera, e não o tempo de execução da página (que é o segundo adicional na medição acima).

5.2 – Medidores de velocidade ignoram tecnologias mais avançadas

Outro problema crônico dos medidores de velocidade é sua incapacidade de adaptar-se às tecnologias mais recentes com agilidade.

No momento em que este artigo é redigido, nenhum dos testes de velocidade de site leva em consideração o fato de o protocolo HTTP/2 fazer multiplexação de requisições, ou seja: numa única conexão TCP trafegam em paralelo todos os arquivos (do mesmo domínio que o documento inicial) que são referenciados pela página.

Desta forma não faz mais sentido utilizar medidas para combinar e encolher — minify — scripts e folhas de estilo. Bem, o minify até faz sentido ainda, mas combinar os arquivos custa mais caro (em recursos de processamento) do que o suposto ganho de velocidade de carregamento da página.

Outro exemplo é que nenhum medidor dá suporte ao protocolo Brotli de compactação, que compacta bem mais que o Gzip e já é suportado por todos os navegadores modernos e por qualquer webserver que se preze.

4 – A latência pode fazer diferença

8 Verdades Inconvenientes Sobre Velocidade de Sites

Este é um assunto que requer um pouco mais de cuidado em sua abordagem. Muita gente aposta na redução da latência como fator de aceleração do download de uma página.

Em termos de rede, latência é como se chama o tempo necessário para que uma menor unidade de informação saia de um determinado dispositivo, vá ao seu destino e retorne. É o popular ping e assim chamaremos a latência doravante, com vistas na simplificação da mensagem.

Dizemos que a latência pode fazer diferença, em vez de afirmar categoricamente, porque existem muitas outras variáveis mais importantes nesse universo de aceleração de sites. Além de tudo o que já falamos a vamos falar à frente, poderíamos citar o exemplo da largura de banda disponível para o site: há empresas que vendem servidores no Brasil com uma banda tão estreita que a vantagem do ping baixo fica totalmente anulada.

Como diminuir o ping de seu site

Existem duas maneiras de diminuir o ping de seu site: hospedando-o em um servidor geograficamente perto do seu visitante ou utilizando um serviço de proxy que tenha pontos de presença próximos a ele.

Servidores no Brasil

A PortoFácil dispõe de VPSs no Brasil nos datacenters mais modernos de São Paulo (e da América Latina), com largura de banda suficiente para qualquer tamanho de cliente.

No momento da redação deste artigo temos disponibilidades de máquinas nos datacenters da Claro e da Vivo, com as seguintes configurações de rede:

  • datacenter da Claro: 25Mbps de largura de banda, ping de 11ms
  • datacenter da Vivo: 300Mbps de largura de banda, ping de 15ms

O tempo de ping acima é medido de nosso laboratório, com conexão de rede Vivo Fibra de 100Mbps.

Para fins de comparação, o ping para o datacenter da Amazon em São Paulo fica na faixa dos 50ms, de nossa conexão. O ping para nossos próprios servidores no Canadá fica em torno de 160ms.

Utilização de um proxy

O proxy mais barato e mais fácil de usar para quem quer diminuir ping é, sem dúvida, a Cloudflare.

Os tempos de ping para a Cloudflare, a partir de nosso laboratório (o mesmo das medidas de ping para os servidores no Brasil) são:

  • contas gratutias: 100ms
  • contas pagas: 22ms

Esta é uma novidade recente da Cloudflare: as contas gratuitas não estão mais sendo roteadas pelo seu ponto de Presença em Guarulhos (SP), mesmo que seja esta a rota mais curta, por causa dos custos de conectividade no Brasil. Em vez disso, o tráfego da conta gratuita está sendo roteado pelo ponto de presença que eles têm em Buenos Aires.

Já as contas pagas são roteadas pelo melhor ponto de presença, de modo a proporcionar ao usuário o menor tempo de ping possível.

Falando especificamente de ping, uma conta Pro da Cloudflare pode ser melhor para o site do que um servidor no Brasil quando a audiência desejada não estiver localizada em terras tupiniquins. Caso contrário, é melhor investir em um VPS brasileiro mesmo.

3 – AJAX pode ser prejudicial à velocidade de carregamento

Na nossa vivência diária, lidando com milhares de sites de clientes, é comum observarmos com uma certa tristeza as pessoas fazendo uso muito ineficiente do AJAX (carregamento assíncrono de partes do site).

Em se tratando de blogs, particularmente, devemos evitá-lo a todo custo. E quando for algo realmente necessário todos os esforços devem ser feitos no sentido de usar os recursos da maneira mais sensata e otimizada possível.

No caso da página inicial da PortoFácil (pelo menos na época da redação deste artigo) temos três chamadas que são responsáveis pelo retardo no carregamento: os preços dos VPSs e dos servidores dedicados mais baratos disponíveis em estoque são dinâmicos (duas chamadas AJAX); e nosso plugin antispam (WPBruiser) também carrega um script dinâmico que demanda um certo tempo de carregamento e processamento. E, de bônus, o Analytics também ajuda a adicionar uns bons milissegundos ao tempo total.

Assim, em resumo, evite recursos bobos como rolagem infinita, busca com AJAX, e outras amenidades inúteis, pois elas podem ter um impacto bem ruim na velocidade de seu site.

2 – Otimize suas imagens

Essa preocupação os clientes da PortoFácil não precisam ter, pois a Mônica otimiza imagens nos servidores automaticamente.

Entretanto, a Mônica não faz nenhum tipo de adequação nas dimensões das imagens armazenadas no servidor, justamente porque ela não tem como saber que dimensões são adequadas para cada caso.

A sugestão que damos é de utilizar o plugin Imsanity para garantir que as imagens enviadas para o servidor não excedam as dimensões úteis para o tema, já que o plugin pode redimensionar automaticamente as imagens maiores que um limite previamente determinado. Além de implicar economia de espaço de armazenamento, esta prática também colabora para que não haja o carregamento de objetos desnecessariamente grandes e pesados no navegador do visitante (principalmente quando o visitante é o bot que tanto tentamos agradar).

1 – Cache é fator mais importante na velocidade do site

Principalmente em se tratando de blogs, nada é mais importante do que a eficiência do cache de páginas para a rapidez das páginas. Se uma pessoa tem por objetivo obter tempos mínimos de carregamento, então deve priorizar o uso eficiente de caches a qualquer custo.

No site da PortoFácil usamos o recurso do “cache everything” da Cloudflare, cuja utilização está descrita em detalhes aqui. Voltaremos a falar sobre isso mais à frente, quando abordarmos a questão da localização geográfica do servidor.

Para a maioria dos nossos clientes recomendamos usar o WordPress com o cache baseado em REDIS, mas há casos em que será necessário optar por uma outra abordagem (cache estático, com arquivos fisicamente criados no disco para evitar totalmente as regras de reescrita de URL do WP).

Claro que nem todo mundo consegue adaptar-se a estes caches agressivos, aí vale o dito popular: o que não tem remédio, remediado está.

Desempenho extremo com cache “aquecido” previamente

Novamente, nem todo mundo consegue tirar proveito desta dica — tais como os blog com muitos milhares de artigos publicados. Mas é o hack que nós usamos para fazer com que nossos próprios sites estejam com os caches sempre populados com as versões mais recentes de cada post.

Trata-se de um script em Bash, feito para rodar no Terminal do Mac OS X. Provavelmente funcionará — com ou sem modificações — no Windows 10, e muito provavelmente funcionará sem modificação alguma no Linux.

Para utilizá-lo tem que saber linha de comando.

cachewarmer.sh:

Salve o arquivo acima e execute-o passando como parâmetro o nome do seu domínio:

. cachewarmer.sh www.portofacil.net

Observações sobre o script

  1. O código acima está preparado para abrir um sitemap no formato do YOAST SEO. A partir dele todas as demais URLs são descobertas e uma por uma será requisitada como se fosse um visitante utilizando o IE11. Para outros formatos de sitemap será necessário alterar o código.
  2. O script só trabalha com sites com suporte a SSL (HTTPS) (entenda por quê).
  3. Informe a URL final de seu site, com ou sem www.. O código não está preparado para ir atrás da versão correta do seu site.
  4. As requisições são feitas uma de cada vez, em sequência, de forma a gerar o mínimo impacto no servidor. Mas problemas podem acontecer.
  5. Dependendo do tamanho do seu site (na verdade, do XML de mapa do site) o script poderá demorar de minutos a horas para finalizar. É normal.
  6. Idealmente esse script deve ser executado sempre que algum evento de limpeza de cache ocorrer. Caberá a você decidir qual é a periodicidade adequada para cada um de seus sites.

É claro que não esperamos que todo mundo tenha a possibilidade de rodar esse script por si mesmo em suas máquinas. Nossos clientes só precisam entrar em contato com o suporte técnico para obter ajuda para fazer esse docinho rodar corretamente.

Existem plugins para o WordPress que prometem manter o cache do blog sempre populado, mas não encontramos nenhum que fizesse realmente este trabalho de maneira eficiente e confiável.

A “prova do crime”

Desde que passamos a utilizar o expediente de pré-carregamento dos caches em nosso site reduzimos o tempo de download de página, no Google Webmaster Tools, à metade. A imagem abaixo reproduz o gráfico fornecido pelo próprio Google, e a setinha marca o dia em que passamos a usar essa técnica efetivamente (houve um teste antes, mas uma setinha vermelha é suficiente para este gráfico).

8 Verdades Inconvenientes Sobre Velocidade de Sites

Considerações finais

Ter um site rápido como bala é o sonho de todo mundo que vive de Internet, mas nem todo mundo está disposto a efetivamente adequar seu site para obter este resultado.

No presente artigo propositalmente omitimos observações óbvias ou (que já deveriam ser) de amplo conhecimento, como:

  • não usar plugins desnecessários no WP,
  • evitar plugins ou sistema de estatística no servidor,
  • não usar webfonts.

O objetivo era citar os principais aspectos que impactam diretamente na velocidade de carregamento de uma página, com exemplos práticos e evidências.

Nosso suporte está ao seu dispor para ajudar a encontrar a melhor fórmula para que as páginas de seu site carreguem tão rapidamente quanto possível, para você deixar a concorrência comendo poeira.

 

Quero ser cliente da PortoFácil!Contato

Avalie este conteúdo!

Avaliação média: 4.97
Total de Votos: 149

8 Verdades Inconvenientes Sobre Velocidade de Sites

Compartilhe

Publicado por Janio Sarmento – 09 de julho de 2018