SEO para JavaScript: Melhores práticas para sites otimizados

A maioria dos websites contemporâneos incorpora JavaScript, o que os torna dinâmicos e interativos. Apesar de os robôs dos motores de busca serem bastante sofisticados, eles podem não conseguir interpretar todo o conteúdo gerado por JavaScript, o que afeta o posicionamento da página.

A forma como o seu site renderiza o código JavaScript tem um grande impacto na apresentação do conteúdo.

Por exemplo, na renderização do lado do servidor, o conteúdo do site é gerado no servidor. Quando um navegador faz um pedido, recebe o HTML já completamente renderizado.

Em contraste, na renderização do lado do cliente, o JavaScript é processado diretamente pelo navegador através da manipulação do DOM.

A terceira opção, a renderização dinâmica, envia o conteúdo processado no lado do cliente para os navegadores, enquanto o conteúdo processado no lado do servidor é direcionado aos motores de busca.

As diferentes abordagens de renderização têm influência na forma como o JavaScript é interpretado e, por consequência, no posicionamento das páginas.

Para garantir que todo o código JavaScript do seu site seja corretamente processado, é fundamental implementar as melhores práticas de SEO para JavaScript. Contudo, antes de mais nada, vamos entender o conceito de SEO para JavaScript.

O que é SEO para JavaScript?

SEO para JavaScript consiste em otimizar o conteúdo dinâmico de um site (ou página web) para que os motores de busca consigam rastrear e indexar o código JavaScript. O Google, assim como outros motores de busca, processa o JavaScript em três etapas: rastreamento, renderização e indexação. Para que o Google possa completar estas etapas com sucesso, o conteúdo JavaScript precisa ser amigável para SEO, isto é, visível e acessível.

Como o Google processa o conteúdo JavaScript numa página

O Googlebot segue os seguintes passos no processamento do JavaScript:

  • Obtém um URL da fila de rastreamento por meio de uma requisição HTTP.
  • Verifica o arquivo robots.txt para identificar URLs que o site não permite rastrear.
  • Ignora URLs ‘não permitidos’, analisa as respostas dos outros URLs e os adiciona à fila de rastreamento.
  • Coloca as páginas na fila para renderização, exceto as marcadas para não indexação.
  • O Chromium renderiza a página, executa o JavaScript e indexa a página.
  • Analisa novamente o HTML renderizado em busca de links.
  • Adiciona esses URLs à fila para rastreamento.

Quando o Google não indexa o conteúdo JavaScript?

O Google consegue indexar o JavaScript quando este é implementado corretamente. Contudo, se certos arquivos JS e CSS estiverem inacessíveis, o Google pode não conseguir rastrear o site adequadamente. Da mesma forma, se existirem links no HTML original que não estiverem presentes no HTML renderizado, o Google pode evitar que sejam rastreados ou indexados.

Além disso, se o JavaScript não estiver diretamente incluído no HTML, o Google precisa fazer o download do arquivo para que ele possa ser executado. Os motores de busca também podem ter versões em cache das páginas web (para melhorar o desempenho) e, nesses casos, o JavaScript na página pode não estar sincronizado com a versão em cache.

Como todo código JavaScript necessita ser interpretado, o uso excessivo de JavaScript pode tornar a página mais lenta ou mesmo causar erros de timeout.

Por que o SEO para JavaScript é importante?

O SEO para JavaScript é fundamental porque influencia vários aspetos da página e fatores de posicionamento que o Google (ou outros motores de busca) analisam para fins de SEO:

Elemento na página Possível problema de SEO Possível solução de SEO
Conteúdo renderizado Os motores de busca (como o Google) podem não conseguir renderizar a sua página se os seus recursos estiverem bloqueados no arquivo robots.txt do seu site. O Google também não indexa ou renderiza arquivos JS e CSS que estejam bloqueados ou inacessíveis. Reduza a quantidade de JavaScript no conteúdo principal da página. Adote abordagens alternativas para a renderização do lado do cliente, como a renderização do lado do servidor, renderização dinâmica ou renderização híbrida (combinação do lado do cliente e do lado do servidor).
Links Se alguns links forem internos ou se o JavaScript gerar links para um URL apenas quando o utilizador clica, o Google pode não detetar esses links. Utilize links âncora com o atributo href e textos âncora descritivos. Pseudo-links como as tags <div> e <span> não são rastreados.
Metadados A menos que o site use pacotes Node.js como o vue-meta, os motores de busca podem estar a rastrear metadados duplicados ou, pior ainda, sem metadados para cada visualização ou página. Use pacotes Node.js como react-helmet, vue-meta, react-meta-tags.
Imagens com carregamento lento O rastreador do motor de busca não seleciona conteúdo marcado para carregamento lento. O motor de busca não consegue deslocar-se até ao conteúdo e, por isso, alguns conteúdos podem nunca ser renderizados. Use a API IntersectionObserver, que compreende a visibilidade e a posição dos elementos DOM assim que ficam disponíveis. Em alternativa, pode utilizar o recurso de carregamento lento nativo do navegador (Chrome).
Tempos de carregamento da página Uma página com muito conteúdo JavaScript pode demorar mais tempo a carregar, o que pode afetar negativamente o seu posicionamento na pesquisa. Adicione o código JS crítico inline e adie a execução do código JS não crítico até que o conteúdo principal esteja renderizado, reduzindo assim a quantidade total de código JS.

Práticas recomendadas para SEO em JavaScript

Seguindo algumas práticas recomendadas, podemos otimizar o rastreamento e a renderização de páginas por parte dos motores de busca:

Adicione links e imagens seguindo as normas web estabelecidas

Adicione todos os links usando a tag <a href> em vez de onclick, #pageurl ou window.location.href=’/page-url’. O Google pode rastrear e seguir facilmente estes links.

<a href="http://etechpt.com.com">Bem-vindo ao mundo Geek</a>

Da mesma forma, adicione imagens usando a tag <img src> em vez da tag <img data-src>:

<img src="myimg.png" />

Priorize a renderização do lado do servidor

Garanta que o conteúdo do seu site esteja disponível no servidor, e não apenas no navegador do utilizador.

Verifique se o seu HTML renderizado tem todo o conteúdo importante que pretende apresentar

O HTML renderizado deve conter o título correto, meta robôs, meta descrições, imagens, dados estruturados e tags canônicas.

Como tornar o seu site JavaScript amigável para SEO

Para testar a implementação de SEO para JavaScript na sua página web, siga os seguintes passos:

  • Avalie a quantidade de JavaScript que o seu site utiliza: Para isso, desative o JavaScript no seu navegador. Se observar uma redução significativa no conteúdo, é sinal de que o seu site depende muito do JavaScript.
  • Verifique se o Googlebot consegue obter todo o conteúdo e tags importantes: Utilize a Ferramenta de Teste de Compatibilidade com Dispositivos Móveis do Google ou a ferramenta de teste de pesquisa aprimorada para avaliar como o Googlebot utiliza o HTML original para renderizar o conteúdo.
  • Utilize extensões do Chrome como o Ver fonte renderizada para compreender como o JavaScript modifica a página e comparar o HTML de origem com o HTML renderizado.
  • Verifique as tags essenciais (título, meta descrição, etc.) no HTML renderizado usando a Extensão SEO Pro Chrome.

Conclusão

Neste artigo, analisámos como o JavaScript pode tornar a gestão de SEO mais complexa e as abordagens para resolver os potenciais problemas resultantes da adição excessiva de JavaScript ao seu código.

Também explorámos algumas práticas recomendadas e ferramentas para tornar o seu site JavaScript amigável para SEO. Outras ferramentas que auxiliam o Google no reconhecimento e rastreamento do seu conteúdo dinâmico são o Prerender, AngularJS e Huckabuy.

Pode também consultar algumas das melhores práticas para diminuir o tempo de carregamento do seu site.

Gostou da leitura do artigo? Que tal partilhar com o mundo?