Como Otimizar seu Site e Tirar Nota Máxima no PageSpeed

Um Guia para Obter a Melhor Nota no PageSpeed

23/12/2023

Como Otimizar seu Site e Tirar Nota Máxima no PageSpeed

Como Otimizar seu Site e Tirar Nota Máxima no PageSpeed

Desvendando o PageSpeed: Importância e Impacto

O Google PageSpeed Insights é uma ferramenta essencial para qualquer desenvolvedor web ou proprietário de site. Ela não apenas avalia a velocidade de carregamento do seu site, mas também fornece insights valiosos sobre como melhorá-la. Uma pontuação alta no PageSpeed é crucial não só para proporcionar uma experiência de usuário superior, mas também para melhorar o SEO do seu site, aumentando sua visibilidade e atratividade para os motores de busca.

Sites lentos tendem a ter taxas de rejeição mais altas e menor engajamento, o que pode afetar negativamente os negócios online. Portanto, entender e aplicar as recomendações do PageSpeed Insights é fundamental para o sucesso do seu site.

Cache Eficiente através do .htaccess: Acelere Seu Site

A implementação de cache via .htaccess é uma estratégia eficaz para acelerar o carregamento de sites. Configurar o cache de arquivos estáticos, como imagens, CSS, JavaScript, vídeos e fontes, melhora significativamente os tempos de carregamento ao armazenar esses arquivos no navegador do usuário, reduzindo a necessidade de carregamentos repetidos.

# EXEMPLO DE CÓDIGO .HTACCESS PARA CACHE
<IfModule mod_expires.c>
ExpiresActive On
# Imagens
ExpiresByType image/jpeg "access plus 1 month"
ExpiresByType image/gif "access plus 1 month"
ExpiresByType image/png "access plus 1 month"
ExpiresByType image/webp "access plus 1 month"
ExpiresByType image/svg+xml "access plus 1 month"
ExpiresByType image/x-icon "access plus 1 month"
ExpiresByType image/avif "access plus 1 month"
# Vídeo
ExpiresByType video/mp4 "access plus 1 month"
ExpiresByType video/mpeg "access plus 1 month"
# CSS, JavaScript
ExpiresByType text/css "access plus 1 month"
ExpiresByType text/javascript "access plus 1 month"
ExpiresByType application/javascript "access plus 1 month"
# Fontes
ExpiresByType font/ttf "access plus 1 month"
ExpiresByType font/woff "access plus 1 month"
ExpiresByType font/woff2 "access plus 1 month"
ExpiresByType font/otf "access plus 1 month"
</IfModule>

Este código é um exemplo de como configurar o cache para uma ampla gama de tipos de arquivo, com um período de expiração uniforme de um mês, otimizando a performance do site.

Minificação, Unificação e Compressão de CSS e JS: Maximizando a Performance do Site

A minificação e unificação de arquivos CSS e JavaScript são passos críticos para otimizar a velocidade de carregamento do seu site. Minificar esses arquivos envolve remover espaços em branco desnecessários, quebras de linha e comentários, enquanto a unificação combina múltiplos arquivos em um único, reduzindo o número de solicitações HTTP necessárias.

Existem várias ferramentas online gratuitas para facilitar o processo de minificação e unificação:

Lembre-se de manter as versões originais dos arquivos para desenvolvimento e manutenção. Em ambientes de produção, use as versões minificadas, unificadas e comprimidas para garantir a melhor performance possível.

Além da minificação e unificação, a compressão Gzip é uma técnica vital. Ela reduz o tamanho dos arquivos transmitidos entre o servidor e o navegador do usuário, acelerando o carregamento do site. Certifique-se de que seu servidor de hospedagem esteja configurado para enviar arquivos CSS e JavaScript de forma compactada.

# EXEMPLO DE CÓDIGO .HTACCESS PARA COMPRESSÃO GZIP
<IfModule mod_deflate.c>
  # Comprimir HTML, CSS, JavaScript, Text, XML e fontes
  AddOutputFilterByType DEFLATE application/javascript
  AddOutputFilterByType DEFLATE application/rss+xml
  AddOutputFilterByType DEFLATE application/vnd.ms-fontobject
  AddOutputFilterByType DEFLATE application/x-font
  AddOutputFilterByType DEFLATE application/x-font-opentype
  AddOutputFilterByType DEFLATE application/x-font-otf
  AddOutputFilterByType DEFLATE application/x-font-truetype
  AddOutputFilterByType DEFLATE application/x-font-ttf
  AddOutputFilterByType DEFLATE application/x-javascript
  AddOutputFilterByType DEFLATE application/xhtml+xml
  AddOutputFilterByType DEFLATE application/xml
  AddOutputFilterByType DEFLATE font/opentype
  AddOutputFilterByType DEFLATE font/otf
  AddOutputFilterByType DEFLATE font/ttf
  AddOutputFilterByType DEFLATE image/svg+xml
  AddOutputFilterByType DEFLATE image/x-icon
  AddOutputFilterByType DEFLATE text/css
  AddOutputFilterByType DEFLATE text/html
  AddOutputFilterByType DEFLATE text/javascript
  AddOutputFilterByType DEFLATE text/plain
  AddOutputFilterByType DEFLATE text/xml
</IfModule>

Se seu site está hospedado na MCO2, não se preocupe, pois todos os servidores já são otimizados para compressão Gzip de arquivos CSS e JS de forma automática.

Otimização Avançada de Imagens: Estratégias para Reduzir Tamanho e Melhorar a Performance

Otimizar imagens é crucial para melhorar a velocidade de carregamento do site e envolve escolher o formato correto, aplicar compressão eficiente e garantir a compatibilidade entre diferentes navegadores. Formatos modernos como WebP e AVIF oferecem qualidade visual superior com tamanhos de arquivo significativamente menores em comparação com JPEG e PNG.

Utilize ferramentas online como Squoosh ou TinyPNG para ajustar o nível de compressão e visualizar a qualidade antes e depois da otimização. Essas ferramentas ajudam a obter a melhor qualidade com o menor tamanho de arquivo possível.

Lembre-se de servir imagens em escalas apropriadas para diferentes dispositivos. Imagens maiores que o necessário podem desperdiçar largura de banda, enquanto imagens muito pequenas podem parecer pixeladas em telas de alta resolução.

Para garantir a compatibilidade entre navegadores, use as tags HTML 'picture' e 'source', permitindo que os navegadores escolham a melhor versão da imagem com base no suporte ao formato. Por exemplo:

<picture>
  <source srcset="imagem.webp" type="image/webp">
  <source srcset="imagem.avif" type="image/avif">
  <img src="imagem.png" alt="Descrição da imagem" style="width:auto;">
</picture>

Este código demonstra como fornecer versões WebP e AVIF de uma imagem, com uma imagem PNG como fallback. O navegador carregará a imagem mais eficiente, assegurando que todos os usuários tenham uma experiência visual otimizada, independentemente do dispositivo ou navegador.

Lazy Loading: Melhorando a Experiência do Usuário

Lazy loading é uma técnica que melhora o tempo de carregamento das páginas, adiando o carregamento de elementos como imagens e vídeos até que sejam necessários. Isso é particularmente benéfico para sites com conteúdo de mídia pesada.

Você deve adicionar o atributo loading="lazy" em todas as tags <img> e <iframe> que não aparecem em tela imediatamente após o carregamento do site. Por exemplo:

<img src="imagem.jpg" loading="lazy" alt="Descrição">

Isso instrui o navegador a carregar a imagem apenas quando ela estiver prestes a entrar na viewport, que é a área visível da tela do usuário. Lazy loading ajuda a economizar largura de banda e melhora a experiência do usuário ao acelerar o carregamento da parte visível da página.

Uso Eficiente de Fontes Web: Equilibrando Estilo e Velocidade

Utilizando Fontes Comuns do Sistema

Optar por fontes comuns do sistema é uma maneira inteligente de acelerar o carregamento do site, aproveitando fontes já instaladas nos dispositivos dos usuários. Essa abordagem elimina a necessidade de carregar fontes externas, garantindo uma experiência de usuário mais rápida e eficiente. Utilizar uma combinação de fontes sans-serif que sejam amplamente suportadas, como Arial, Helvetica, e Roboto, assegura a consistência visual em diferentes plataformas e dispositivos.

body {
  font-family: system-ui, "Segoe UI", Roboto, Helvetica, Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol";
}

Carregamento de Fontes Remotas

Ao escolher fontes remotas, como as oferecidas pelo Google Fonts, é importante considerar o impacto no desempenho. Utilizar múltiplas famílias de fontes remotas pode aumentar significativamente o tamanho da página, afetando a velocidade de carregamento. Idealmente, deve-se limitar a seleção a uma ou duas famílias de fontes para manter o site leve e ágil.

Fontes como WOFF2 oferecem qualidade e eficiência, mas é vital monitorar o tamanho total dos arquivos de fonte. A utilização de serviços de CDN como o Google Fonts pode reduzir o tempo de carregamento, pois as fontes podem já estar em cache nos dispositivos dos usuários.

Implementar 'font-display: swap;' no CSS melhora a experiência do usuário ao exibir o texto rapidamente usando fontes de fallback, enquanto as fontes web são carregadas em segundo plano.

<link href="https://fonts.googleapis.com/css?family=Roboto:400,700&display=swap" rel="stylesheet">

Scripts de Terceiros: Gerenciamento e Otimização

Scripts de terceiros, como widgets de mídia social, ferramentas de análise e plugins, podem adicionar funcionalidades valiosas ao seu site, mas também podem afetar negativamente o desempenho. Gerenciar e otimizar esses scripts é crucial para manter uma boa experiência do usuário.

Uma estratégia eficaz é avaliar a real necessidade de cada script e remover aqueles que não agregam valor significativo. Para scripts essenciais, uma abordagem recomendada é carregá-los de forma assíncrona usando o atributo 'async', ou adiar seu carregamento até que sejam necessários, colocando as tags de script no final do documento HTML, e não no cabeçalho ('head'). Isso minimiza o impacto na renderização inicial da página.

Por exemplo, você pode adicionar um script essencial desta forma:

<script src="https://exemplo.com/script.js" async></script>

Monitorar o desempenho dos scripts de terceiros e fazer ajustes conforme necessário também é importante para manter a velocidade e a reatividade do seu site.

Preloading: Preparando Recursos com Antecedência

Preloading é uma técnica que permite aos desenvolvedores informar ao navegador sobre recursos importantes que deverão ser carregados antecipadamente. Isso pode ser particularmente útil para recursos que serão necessários em partes subsequentes da navegação do usuário, como imagens, scripts ou folhas de estilo críticas.

O uso do atributo 'rel="preload"' nas tags de link no cabeçalho HTML é uma maneira comum de implementar essa técnica. Por exemplo, para garantir que uma folha de estilo importante seja carregada antecipadamente, você pode usar:

<link rel="preload" href="estilo-importante.css" as="style">

O preloading pode acelerar a interação do usuário com o site, assegurando que os recursos necessários estejam disponíveis mais rapidamente quando solicitados. No entanto, deve ser usado com moderação para evitar sobrecarregar o navegador com recursos que talvez não sejam imediatamente necessários.

Adiando o Carregamento de CSS: Otimizando a Experiência do Usuário

Adiar o carregamento de certos tipos de CSS, como os ícones do FontAwesome, pode melhorar significativamente a experiência do usuário ao reduzir o tempo de carregamento inicial da página. Esta técnica é especialmente útil para estilos que não são críticos para a renderização imediata da página, mas que podem ser necessários posteriormente, como é o caso de ícones e outros elementos gráficos.

A implementação envolve o uso do atributo 'rel="preload"' para carregar o recurso antecipadamente, enquanto o JavaScript é utilizado para alterar o atributo 'rel' para 'stylesheet' após o carregamento. Isso permite que a página carregue com o conteúdo essencial primeiro, e os estilos adicionais sejam aplicados depois. Por exemplo:

<link rel="preload" href="/path/to/fontawesome.css" as="style"
onload="this.onload=null;this.rel='stylesheet'">
<noscript><link rel="stylesheet" href="/path/to/fontawesome.css"></noscript>

Esta abordagem garante que o navegador não fique sobrecarregado com o carregamento imediato de recursos não essenciais, otimizando a performance do site. A inclusão do elemento <noscript> assegura que os estilos ainda sejam carregados em navegadores onde o JavaScript não está disponível.

Redução do TTFB (Time To First Byte): Otimização Eficiente em PHP, ASP.NET e Estratégias Gerais

A redução do Time To First Byte (TTFB) é crucial para melhorar a velocidade de resposta do servidor e a eficiência geral do site. Este aspecto é especialmente importante para obter uma boa avaliação no PageSpeed Insights do Google. As estratégias abrangem desde a otimização de consultas de banco de dados até ajustes específicos para linguagens de programação e plataformas de gerenciamento de conteúdo.

Dicas Gerais de Otimização de Banco de Dados:

Seleção Eficiente de Campos: Em vez de usar "SELECT *", opte por selecionar apenas os campos necessários nas consultas SQL. Por exemplo, "SELECT nome, data_nascimento FROM usuarios WHERE id_usuario = 123". Isso minimiza a quantidade de dados transferidos e processados.

Uso de Índices para Consultas Otimizadas: Índices compostos podem acelerar consultas com cláusulas WHERE e ORDER BY. Por exemplo, para uma consulta frequente como "SELECT nome, cidade FROM usuarios WHERE estado = 'SP' ORDER BY nome", um índice composto em 'estado' e 'nome' pode aumentar significativamente a eficiência.

Análise de Performance de Consultas: No SQL Server, utilize o Execution Plan para entender e otimizar a execução de consultas. No MySQL, empregue o comando EXPLAIN para analisar o desempenho e identificar pontos de melhoria nas consultas.

Estratégias Específicas para PHP:

Otimização de Código: Escrever código PHP limpo e eficiente é fundamental. Isto inclui uma utilização cuidadosa da memória, fechamento de conexões com o banco de dados após o uso e a implementação de sistemas de cache, como o OPcache, para armazenar scripts PHP pré-compilados.

Estratégias Específicas para ASP.NET:

Uso do OutputCache: No ASP.NET, o OutputCache é uma ferramenta valiosa para armazenar o conteúdo gerado por páginas ou controles. Isso reduz a necessidade de regenerar conteúdos a cada requisição, melhorando o TTFB.

Cache Eficiente em WordPress:

Utilizar plugins de cache, como o WP Fastest Cache, é uma estratégia eficaz para sites WordPress. Estes plugins criam arquivos HTML estáticos a partir de páginas dinâmicas, diminuindo a carga de processamento no servidor e, consequentemente, o TTFB.

Adoção de HTTP/2 para Melhoria do TTFB:

O protocolo HTTP/2 oferece melhorias significativas em comparação com o HTTP/1.1, como multiplexação de requisições e compressão de cabeçalhos. Isso reduz o número de conexões necessárias e melhora o carregamento das páginas, contribuindo para a redução do TTFB. A adoção de HTTP/2 requer um servidor web e uma infraestrutura compatíveis.

Se o seu site está hospedado na MCO2, não se preocupe, pois todos os servidores já suportam HTTP/2 por padrão e não há necessidade de fazer nenhum ajuste para que seu site tenha benefício desta tecnologia.

A implementação destas estratégias, combinada com um monitoramento contínuo e ajustes regulares, proporcionará uma redução significativa no TTFB e uma melhoria na performance geral do site.

Conclusão

Melhorar a pontuação no PageSpeed Insights exige atenção a detalhes como cache, minificação de arquivos, compressão, otimização de imagens e gerenciamento de scripts. Esses esforços não só aceleram o carregamento do site, mas também melhoram a experiência do usuário e a visibilidade em buscas.

Domínios hospedados
Clientes satisfeitos