Executando verificação de segurança...
18

[ Conteúdo ] Dicas de otimização ( Front-end )

Introdução

Estamos cansados de saber que otimização é extremamente necessário para o desenvolvimento seja no front-end ou back-end (em outras áreas também). Porém muita gente apenas fica codando sem pensar em otimizações, mesmo sabendo sua importância... Podemos ver vários e vários sites e posso citar principalmente os do governo que pegou nota 30 no page speed insights da última vez que eu fiz o teste (cerca de 1 mês atrás).

Então estou aqui para citar algumas técnicas que eu aplico na prática e funciona muito bem. Todas eu fui testando e estudando pesquisando mais afundo sobre.

Sempre abro um repositório privado apenas fins de testes com técnicas que otimização.

Evite Iframes

Essa aqui é umas das maiores otimizações em um site que você pode fazer. Iframes consome tanto da sua otimização que eu arriscaria a estimativa de 1 a 2 segundos só para aparecer algo na tela do usuário. Definitivamente evite o uso de Iframes o máximo possível!

Mimifique seu CSS

Conforme vamos estilizando páginas, o nosso CSS vai aumentando infinitamente... E algumas pessoas gostam de adicionar espaços para separar uma propriedade de outra o que reduz a otimização. Segue algumas dicas que eu tenho pra você:

Minificação: A minificação é o processo de remover espaços em branco, comentários e outras formatações desnecessárias do código CSS, reduzindo assim o tamanho do arquivo. Isso ajuda a diminuir o tempo de carregamento da página. Assim permite que seu site respire mais livre.

Concatenação: A concatenação envolve a combinação de múltiplos arquivos CSS em um único arquivo. Isso reduz o número de solicitações HTTP necessárias para carregar uma página, o que pode melhorar significativamente o tempo de carregamento, especialmente em sites com muitos arquivos CSS. Essa aqui é tão boa para otimização quanto para organização. Modularizar seu CSS é essencial para ambos os casos!

Ah e outra, remova estilos redundantes. Alguns estilos como color são herdados de pais para filhos! Tem que pensar para escrever estilos também!.

CSS non-blocking

CSS non-blocking refere-se à prática de carregar arquivos CSS de forma assíncrona ou de maneira que não bloqueie o processamento do navegador ao carregar uma página da web. Isso quer dizer que carregar uma parte essencial do CSS de forma que não comprometa o carregamento da página.

Segue algumas dicas:

Carregamento assíncrono: Em vez de carregar o CSS de forma síncrona, onde o navegador precisa esperar até que o arquivo CSS seja completamente baixado e processado antes de continuar a renderização da página, você pode usar técnicas de carregamento assíncrono. Isso permite que o navegador baixe o CSS em paralelo com outros recursos da página, acelerando assim o tempo de carregamento. Uma dica é utilizar algumas ferramentas que auxiliam neste processo. Acredite, a diferença é gigante!

CSS crítico inline: Uma técnica comum é incluir o CSS crítico diretamente na parte superior da página HTML (isso para pessoas que não utilizam JSX), dentro de tags <style>. Esse CSS crítico geralmente contém estilos essenciais para a renderização inicial da página, como formatação básica e estilos de layout. Enquanto isso, o restante do CSS pode ser carregado de forma assíncrona ou diferida para garantir que não bloqueie a renderização inicial da página.

CSS incorporado:

Evitar o uso excessivo de CSS incorporado ou inline pode ajudar na otimização do desempenho de um site de várias maneiras:

Redução do peso da página: CSS incorporado ou inline aumenta o tamanho do HTML de uma página, já que o código CSS é incluído diretamente no arquivo HTML. Isso pode resultar em páginas maiores, o que pode aumentar o tempo de carregamento, especialmente em conexões de internet mais lentas ou em dispositivos móveis.

para quem não lembra o que é estilos incorporados:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Exemplo de CSS Incorporado</title>
    <style>
        /* CSS incorporado */
        body {
            font-family: Arial, sans-serif;
            background-color: #f0f0f0;
        }

        h1 {
            color: blue;
        }

        p {
            font-size: 16px;
            line-height: 1.5;
        }
    </style>
</head>
<body>
    <h1>Exemplo de CSS Incorporado</h1>
    <p>Este é um exemplo simples de como usar CSS incorporado em um documento HTML.</p>
    <p>O CSS está definido dentro da tag &lt;style&gt; no cabeçalho do documento.</p>
</body>
</html>

Ah mais você disse no tópico anterior que podia... Lembre-se está tecnica é somente para coisas essencias e isso se você não estiver usando um framework como tailwindcss. Jamais crie páginas inteiras somente com CSS incorporado.

Comprima sua imagem e escolha um formato

Imagens é algo realmente trabalhoso de lidar no Front-end, principalmente imagens externas que vem de algum endpoint. Portanto, sempre que possível, comprima as imagems ao máximo possível. Existem ferramentas online e gratuitas que fazem isso. Outra dica é escolher o formato ideal para o site. Esqueça jpeg imediamtamente. Esse formado é muito pesado, apesar da boa qualidade. Use png e somente em casos que não pode ser diferente... o formato ideal e moderno é webp. Se você usa Next.js, internamente suas imagens são convertidas para webp, mas não pule essas etapas mesmos assim.

Mimifique seu JavaScript

Mimificar o JavaScript é um processo obrigatório para uma melhor otimização. A quantidade de coisas que fazemos com JavaScript não é brincadeira... é javaScript para todo lado. Portanto mimifique ele ao máximo. Use ferramentas que ajudam neste processo como webpack.

Busque utilizar HTTPS (extra)

Embora o uso de HTTPS possa adicionar uma sobrecarga mínima de processamento ao servidor e ao navegador devido à criptografia, os avanços na tecnologia têm minimizado essa diferença. Além disso, os benefícios em termos de segurança e confiança superam em muito qualquer leve impacto de desempenho.

Essa é uma otimização voltada mais para o SEO que eu recomendo bastante, e um aviso para não deixar de usar https pela a quantidade mínima de desempenho extra adicionada.

Matenha o peso do seu site < 1000kb

O ideal mesmo é 500kb. Eu vi isso em um artigo gringo que infelizmente não me recordo mais onde encontrei e portanto não posso compartilhar o link. Achei muito interessante pois antes minhas páginas batiam cerca de 1800kb até 2000kb! Isso é um absurdo. Ao ter como objetivo um tamanho < 1000kb, minhas páginas melhoraram muito. Algumas ferramentas que você pode utilizar para medir:

Google Chrome DevTools: Abra o Google Chrome, acesse a página que deseja verificar e clique com o botão direito do mouse em qualquer lugar da página. Selecione "Inspeccionar" para abrir o painel DevTools. No painel DevTools, vá para a guia "Network" e recarregue a página. Aqui você pode ver o tamanho total da página e o peso individual de cada recurso (HTML, CSS, JavaScript, imagens, etc.).

PageSpeed Insights: O PageSpeed Insights, uma ferramenta gratuita fornecida pelo Google, permite que você avalie o desempenho da sua página da web em dispositivos móveis e desktops. Ele fornece uma análise detalhada, incluindo o tamanho total da página e sugestões para melhorar o desempenho.

WebPageTest: O WebPageTest é outra ferramenta poderosa e gratuita que permite testar o desempenho de uma página da web. Ele fornece métricas detalhadas, incluindo o tamanho total da página e o tempo de carregamento em diferentes navegadores e dispositivos.

Além disso mantenha seus sites com um tempo de carregamento menor que 3 segundos e o tempo do primeiro bity menor que 1 segundo.

Reduza a quantidade de requests http:

Reduzir o número de solicitações feitas por um navegador a um servidor web usando o protocolo HTTP ajuda e muito na otimização!

Redução do tempo de carregamento: Cada solicitação HTTPS adiciona sobrecarga ao processo de carregamento de uma página da web, pois envolve a troca de informações entre o navegador do usuário e o servidor. Ao minimizar o número de solicitações HTTPS, você reduz o tempo total necessário para carregar a página. Formas de evitar isso seria pensar se realmente precisa fazer um request a mais. Se um Request já não serve para várias coisas que você deseja. Pense bem.

Além disso tente manter as requesições com o mesmo protocolo pois facilita a comunicação consequentemente melhorando a otimização.

Defina seus armazenamentos em cache de forma estratégica:

Configurar o cache apropriadamente é crucial para otimizar um site, pois pode reduzir o tempo de carregamento da página e o uso de largura de banda do servidor. Aqui estão algumas práticas recomendadas para configurar o cache e como elas ajudam na otimização do site:

Cache de navegador: O cache do navegador permite que os recursos estáticos (como imagens, CSS e JavaScript) sejam armazenados localmente no computador do usuário. Isso significa que, quando um usuário acessa uma página pela segunda vez, o navegador pode carregar esses recursos do cache local, em vez de fazer novas solicitações ao servidor. Para configurar o cache do navegador, você pode definir cabeçalhos de resposta HTTP apropriados, como Cache-Control e Expires, para indicar ao navegador por quanto tempo os recursos devem ser armazenados em cache.

Conclusão:

Ainda existem muitas outras técnicas para otimizar um site. Possívelmente faria uma parte 2 algum dia.

Carregando publicação patrocinada...
1

Dicas tops, algumas dessas já são aplicadas como em alguns frameworks como o next, outras são pontos de atenção principalmente no tamanho do build e como o conteudo vai ser entregue ao usuário, uma coisa que seria interessante caso faça um futuro artigo de como as apis afetam a experiência

1

Sim, é verdade. Talvez eu tente estruturar melhor os próximos artigos. Eu escrevi assumindo que o leitor sabia quando e onde cada coisa é feita e quando aplicar. Valeu pelo o feedback!