Pular para o conteúdo
Categoria: SEO & Performance Web14 min de leitura

"SSR, SSG e CSR: qual estratégia de renderização escolher"

Por Schematize Blog ·

Renderização no servidor, geração estática ou no cliente? Entenda os trade-offs de SSR, SSG e CSR, mais ISR e streaming, para tomar a decisão certa de SEO, performance e custo.

Onde o HTML da sua página é gerado — no servidor, no momento do build ou no navegador do usuário — é uma das decisões de arquitetura mais consequentes que você toma. Ela afeta velocidade, custo de infraestrutura, frescor dos dados e, crucialmente, se o Google consegue indexar seu conteúdo. Este guia explica SSR, SSG e CSR com clareza, mostrando os trade-offs de cada um, as abordagens híbridas que dominam os frameworks modernos e como escolher com confiança para o seu caso.

O problema: de onde vem o HTML?

Toda página web acaba virando HTML que o navegador exibe. A pergunta é onde e quando esse HTML é montado. Existem três respostas principais, e cada uma move o trabalho de renderização para um lugar diferente da linha do tempo:

    Essa escolha conversa diretamente com o SEO técnico, porque define o que o robô do Google enxerga quando chega à página. Mas o impacto vai além do SEO: ele define quanto você gasta em servidores, quão rápido o usuário vê algo na tela e até quão difícil é manter o sistema. Antes de escolher, vale entender cada modelo isoladamente para depois compará-los lado a lado.

    Uma forma útil de pensar é imaginar uma "linha do tempo da renderização" com três marcos: o build (quando você publica o site), a requisição (quando alguém pede a página) e o runtime no cliente (quando o navegador executa o JavaScript). Cada estratégia coloca o trabalho pesado em um desses três marcos. Quem entende isso para de decorar nomes e passa a raciocinar sobre trade-offs.

    CSR: Client-Side Rendering

    No CSR, o servidor envia um HTML praticamente vazio mais um bundle JavaScript. O navegador então baixa, executa o JS e monta a interface. É o modelo das Single Page Applications tradicionais com React, Vue ou Angular sem framework de servidor.

    <!-- O que o servidor envia no CSR -->
    <body>
      <div id="root"></div>
      <script src="/app.bundle.js"></script>
    </body>

    O fluxo, do ponto de vista do usuário, é o seguinte: ele recebe uma casca vazia, vê uma tela em branco (ou um spinner), o navegador baixa o JavaScript, executa a aplicação, faz as chamadas de API necessárias e só então pinta o conteúdo. Esse encadeamento de etapas em série é a raiz tanto das forças quanto das fraquezas do modelo.

    Vantagens:

      Desvantagens:

        O CSR não é "errado". Ele é a escolha certa quando a página fica atrás de um login, quando o SEO é irrelevante e quando a interatividade rica domina a experiência — pense em um editor de planilhas, um painel de analytics ou um cliente de e-mail. Nesses casos, pagar o custo de um primeiro carregamento mais lento em troca de navegação instantânea depois faz todo sentido.

        SSR: Server-Side Rendering

        No SSR, o servidor executa o código da aplicação e gera o HTML completo a cada requisição, enviando uma página já preenchida. No navegador, o JavaScript então "hidrata" esse HTML, tornando-o interativo.

        // Exemplo conceitual de SSR (Next.js)
        export async function getServerSideProps(context) {
          const dados = await buscarDados();
          return { props: { dados } }; // renderizado no servidor a cada request
        }

        Vantagens:

          Desvantagens:

            O que é hidratação, exatamente?

            A hidratação é um conceito central no SSR e merece atenção. O servidor manda HTML pronto, mas esse HTML é "morto": botões não respondem a cliques, formulários não validam. O navegador então baixa o mesmo código de componente que rodou no servidor e o "anexa" ao HTML existente, religando os event listeners e o estado da aplicação. Esse processo é a hidratação.

            O problema é que a hidratação tem um custo: o navegador precisa baixar e executar JavaScript proporcional ao tamanho da página. Em páginas pesadas, existe um intervalo desconfortável em que o usuário o conteúdo mas não consegue interagir com ele — o famoso "uncanny valley" da hidratação. É justamente por isso que técnicas como hidratação parcial e ilhas (que veremos adiante) ganharam força.

            Cache: o segredo para o SSR escalar

            Renderizar a cada requisição parece caro, e é — se você fizer isso literalmente. Na prática, SSR sério vive de cache. Você pode cachear a página inteira por alguns segundos, cachear fragmentos que mudam pouco, ou usar Cache-Control com stale-while-revalidate para servir uma versão antiga enquanto gera a nova em segundo plano. Sem uma estratégia de cache, um pico de tráfego derruba o servidor de renderização.

            SSG: Static Site Generation

            No SSG, todas as páginas são geradas no momento do build e servidas como arquivos estáticos. Quando o usuário visita, recebe HTML pronto, sem nenhuma renderização sob demanda.

            // Exemplo conceitual de SSG (Next.js)
            export async function getStaticProps() {
              const dados = await buscarDados();
              return { props: { dados } }; // gerado uma vez, no build
            }

            Vantagens:

              Desvantagens:

                O SSG é imbatível para blogs, documentação e sites institucionais. Combinado a um bom sitemap XML, garante indexação rápida e completa. Como cada página é um arquivo pronto na borda da rede, a latência percebida é mínima em qualquer lugar do mundo — a CDN entrega o arquivo do ponto de presença mais próximo do usuário.

                Vale notar que SSG não significa "sem JavaScript". Você ainda pode ter componentes interativos: o HTML chega estático e rápido, e o JS hidrata as partes dinâmicas depois. É a base das arquiteturas que combinam estático com ilhas de interatividade.

                Estratégias híbridas e modernas

                Na prática, os frameworks modernos não obrigam você a escolher um único modelo para o site inteiro. As abordagens híbridas combinam o melhor de cada um:

                  Essas técnicas se apoiam em recursos do protocolo, como a multiplexação introduzida no HTTP/2 (Belshe, Peon e Thomson, 2015), que permite enviar muitos recursos em paralelo sobre uma única conexão — algo que potencializa o streaming de HTML.

                  ISR em detalhe

                  O ISR é a resposta para a maior fraqueza do SSG: conteúdo congelado. Em vez de regerar o site inteiro toda vez que um post muda, você define um intervalo de revalidação. A primeira visita após esse intervalo dispara, em segundo plano, a regeneração daquela página específica. O usuário que disparou ainda recebe a versão antiga (rápida); os próximos recebem a nova.

                  // ISR no Next.js: a página revalida a cada 60 segundos
                  export async function getStaticProps() {
                    const dados = await buscarDados();
                    return {
                      props: { dados },
                      revalidate: 60, // regenera no máximo uma vez por minuto
                    };
                  }

                  Na prática, o ISR entrega 99% da velocidade do SSG com frescor "quase em tempo real". É a escolha padrão para catálogos de produtos, portais de notícias e qualquer conteúdo que muda de hora em hora, mas não a cada segundo.

                  Streaming e ilhas

                  O streaming SSR muda o jogo do TTFB: em vez de esperar a página inteira ficar pronta no servidor para então enviá-la, o servidor manda o <head> e o esqueleto imediatamente, e vai "empurrando" o resto do HTML conforme os dados chegam. Componentes lentos (como uma seção que depende de uma API externa) não bloqueiam o restante da página.

                  A arquitetura de ilhas, por sua vez, parte de uma página majoritariamente estática e marca apenas alguns componentes como interativos — as "ilhas". Só essas ilhas baixam e executam JavaScript. O resultado é uma página que carrega quase tão leve quanto SSG puro, mas com pontos de interatividade onde realmente importa. Frameworks como Astro popularizaram essa ideia.

                  SEO: o que o Google realmente vê

                  O Google rende JavaScript, mas o faz numa segunda passada e com orçamento limitado. Isso cria um risco concreto no CSR: na primeira visita do crawler, o conteúdo pode não estar lá.

                  Para o Google, a ordem de preferência em termos de robustez de indexação costuma ser:

                    Entender como funciona o Google — crawling, renderização e indexação — deixa claro por que entregar conteúdo no HTML inicial é a aposta mais segura. Dados estruturados também devem estar no HTML servidor para garantir rich snippets.

                    Por que o CSR é arriscado para SEO

                    O processo de indexação do Google tem duas filas: a primeira lê o HTML cru imediatamente; a segunda, que executa JavaScript, pode demorar dias ou semanas e tem orçamento finito. Em um site CSR, a primeira fila vê uma <div id="root"> vazia. Se o conteúdo é importante, você está apostando que a segunda fila vai chegar logo e renderizar tudo corretamente — uma aposta que nem sempre se paga, especialmente em sites grandes onde o orçamento de renderização é disputado.

                    Outros motores de busca e ferramentas (Bing, redes sociais que geram previews via Open Graph, robôs de IA) frequentemente não executam JavaScript nenhum. Para eles, uma página CSR é literalmente em branco. Por isso, conteúdo que precisa ser descoberto e compartilhado deve estar no HTML inicial, ponto.

                    Performance: o impacto nas métricas

                    Cada modelo afeta os Core Web Vitals de forma diferente. O Google reforça que essas métricas refletem a experiência real do usuário (Google Web.dev, 2020), então a escolha de renderização tem efeito direto no ranqueamento.

                      A regra de ouro: quanto mais trabalho você empurra para o servidor ou para o build, mais leve fica o navegador do usuário — e melhor tende a ser a performance percebida.

                      Vale separar duas coisas que costumam ser confundidas: quando o conteúdo aparece e quando ele fica interativo. SSG e SSR fazem o conteúdo aparecer cedo (bom LCP), mas se você sobrecarregar a página de JavaScript, a interatividade pode chegar tarde (INP ruim). Otimizar renderização não é só escolher o modelo; é também controlar o tamanho do bundle que hidrata a página.

                      Trade-offs de custo e operação

                      Além de SEO e performance, há a dimensão de custo, que muita gente esquece até a fatura chegar.

                        Para sites com milhares de páginas, o tempo de build do SSG puro pode virar gargalo — um build de 30 minutos atrasa cada publicação. É exatamente esse problema que o ISR resolve, gerando páginas sob demanda na primeira visita em vez de todas de uma vez.

                        Como decidir: um guia rápido

                        Use estas perguntas para orientar a escolha:

                          Na maioria dos sites de conteúdo, uma base SSG ou SSR com ilhas de interatividade entrega o melhor equilíbrio entre SEO, performance e custo. Para aprofundar a otimização depois de escolher, veja o guia de performance web.

                          Um ponto prático: você não precisa de uma única estratégia para o site inteiro. A página de marketing pode ser SSG, o blog pode ser ISR, o painel logado pode ser CSR e a busca pode ser SSR. Os frameworks modernos permitem decidir por rota, e essa granularidade costuma render o melhor resultado.

                          Perguntas frequentes

                          SSR é sempre melhor que CSR para SEO? Para conteúdo que precisa ser indexado, sim, porque entrega HTML completo logo de cara. Mas se a página é um app atrás de login, SEO é irrelevante e o CSR pode ser a escolha mais simples e barata.

                          SSG funciona com conteúdo que muda? Funciona com rebuild ou, melhor ainda, com ISR. Para dados que mudam a cada segundo (cotações, placares ao vivo), nenhuma das duas serve sozinha — aí você hidrata a parte dinâmica no cliente ou usa SSR.

                          O que é melhor para Core Web Vitals? SSG tende a vencer no LCP por servir HTML pronto da CDN. Mas qualquer modelo pode ter INP ruim se carregar JavaScript demais. A renderização é só metade da história; o tamanho do bundle é a outra metade.

                          Preciso escolher um modelo para o site inteiro? Não. Os frameworks atuais permitem misturar estratégias por rota. Misturar é a norma, não a exceção.

                          ISR substitui SSR? Para muitos casos de conteúdo, sim — entrega frescor "quase em tempo real" com custo de estático. Mas conteúdo verdadeiramente personalizado por usuário ou que muda a cada requisição ainda pede SSR.

                          Conclusão

                          SSR, SSG e CSR não são certos ou errados em absoluto — são ferramentas com trade-offs distintos. SSG maximiza velocidade e SEO para conteúdo estável; SSR equilibra frescor e indexação para conteúdo dinâmico; CSR brilha em aplicações interativas onde SEO não pesa. As abordagens híbridas, apoiadas em recursos como o HTTP/2 (Belshe, Peon e Thomson, 2015), permitem misturar o melhor de cada mundo, decidindo a estratégia rota a rota. Escolha com base no comportamento do conteúdo, no custo que você pode sustentar e nas exigências de SEO técnico e de Core Web Vitals — e lembre que a experiência real do usuário é o critério final (Google Web.dev, 2020).

                          Referências

                            Leituras relacionadas

                            Nenhum comentário ainda

                            Seja o primeiro a comentar.

                            Deixe seu comentário

                            Entre com sua conta Canverly para comentar. Você pode usar a mesma conta em qualquer site da rede.

                            Entrar com Canverly