Cuidado com as sugestões do PageSpeed Insights. Algumas fazem sentido, outras não. As vezes o sistema não consegue detectar algumas optimizações e as vezes alguns dos elementos que fazem parte do problema são do Google (o script do Google Analytics, por exemplo). Algumas coisas não podem ou não devem ser optimizadas.
Por exemplo, ter o CSS todo inline pode fazer sentido para sites onde os visitantes visitam apenas uma página, mas pode ser negativo para sites onde os visitantes visitam várias páginas. PageSpeed Insights é uma ferramenta que faz sugestões, mas nem sempre está certa. É preciso ver o que faz mais sentido para o nosso site.
Nos meus sites (movidos a WordPress) tenho dois plugins que uso sempre:
Autoptimize para juntar ficheiros e "minificar" CSS, JS e o HTML da página e o
WP Super Cache para fazer cache das páginas (com uma configuração
parecida a esta). As vezes, quando preciso de algo mais avançado para a cache, uso o
W3 Total Cache mas grande parte dos sites não precisam de um plugin com tanta opção.
O primeiro plugin diminui o número de
requests e o tamanho da página enquanto que o segundo cria uma cópia estática da página, enviando a página mais depressa para o utilizador. Também é útil para evitar problemas com os picos de tráfego que as vezes recebemos. Isto é fundamental principalmente em alojamentos partilhados.
Coisas que faço quando crio ou compro um site:
-
Usar só aquilo que é necessário: quanto menos tralha, melhor. Usar só os plugins que são necessários e não ter vários plugins a fazerem a mesma coisa. Não carregar o site de publicidade. Evitar ao máximo usar conteúdo externo (widgets, redes sociais, etc).
-
Tema: Muitos dos temas que existem na internet são multi-funções. Fazem tudo e mais alguma coisa! Isto significa que muitos dos scripts e css que são carregados não são necessários para a configuração que utilizamos. Sempre que posso, crio um tema simples ou pago a alguém para fazer um. Quando não posso ou não faz sentido, uso um da internet, mas tem que ser simples e ter o mínimo de .js possível.
-
Conteúdo externo: Se olharmos para grande parte dos sites que visitamos, percebemos que eles são lentos porque usam muita merda externa (basta desactivar o javascript no browser e o site passa a ser rápido). Usam o Disqus para os comentários, têm botões de partilha nas redes sociais, etc. Basicamente coisas que não são mesmo necessárias e que podem ser removidas ou substituídas por outras soluções. Botões de partilha? Porque não criar os nossos botões usando CSS? Resolve o problema da velocidade, aumenta a privacidade do utilizador e o efeito é o mesmo. E cuidado com a publicidade... muita publicidade nem sempre significa muito lucro, mas vai sempre resultar num site mais pesado.
-
Imagens: Normalmente as imagens são os elementos mais pesados nas páginas. Todas as fotos devem estar no formato .jpg, com alguma compressão, e optimizadas para a web. Nada de PNGs quando podemos usar JPG. Depois é necessário que todos os tamanhos das imagens (thumbnails, por exemplo) estejam optimizados, por isso uso o
EWWW Image Optimizer ou o
WP Smush (melhor para quem usa alojamentos com limitações). Em alguns casos faz sentido usar o formato .webp para alguns browsers (Chrome, por exemplo), algo que se pode facilmente fazer com uma conta paga no Cloudflare.
-
Alojamento: O alojamento é uma das coisas mais importantes. Se o alojamento for lento, o site vai ser lento. Isto é um problema grande principalmente em alojamentos partilhados e embora um plugin de cache ajude muito, não resolve todos os problemas. É importante escolher o alojamento com cuidado. Por exemplo, um site WordPress num alojamento com HDDs é uma coisa, num alojamento com que usa SSDs é outra completamente diferente. As vezes é melhor pagar mais e ter um serviço melhor.
-
CDN: Uma CDN é importante, principalmente se o site tiver visitantes de muitos países, mas em alguns casos não é necessário. Um site com 50 visitas diárias e rentabilizado com Adsense quase de certeza que não precisa de uma CDN. Também vai ajudar a ter um melhor resultado em serviços como o PageSpeed Insights já que estão a fazer o teste a partir dos EUA, mas, e é importante não esquecer isto, a pontuação do Insights não é o mais importante.
Uma nota sobre o Cloudflare: É um serviço bastante útil,
mas é necessário alguma configuração para obter bons resultados. Por defeito só CSS, JS e imagens são mantidas em cache por algumas horas. As páginas não são e a velocidade de carregamento pode ser afectada porque passa a ser utilizador <-> cloudflare <-> alojamento em vez de utilizador <-> alojamento.
Devemos usar as
Page Rules para manter todo o conteúdo (js, css, imagens, etc) em cache por um período maior (por exemplo, 1 mês para ficar nos servidores deles + 1 ano para a cache do browser) e também fazer cache das páginas por algumas horas para que não seja necessário ir ao alojamento buscar a página sempre que alguém visite o site. Pode ser necessário algumas alterações para usar o Cloudflare desta maneira (o plugin
WordPress SuperSonic with CloudFlare é bastante útil para ir limpando a cache quando são feitas alterações). Por exemplo, se o site usar os comentários do WordPress, vai ser um problema para mostrar logo a página com o novo comentário ao utilizador... nesse caso é necessário usar outros sistemas de comentários (
wpDiscuz ou o
Epoch, ou então o Disqus (que eu detesto)). É uma coisa complicada de fazer, e muito confusa para quem está a começar, mas só assim podemos aproveitar ao máximo CDNs/reverse proxies como o Cloudflare.
Para terminar, é importante ser capaz de se
desemerdar quando temos dúvidas. Como mudar os nameservers? Qual é a melhor configuração do Cloudflare para sites WordPress? Encontramos a resposta no Google em 1 ou 2 minutos. Se não houver informação em português, há em inglês. Isto é uma sugestão Aderio, não uma crítica ou ataque (eu era igual quando comecei).
Espero ter ajudado.