Os sistemas de IA e LLMs podem renderizar JavaScript para ler conteúdo ‘oculto’?
Para o Ask An SEO desta semana, um leitor perguntou:
“Existe alguma diferença entre como os sistemas de IA lidam com conteúdo renderizado em JavaScript ou oculto interativamente em comparação com a indexação tradicional do Google? Que verificações técnicas os SEOs podem fazer para confirmar se todas as informações críticas da página estão disponíveis para as máquinas?”
Esta é uma ótima questão porque além do hype da otimização do LLM existe um desafio técnico muito real: garantir que seu conteúdo possa realmente ser encontrado e lido pelos LLMs.
Há vários anos, os SEOs têm sido bastante encorajados pelas melhorias do Googlebot na capacidade de rastrear e renderizar páginas com muito JavaScript. No entanto, com os novos rastreadores de IA, esse pode não ser o caso.
Neste artigo, veremos as diferenças entre os dois tipos de rastreador e como garantir que o conteúdo crítico da sua página da web seja acessível a ambos.
Como o Googlebot renderiza conteúdo JavaScript?
O Googlebot processa JavaScript em três estágios principais: rastreamento, renderização e indexação. Em uma explicação básica e simples, é assim que funciona cada etapa:
Rastejando
O Googlebot colocará páginas na fila para serem rastreadas quando as descobrir na web. No entanto, nem todas as páginas enfileiradas serão rastreadas, pois o Googlebot verificará se o rastreamento é permitido. Por exemplo, ele verá se o rastreamento da página está bloqueado por meio de um comando disallow no robots.txt.
Se a página não estiver qualificada para rastreamento, o Googlebot irá ignorá-la, renunciando a uma solicitação HTTP. Se uma página estiver qualificada para ser rastreada, ela será movida para renderizar o conteúdo.
Renderização
O Googlebot verificará se a página está qualificada para ser indexada, garantindo que não haja solicitações para mantê-la no índice, por exemplo, por meio de uma meta tag noindex. O Googlebot colocará a página na fila para ser renderizada. A renderização pode acontecer em segundos ou pode permanecer na fila por um longo período de tempo. A renderização é um processo que consome muitos recursos e, como tal, pode não ser instantâneo.
Enquanto isso, o bot receberá a resposta do DOM; este é o conteúdo renderizado antes da execução do JavaScript. Normalmente é o HTML da página, que estará disponível assim que a página for rastreada.
Assim que o JavaScript for executado, o Googlebot receberá a página totalmente construída, a “renderização do navegador”.
Indexação
As páginas e informações qualificadas serão armazenadas no índice do Google e disponibilizadas para servir como resultados de pesquisa no momento da consulta do usuário.
Como o Googlebot lida com conteúdo oculto de forma interativa?
Nem todo o conteúdo está disponível para os usuários quando eles acessam uma página pela primeira vez. Por exemplo, pode ser necessário clicar nas guias para encontrar conteúdo complementar ou expandir um acordeão para ver todas as informações.
O Googlebot não tem a capacidade de alternar entre guias ou clicar para abrir um acordeão. Portanto, é importante garantir que ele possa analisar todas as informações da página.
A maneira de fazer isso é garantir que as informações estejam contidas no DOM no primeiro carregamento da página. Ou seja, o conteúdo pode ficar “oculto da visualização” no front end antes de clicar em um botão, mas não fica oculto no código.
Pense assim: o conteúdo HTML está “escondido em uma caixa”; o JavaScript é a chave para abrir a caixa. Se o Googlebot precisar abrir a caixa, ele poderá não ver o conteúdo imediatamente. No entanto, se o servidor tiver aberto a caixa antes do Googlebot solicitá-la, ele poderá acessar esse conteúdo por meio do DOM.
Como aumentar a probabilidade de o Googlebot conseguir ler seu conteúdo
A chave para garantir que o conteúdo possa ser analisado pelo Googlebot é torná-lo acessível sem a necessidade do bot renderizar o JavaScript. Uma maneira de fazer isso é forçar a renderização a acontecer no próprio servidor.
A renderização do lado do servidor é o processo pelo qual uma página da web é renderizada no servidor e não no navegador. Isso significa que um arquivo HTML é preparado e enviado ao navegador do usuário (ou ao bot do mecanismo de pesquisa), e o conteúdo da página fica acessível para eles sem esperar o carregamento do JavaScript. Isso ocorre porque o servidor basicamente criou um arquivo que já renderizou conteúdo; o HTML e CSS estão acessíveis imediatamente. Enquanto isso, os arquivos JavaScript armazenados no servidor podem ser baixados pelo navegador.
Isso se opõe à renderização do lado do cliente, que exige que o navegador busque e compile o JavaScript antes que o conteúdo esteja acessível na página da web. Este é um aumento muito menor para o servidor, e é por isso que é frequentemente preferido pelos desenvolvedores de sites, mas significa que os bots têm dificuldade para ver o conteúdo da página sem primeiro renderizar o JavaScript.
Como os bots LLM renderizam JavaScript?
Dado o que sabemos agora sobre como o Googlebot renderiza JavaScript, como isso difere dos bots de IA?
O elemento mais importante a entender sobre o seguinte é que, ao contrário do Googlebot, não existe “um” órgão governamental que represente todos os bots que podem ser abrangidos por “bots LLM”. Ou seja, o que um bot pode ser capaz de fazer não será necessariamente o padrão para todos.
Os bots que vasculham a web para alimentar as bases de conhecimento dos LLMs não são os mesmos que visitam uma página para trazer informações oportunas a um usuário por meio de um mecanismo de busca.
E os bots de Claude não têm a mesma capacidade que os do OpenAI.
Quando consideramos como garantir que os bots de IA possam acessar nosso conteúdo, temos que atender aos bots de menor capacidade.
Menos se sabe sobre como os bots LLM renderizam JavaScript, principalmente porque, ao contrário do Google, os bots de IA não compartilham essas informações. No entanto, algumas pessoas muito inteligentes têm feito testes para identificar como cada um dos principais bots do LLM lida com isso.
Em 2024, Vercel publicou uma investigação sobre os recursos de renderização de JavaScript dos principais bots LLM, incluindo OpenAI’s, Anthropic’s, Meta’s, ByteDance’s e Perplexity’s. De acordo com o estudo, nenhum desses bots foi capaz de renderizar JavaScript. Os únicos que existiam eram Gemini (aproveitando a infraestrutura do Googlebot), Applebot e CCbot da CommonCrawl.
Mais recentemente, Glenn Gabe reconfirmou as descobertas de Vercel por meio de sua própria análise aprofundada de como ChatGPT, Perplexity e Claude lidam com JavaScript. Ele também explica como testar seu próprio site nos LLMs para ver como eles lidam com seu conteúdo.
Estes são os bots mais conhecidos, de algumas das empresas de IA mais bem financiadas neste espaço. É lógico que, se eles estão tendo dificuldades com JavaScript, os de menor financiamento ou de maior nicho também terão.
Como os AI Bots lidam com conteúdo oculto de forma interativa?
Não está bem. Ou seja, se o conteúdo interativo exigir alguma execução de JavaScript, eles poderão ter dificuldades para analisá-lo.
Para garantir que os bots consigam ver o conteúdo oculto atrás de guias ou em acordeões, é prudente garantir que o conteúdo carregue totalmente no DOM sem a necessidade de executar JavaScript. Os visitantes humanos ainda podem interagir com o conteúdo para revelá-lo, mas os bots não precisarão disso.
Como verificar problemas de renderização de JavaScript
Existem duas maneiras muito fáceis de verificar se o Googlebot é capaz de renderizar todo o conteúdo da sua página:
Verifique o DOM por meio de ferramentas de desenvolvedor
O DOM (Document Object Model) é uma interface para uma página da web que representa a página HTML como uma série de “nós” e “objetos”. Basicamente, ele vincula o código-fonte HTML de uma página da Web ao JavaScript, o que permite que a funcionalidade da página da Web funcione. Em termos simples, pense em uma página da web como uma árvore genealógica. Cada elemento de uma página da web é um “nó” na árvore. Então, uma tag de cabeçalho
e o próprio corpo da página
são todos nós na árvore genealógica.
Quando um navegador carrega uma página web, ele lê o HTML e o transforma na árvore genealógica (o DOM).
Como verificar
Vou guiá-lo usando as Ferramentas para Desenvolvedores do Chrome como exemplo.
Você pode verificar o DOM de uma página acessando seu navegador. Usando o Chrome, clique com o botão direito e selecione “Inspecionar”. A partir daí, certifique-se de estar na guia “Elementos”.
Para ver se o conteúdo está visível em sua página da web sem a necessidade de executar JavaScript, você pode pesquisá-lo aqui. Se você encontrar o conteúdo totalmente dentro do DOM ao carregar a página pela primeira vez (e não interagir mais com ela), ele deverá estar visível para os bots do Googlebot e LLM.
Use o Google Search Console
Para verificar se o conteúdo está visível especificamente para o Googlebot, você pode usar o Google Search Console.
Escolha a página que deseja testar e cole-a no campo “Inspecionar qualquer URL”. O Search Console o levará para outra página onde você pode “Testar o URL ativo”. Ao testar uma página ativa, você verá outra tela onde poderá optar por “Visualizar página testada”.
Como verificar se um bot LLM pode ver seu conteúdo
De acordo com os experimentos de Glenn Gabe, você pode perguntar aos próprios LLMs o que eles podem ler em uma página da web específica. Por exemplo, você pode solicitar que leiam o texto de um artigo. Eles responderão com uma explicação se não puderem devido ao JavaScript.
Visualizando o HTML fonte
Se estivermos trabalhando com o mínimo denominador comum, é prudente assumir que, neste ponto, os LLMs não conseguem ler conteúdo em JavaScript. Para ter certeza de que seu conteúdo está disponível no HTML de uma página da web para que os bots possam acessá-lo definitivamente, tenha certeza absoluta de que o conteúdo da sua página pode ser lido por esses bots. Certifique-se de que esteja no HTML de origem. Para verificar isso, você pode acessar o Chrome e clicar com o botão direito na página. No menu, selecione “Exibir fonte da página”. Se você conseguir “encontrar” o texto neste código, você sabe que ele está no HTML fonte da página.
O que isso significa para o seu site?
Essencialmente, o Googlebot foi desenvolvido ao longo dos anos para ser muito melhor no manuseio de JavaScript do que os bots LLM mais recentes. No entanto, é muito importante entender que os bots LLM não estão tentando rastrear e renderizar a web da mesma forma que o Googlebot. Não presuma que eles tentarão imitar o comportamento do Googlebot. Não os considere “atrás” do Googlebot. Eles são uma fera completamente diferente.
Para o seu site, isso significa que você precisa verificar se sua página carrega todas as informações pertinentes no DOM no primeiro carregamento da página para satisfazer as necessidades do Googlebot. Para os bots LLM, para ter certeza de que o conteúdo está disponível para eles, verifique seu HTML estático.
Mais recursos:
Imagem destacada: Paulo Bobita/Search Engine Journal
