Como fazer o JavaScript e a Pesquisa Google funcionarem juntos

Receba as atualizações e os insights mais recentes do Google I/O 2019.

Coisas boas estão acontecendo com a Pesquisa Google, e estamos felizes em compartilhá-las no Google I/O 2019!

Nesta postagem, vamos nos concentrar nas práticas recomendadas para tornar os apps da Web JavaScript detectáveis na Pesquisa Google, incluindo:

  • Continuidade do Googlebot
  • Pipeline do Googlebot para rastreamento, renderização e indexação
  • Detecção de recursos e tratamento de erros
  • Estratégias de renderização
  • Ferramentas de teste para seu site na Pesquisa Google
  • Desafios comuns e possíveis soluções
  • Práticas recomendadas de SEO em apps da Web JavaScript

Conheça o Googlebot atemporal

Este ano, anunciamos o tão esperado novo Googlebot contínuo.

Googlebot segurando o logotipo do Chrome
O Googlebot agora usa um mecanismo moderno de renderização do Chromium.

Agora o Googlebot usa um mecanismo moderno do Chromium para renderizar sites para a Pesquisa Google. Além disso, vamos testar versões mais recentes do Chromium para manter o Googlebot atualizado, geralmente algumas semanas após cada versão estável do Chrome. Esse anúncio é uma grande notícia para desenvolvedores da Web e SEOs porque marca o lançamento de mais de mil novos recursos, como ES6+, IntersectionObserver e Web Components v1, no Googlebot.

Saiba como o Googlebot funciona

O Googlebot é um pipeline com vários componentes. Vamos entender como o Googlebot indexa páginas para a Pesquisa Google.

Um diagrama mostrando um URL passando de uma fila de rastreamento para uma etapa de processamento que extrai URLs vinculados e os adiciona à fila de rastreamento, uma fila de renderização que alimenta um renderizador que produz HTML. O processador usa esse HTML para extrair os URLs vinculados novamente e indexar o conteúdo.
Pipeline do Googlebot para rastreamento, renderização e indexação de páginas.

O processo funciona assim:

  1. O Googlebot enfileira URLs para rastreamento.
  2. Em seguida, ele busca os URLs com uma solicitação HTTP com base na cota de rastreamento.
  3. O Googlebot verifica o HTML em busca de links e coloca os links descobertos na fila para rastreamento.
  4. Em seguida, o Googlebot coloca a página na fila para renderização.
  5. Assim que possível, uma instância headless do Chromium renderiza a página, o que inclui a execução do JavaScript.
  6. O Googlebot usa o HTML renderizado para indexar a página.

Sua configuração técnica pode influenciar o processo de rastreamento, renderização e indexação. Por exemplo, tempos de resposta lentos ou erros do servidor podem afetar a cota de rastreamento. Outro exemplo seria a exigência de JavaScript para renderizar os links, o que pode resultar em uma descoberta mais lenta desses links.

Usar a detecção de recursos e tratar erros

A versão contínua do Googlebot tem muitos recursos novos, mas alguns deles ainda não têm suporte. Se você depender de recursos sem suporte ou não lidar adequadamente com erros, o Googlebot não poderá renderizar ou indexar seu conteúdo.

Vejamos um exemplo:

 <body>
   <script>
     navigator.geolocation.getCurrentPosition(function onSuccess(position) {
       loadLocalContent(position);
     });
   </script>
 </body>

Em alguns casos, é possível que essa página não mostre conteúdo, porque o código não processa quando o usuário recusa a permissão ou quando a chamada getCurrentPosition retorna um erro. Por padrão, o Googlebot recusa solicitações de permissão como essa.

Esta é uma solução melhor:

 <body>
   <script>
     if (navigator.geolocation) {
       // this browser supports the Geolocation API, request location!
       navigator.geolocation.getCurrentPosition(
         function onSuccess(position) {
           // we successfully got the location, show local content
           loadLocalContent(position);
         }, function onError() {
           // we failed to get the location, show fallback content
           loadGlobalContent();
         });
     } else {
       // this browser does not support the Geolocation API, show fallback content
       loadGlobalContent();
     }
   </script>
 </body>

Se você tiver problemas para indexar seu site JavaScript, consulte nosso guia de solução de problemas para encontrar soluções.

Escolher a estratégia de renderização certa para seu app da Web

Atualmente, a estratégia de renderização padrão para apps de página única é a renderização do lado do cliente. O HTML carrega o JavaScript, que gera o conteúdo no navegador à medida que é executado.

Vamos analisar um app da Web que mostra uma coleção de imagens de gatos e usa JavaScript para renderizar inteiramente no navegador.

Uma caixa de código mostrando HTML que carrega alguns scripts. Uma captura de tela de uma página da Web em um dispositivo móvel que mostra imagens de marcador de posição enquanto carrega o conteúdo real.
A estratégia de renderização influencia o desempenho e a robustez dos seus apps da Web.

Se você for livre para escolher sua estratégia de renderização, considere a renderização pelo servidor ou a pré-renderização. Eles executam o JavaScript no servidor para gerar o conteúdo HTML inicial, o que pode melhorar o desempenho para usuários e rastreadores. Essas estratégias permitem que o navegador comece a renderizar o HTML assim que ele chega pela rede, tornando o carregamento da página mais rápido. A sessão de renderização no I/O ou a postagem do blog sobre renderização na Web (links em inglês) mostram como a renderização e a hidratação do lado do servidor podem melhorar o desempenho e a experiência do usuário em apps da Web e fornece mais exemplos de código para essas estratégias.

Se você estiver procurando uma solução alternativa para ajudar rastreadores que não executam JavaScript ou se não for possível fazer mudanças na sua base de código de front-end, considere usar a renderização dinâmica, que pode ser testada neste codelab. No entanto, você não terá a experiência do usuário nem os benefícios de desempenho que teria com a renderização ou a pré-renderização do lado do servidor, porque a renderização dinâmica só veicula HTML estático aos rastreadores. Isso é uma solução temporária em vez de uma estratégia de longo prazo.

Teste suas páginas

Embora a maioria das páginas geralmente funcione bem com o Googlebot, recomendamos testá-las regularmente para garantir que o conteúdo esteja disponível para o Googlebot e que não haja problemas. Há várias ferramentas ótimas para ajudar você a fazer isso.

A maneira mais fácil de fazer uma verificação rápida de uma página é o teste de compatibilidade com dispositivos móveis. Além de mostrar problemas de compatibilidade com dispositivos móveis, ele também fornece uma captura de tela do conteúdo acima da dobra e do HTML renderizado como o Googlebot o vê.

O teste de compatibilidade com dispositivos móveis mostra o HTML renderizado que o Googlebot vê após renderizar a página
O teste de compatibilidade com dispositivos móveis mostra o HTML renderizado que o Googlebot usa.

Você também pode descobrir se há problemas de carregamento de recursos ou erros de JavaScript.

O teste de compatibilidade com dispositivos móveis mostra erros de JavaScript e um stack trace.

Recomendamos verificar seu domínio no Google Search Console a fim de usar a ferramenta de inspeção de URL para saber mais sobre o estado de rastreamento e indexação de um URL, receber mensagens quando o Search Console detectar problemas e conferir mais detalhes sobre o desempenho do site na Pesquisa Google.

A Ferramenta de inspeção de URL mostrando uma página indexada com informações sobre descoberta, rastreamento e indexação de um URL
A Ferramenta de inspeção de URL no Search Console mostra o status de uma página no rastreamento, na renderização e na indexação.

Para dicas e orientações gerais de SEO, use as auditorias de SEO no Lighthouse. Para integrar auditorias de SEO ao seu conjunto de testes, use a CLI do Lighthouse ou o bot de CI do Lighthouse.

Um relatório de SEO com uma pontuação de 44 e avisos sobre compatibilidade com dispositivos móveis, além de avisos sobre práticas recomendadas de conteúdo.
O Lighthouse mostra recomendações gerais de SEO para uma página.

Essas ferramentas ajudam a identificar, depurar e corrigir problemas com páginas na Pesquisa Google e devem fazer parte da sua rotina de desenvolvimento.

Fique por dentro e entre em contato

Para ficar por dentro dos comunicados e das mudanças na Pesquisa Google, fique de olho no Blog para webmasters, no canal do YouTube para webmasters do Google e na nossa conta do Twitter (links em inglês). Confira também nosso guia para desenvolvedores da Pesquisa Google e nossa série de vídeos sobre SEO em JavaScript para saber mais.