{"id":11487,"date":"2026-08-30T23:04:38","date_gmt":"2026-08-30T20:04:38","guid":{"rendered":"https:\/\/rainz.ai\/?p=11487"},"modified":"2026-09-08T14:11:55","modified_gmt":"2026-09-08T11:11:55","slug":"agentes-ia-renderizacao-javascript","status":"publish","type":"post","link":"https:\/\/rainz.ai\/pt-pt\/agentes-ia-renderizacao-javascript\/","title":{"rendered":"O que os agentes de IA recebem mesmo: renderiza\u00e7\u00e3o e JavaScript"},"content":{"rendered":"<div class=\"rz-art\">\n<style>.rz-art{font-family:Assistant,sans-serif;color:#4A4870;line-height:1.85}\n.rz-art h2{color:#100E33;font-size:28px;font-weight:700;line-height:1.3;margin:44px 0 14px}\n.rz-art h3{color:#100E33;font-size:21px;font-weight:700;line-height:1.35;margin:30px 0 10px}\n.rz-art p{margin:0 0 16px}\n.rz-art .rz-answer{background:linear-gradient(135deg,#F8FCFA,#F0F7F4 55%,#EAF1FC);border:1px solid rgba(16,14,51,.07);border-radius:20px;padding:26px 24px;font-size:18px;color:#100E33;box-shadow:0 12px 30px rgba(16,14,51,.06)}\n.rz-art table{width:100%;border-collapse:collapse;margin:22px 0;font-size:15px;background:#fff;border:1px solid rgba(16,14,51,.08);border-radius:16px;overflow:hidden}\n.rz-art th{background:#100E33;color:#fff;font-weight:700;text-align:start;padding:12px 14px}\n.rz-art td{padding:12px 14px;border-top:1px solid rgba(16,14,51,.07);vertical-align:top}\n.rz-art tbody tr:nth-child(even) td{background:#FAFBFD}\n.rz-art .rz-note{border-inline-start:4px solid #05D89E;background:#F6FFFC;border-radius:14px;padding:16px 18px;margin:22px 0}\n.rz-art .rz-faq h3{font-size:19px;margin:24px 0 6px}\n.rz-art ul,.rz-art ol{margin:0 0 18px;padding-inline-start:22px}\n.rz-art li{margin-bottom:8px}\n.rz-art .rz-code{direction:ltr;text-align:left;background:#0F1222;color:#D6E1F5;border-radius:14px;padding:18px 20px;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:14px;line-height:1.7;overflow-x:auto;white-space:pre;margin:22px 0}\n.rz-art .rz-ua{font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:14px}\n@media(max-width:767px){.rz-art h2{font-size:24px}.rz-art table{font-size:14px}.rz-art th,.rz-art td{padding:10px}.rz-art .rz-code{font-size:12.5px;padding:14px}}.rz-art li:before{display:none !important;content:none !important}.rz-art ul{list-style:disc !important}.rz-art ol{list-style:decimal !important}.rz-art li{margin-bottom:8px}<\/style>\n<p class=\"rz-answer\">V\u00ea uma p\u00e1gina completa. O agente recebe um ficheiro HTML em bruto. Se o seu conte\u00fado \u00e9 montado no browser por JavaScript, h\u00e1 uma hip\u00f3tese real de que o que chegou ao outro lado tenha sido apenas uma casca vazia. A \u00fanica medi\u00e7\u00e3o p\u00fablica que encontrei sobre isto \u2014 feita pela Vercel e pela MERJ em dezembro de 2024 \u2014 concluiu que nenhum dos principais crawlers de IA executa JavaScript: descarregam os ficheiros JS (11,50% dos pedidos do ChatGPT, 23,84% dos do Claude) mas nunca os executam. O Google \u00e9 a exce\u00e7\u00e3o: renderiza com uma vers\u00e3o evergreen do Chromium, embora tamb\u00e9m pare aos 2 MB. O teste em si demora dois minutos e uma linha de curl.<\/p>\n<h2>A \u00fanica pergunta que importa: o que est\u00e1 no HTML inicial?<\/h2>\n<p>H\u00e1 uma diferen\u00e7a entre aquilo que o seu site mostra e aquilo que o seu site envia. O browser recebe um documento HTML, descarrega os ficheiros JavaScript, executa-os, faz mais chamadas \u00e0 API e monta a partir de tudo isso a p\u00e1gina que v\u00ea. Toda a cadeia acontece na m\u00e1quina do utilizador, n\u00e3o no seu servidor. Um agente que pede o URL e fica por a\u00ed recebe apenas o primeiro passo.<\/p>\n<p>Na maioria dos sistemas de gest\u00e3o de conte\u00fados cl\u00e1ssicos isto n\u00e3o \u00e9 problema, porque o HTML chega do servidor j\u00e1 completo. A dificuldade come\u00e7a quando o site \u00e9 constru\u00eddo como uma aplica\u00e7\u00e3o do lado do cliente: React, Vue ou Angular a gerar o conte\u00fado depois do carregamento. Nesse caso, o documento que sai do seu servidor pode ser tr\u00eas kilobytes de etiquetas vazias com um &lt;div id=\u201droot\u201d&gt;&lt;\/div&gt; no meio, sendo tudo o resto constru\u00eddo apenas no browser.<\/p>\n<p>Um ponto merece destaque: isto n\u00e3o \u00e9 uma quest\u00e3o de permiss\u00f5es. Pode dar a todos os bots acesso total, devolver 200 em todos os pedidos e ainda assim n\u00e3o aparecer em resposta nenhuma \u2014 simplesmente porque n\u00e3o havia conte\u00fado para ler. Analisei a camada das permiss\u00f5es em separado no <a href=\"https:\/\/rainz.ai\/pt-pt\/mapa-bots-ia-2026\/\">mapa dos bots de 2026<\/a>; esta \u00e9 a camada que vem logo a seguir.<\/p>\n<h2>O que foi realmente medido \u2014 e o que n\u00e3o foi<\/h2>\n<p>O tema exige cuidado, porque est\u00e1 cheio de n\u00fameros que circulam sem fonte. O que existe: um estudo conjunto da Vercel e da MERJ publicado a 17 de dezembro de 2024, analisando logs reais de sites de grande dimens\u00e3o. A conclus\u00e3o central \u00e9 que nenhum dos principais crawlers de IA \u2014 GPTBot, OAI-SearchBot, ChatGPT-User, ClaudeBot, PerplexityBot e outros \u2014 executa JavaScript. Descarregam os ficheiros JS mas n\u00e3o os correm. A exce\u00e7\u00e3o na lista deles \u00e9 o AppleBot, que renderiza atrav\u00e9s de um browser.<\/p>\n<p>O mesmo estudo d\u00e1 tamb\u00e9m uma no\u00e7\u00e3o de volume: cerca de 569 milh\u00f5es de pedidos mensais do GPTBot e \u00e0 volta de 370 milh\u00f5es do Claude, em conjunto aproximadamente um quinto do volume de pedidos do Googlebot nesse per\u00edodo.<\/p>\n<div class=\"rz-note\">\n<p><strong>Uma ressalva que sou obrigado a fazer:<\/strong> essa medi\u00e7\u00e3o \u00e9 de dezembro de 2024, sobre uma amostra limitada de sites. N\u00e3o \u00e9 uma medi\u00e7\u00e3o \u00e0 escala da internet e n\u00e3o \u00e9 um n\u00famero de 2026. Consultei a documenta\u00e7\u00e3o oficial da OpenAI, da Anthropic e da Perplexity \u2014 nenhuma das tr\u00eas documenta se os seus bots renderizam JavaScript. Essa aus\u00eancia \u00e9, em si, um resultado: n\u00e3o se pode confiar numa promessa que nunca foi feita, pelo que o \u00fanico pressuposto seguro \u00e9 que o conte\u00fado tem de estar no HTML.<\/p>\n<\/div>\n<h2>O Google \u00e9 a exce\u00e7\u00e3o, n\u00e3o a regra<\/h2>\n<p>O Google Search Central afirma explicitamente, numa p\u00e1gina atualizada a 4 de mar\u00e7o de 2026, que a Pesquisa Google executa JavaScript com uma vers\u00e3o evergreen do Chromium e que o Googlebot coloca em fila para renderiza\u00e7\u00e3o todas as p\u00e1ginas que devolvem o c\u00f3digo de estado 200. No mesmo documento o Google acrescenta a ressalva mais relevante aqui: nem todos os bots conseguem executar JavaScript.<\/p>\n<p>Vale a pena conhecer dois limites pr\u00e1ticos do Google. Primeiro, segundo a documenta\u00e7\u00e3o do Googlebot, o crawler obt\u00e9m os primeiros 2 MB de um tipo de ficheiro suportado e para a\u00ed. Se o seu HTML for mais pesado, tudo o que passa desse corte simplesmente n\u00e3o \u00e9 lido. Segundo, quanto \u00e0s funcionalidades baseadas em IA, o Google afirma que n\u00e3o existem requisitos t\u00e9cnicos adicionais al\u00e9m de a p\u00e1gina estar indexada e eleg\u00edvel para aparecer com um snippet. Nenhum ficheiro especial e nenhuma marca\u00e7\u00e3o dedicada: o que se l\u00ea bem na Pesquisa l\u00ea-se bem tamb\u00e9m a\u00ed.<\/p>\n<h2>Tr\u00eas padr\u00f5es que esvaziam a p\u00e1gina<\/h2>\n<p><strong>Renderiza\u00e7\u00e3o do lado do cliente.<\/strong> O caso cl\u00e1ssico. O documento vindo do servidor cont\u00e9m uma casca e o conte\u00fado carrega depois. F\u00e1cil de detetar: o c\u00f3digo-fonte da p\u00e1gina \u00e9 muito mais curto do que aquilo que o olho v\u00ea.<\/p>\n<p><strong>Conte\u00fado que s\u00f3 abre com intera\u00e7\u00e3o.<\/strong> Acorde\u00f5es, separadores, \u00abcarregar mais\u00bb, scroll infinito. Se o conte\u00fado s\u00f3 \u00e9 injetado no DOM depois de um clique, n\u00e3o existe no documento. Se est\u00e1 no HTML e apenas escondido por CSS, est\u00e1 l\u00e1, e isso \u00e9 perfeitamente aceit\u00e1vel.<\/p>\n<p><strong>Camadas bloqueadoras \u00e0 frente do conte\u00fado.<\/strong> Um banner de cookies que exige consentimento antes de o conte\u00fado carregar, uma paywall, uma janela de login, ou uma camada de gest\u00e3o de bots que devolve um challenge. Nesses casos o bot at\u00e9 recebe uma p\u00e1gina \u2014 s\u00f3 que n\u00e3o \u00e9 a sua.<\/p>\n<h2>Como verificar em dois minutos<\/h2>\n<p>N\u00e3o \u00e9 preciso nenhuma ferramenta externa. Bastam tr\u00eas linhas para saber exatamente o que sai do seu servidor:<\/p>\n<div class=\"rz-code\"># 1. How large is the raw HTML, with no JS executed<br \/>\ncurl -sA &#8220;GPTBot&#8221; https:\/\/example.com\/page\/ -o raw.html<br \/>\nwc -c raw.html<\/p>\n<p># 2. How many words of visible text does it actually contain<br \/>\ncurl -sA &#8220;GPTBot&#8221; https:\/\/example.com\/page\/ \\<br \/>\n  | sed -e &#8216;s\/&lt;script[^&lt;]*&lt;\\\/script&gt;\/\/g&#8217; -e &#8216;s\/&lt;[^&gt;]*&gt;\/ \/g&#8217; \\<br \/>\n  | tr -s &#8216; \\n&#8217; &#8216; &#8216; | wc -w<\/p>\n<p># 3. Is a key sentence from the page really in the document<br \/>\ncurl -sA &#8220;GPTBot&#8221; https:\/\/example.com\/page\/ | grep -c &#8220;your key sentence&#8221;<\/p><\/div>\n<p>A interpreta\u00e7\u00e3o \u00e9 simples. Se a linha 2 devolver um n\u00famero pr\u00f3ximo da contagem de palavras que v\u00ea na p\u00e1gina, est\u00e1 tudo bem. Se devolver 40 palavras para uma p\u00e1gina de 1.200 palavras, o conte\u00fado est\u00e1 a ser constru\u00eddo no browser. Se a linha 3 devolver 0, a sua frase central n\u00e3o existe em nenhuma resposta que venha alguma vez a ser gerada a partir dessa p\u00e1gina. Vale tamb\u00e9m a pena repetir a mesma verifica\u00e7\u00e3o com um user-agent de browser normal e comparar: uma diferen\u00e7a grande entre os dois indica um servidor a servir conte\u00fado diferente aos bots.<\/p>\n<h2>Como confirmar que o bot \u00e9 genu\u00edno<\/h2>\n<p>Antes de tirar conclus\u00f5es do seu log, certifique-se de que quem dizia ser o GPTBot \u00e9 mesmo o GPTBot. Todos os grandes fornecedores publicam listas oficiais de endere\u00e7os IP, e o Google publica ainda um m\u00e9todo de verifica\u00e7\u00e3o por DNS inverso:<\/p>\n<table>\n<thead>\n<tr>\n<th>Fornecedor<\/th>\n<th>Fonte de verifica\u00e7\u00e3o oficial<\/th>\n<th>Nota<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td>OpenAI<\/td>\n<td class=\"rz-ua\">openai.com\/gptbot.json<br \/>openai.com\/searchbot.json<br \/>openai.com\/chatgpt-user.json<\/td>\n<td>Um ficheiro separado por bot<\/td>\n<\/tr>\n<tr>\n<td>Anthropic<\/td>\n<td class=\"rz-ua\">claude.com\/crawling\/bots.json<\/td>\n<td>Um \u00fanico ficheiro para todos os bots<\/td>\n<\/tr>\n<tr>\n<td>Perplexity<\/td>\n<td class=\"rz-ua\">perplexity.com\/perplexitybot.json<br \/>perplexity.com\/perplexity-user.json<\/td>\n<td>Um ficheiro separado por bot<\/td>\n<\/tr>\n<tr>\n<td>Google<\/td>\n<td class=\"rz-ua\">developers.google.com\/crawling\/docs\/<br \/>crawlers-fetchers\/verify-google-requests<\/td>\n<td>Tanto gamas de IP como verifica\u00e7\u00e3o por DNS inverso contra googlebot.com<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p>O Google \u00e9 o \u00fanico dos quatro a oferecer verifica\u00e7\u00e3o por DNS inverso. Com os restantes, comparar o IP com a lista oficial \u00e9 a \u00fanica verifica\u00e7\u00e3o dispon\u00edvel. Vale a pena obter estes ficheiros automaticamente em vez de copiar as gamas \u00e0 m\u00e3o \u2014 elas mudam.<\/p>\n<h2>O que fazer quando a resposta \u00e9 \u00aba p\u00e1gina est\u00e1 vazia\u00bb<\/h2>\n<p>A corre\u00e7\u00e3o depende da arquitetura, mas a dire\u00e7\u00e3o \u00e9 a mesma em todos os casos: mover a montagem do conte\u00fado do browser para o servidor.<\/p>\n<ol>\n<li><strong>Renderiza\u00e7\u00e3o do lado do servidor ou gera\u00e7\u00e3o est\u00e1tica.<\/strong> Nas frameworks modernas isto \u00e9 uma defini\u00e7\u00e3o p\u00e1gina a p\u00e1gina, n\u00e3o uma reescrita. O resultado \u00e9 HTML completo logo na primeira resposta, o que tamb\u00e9m melhora o tempo de carregamento para os utilizadores humanos.<\/li>\n<li><strong>Garanta que o conte\u00fado principal n\u00e3o depende de intera\u00e7\u00e3o.<\/strong> Um acorde\u00e3o cujo conte\u00fado est\u00e1 no HTML e \u00e9 escondido por CSS \u00e9 uma solu\u00e7\u00e3o perfeitamente v\u00e1lida. Um acorde\u00e3o que vai buscar o conte\u00fado ao clique n\u00e3o \u00e9.<\/li>\n<li><strong>Verifique o que acontece antes do consentimento.<\/strong> Se o banner de cookies bloqueia o conte\u00fado at\u00e9 haver clique, o bot n\u00e3o v\u00ea nada. O conte\u00fado tem de estar no documento mesmo quando nada foi clicado.<\/li>\n<li><strong>Me\u00e7a outra vez; n\u00e3o presuma.<\/strong> Depois de cada altera\u00e7\u00e3o, a mesma linha de curl. A verifica\u00e7\u00e3o demora segundos, e presumir que funcionou \u00e9 exatamente o que criou o problema logo de in\u00edcio.<\/li>\n<\/ol>\n<p>E se a quest\u00e3o mais ampla lhe interessa \u2014 o que um agente de IA l\u00ea de facto no seu site antes mesmo de se p\u00f4r a quest\u00e3o da renderiza\u00e7\u00e3o \u2014 escrevi sobre isso na <a href=\"https:\/\/rainz.ai\/pt-pt\/camada-de-descoberta-ia\/\">camada de descoberta<\/a>.<\/p>\n<h2>Uma ordem de prioridades pr\u00e1tica<\/h2>\n<p>Se tem uma hora, esta \u00e9 a ordem que recomendo. Primeiro, corra a verifica\u00e7\u00e3o curl nas tr\u00eas p\u00e1ginas mais importantes do site \u2014 a p\u00e1gina inicial, a p\u00e1gina de servi\u00e7o principal e o artigo com mais tr\u00e1fego. Depois compare a contagem de palavras com o que est\u00e1 efetivamente vis\u00edvel. S\u00f3 se houver diferen\u00e7a \u00e9 que faz sentido abrir a quest\u00e3o da arquitetura. Na maioria dos sites WordPress e dos sites institucionais a resposta ser\u00e1 que est\u00e1 tudo bem, e isso \u00e9 um excelente resultado \u2014 mais vale saber do que passar um m\u00eas a resolver um problema que n\u00e3o tem.<\/p>\n<h2>Perguntas frequentes<\/h2>\n<div class=\"rz-faq\">\n<h3>Os crawlers de IA executam JavaScript?<\/h3>\n<p>Nenhuma das grandes empresas o documenta oficialmente. A \u00fanica medi\u00e7\u00e3o p\u00fablica existente, da Vercel e da MERJ em dezembro de 2024, concluiu que nenhum dos principais crawlers de IA executa JavaScript \u2014 descarregam os ficheiros mas n\u00e3o os correm. Na aus\u00eancia de um compromisso oficial, o pressuposto seguro \u00e9 que o conte\u00fado tem de estar presente no HTML inicial.<\/p>\n<h3>O Googlebot renderiza?<\/h3>\n<p>Sim. O Google afirma que a Pesquisa executa JavaScript com uma vers\u00e3o evergreen do Chromium e que todas as p\u00e1ginas que devolvem o c\u00f3digo de estado 200 entram na fila de renderiza\u00e7\u00e3o. H\u00e1 um limite t\u00e9cnico: o Googlebot rastreia os primeiros 2 MB de um tipo de ficheiro suportado e para a\u00ed.<\/p>\n<h3>Como sei se o meu conte\u00fado est\u00e1 no HTML?<\/h3>\n<p>Obtenha a p\u00e1gina com curl, sem browser, retire as etiquetas e conte as palavras. Se o n\u00famero for pr\u00f3ximo do que v\u00ea na p\u00e1gina, o conte\u00fado \u00e9 renderizado no servidor. Se for significativamente menor, o conte\u00fado \u00e9 constru\u00eddo no browser e nunca chega ao agente.<\/p>\n<h3>\u00c9 preciso um ficheiro especial para aparecer nas funcionalidades de IA do Google?<\/h3>\n<p>N\u00e3o. O Google afirma que n\u00e3o existem requisitos t\u00e9cnicos adicionais e que a condi\u00e7\u00e3o \u00e9 a p\u00e1gina estar indexada e eleg\u00edvel para aparecer nos resultados com um snippet.<\/p>\n<h3>Como confirmo que um bot no meu log \u00e9 genu\u00edno?<\/h3>\n<p>A OpenAI, a Anthropic, a Perplexity e o Google publicam todos listas oficiais de IP em ficheiros JSON. O Google publica ainda um m\u00e9todo de verifica\u00e7\u00e3o por DNS inverso contra o dom\u00ednio googlebot.com. Com os restantes fornecedores, o cruzamento com a lista de IP \u00e9 a \u00fanica verifica\u00e7\u00e3o dispon\u00edvel.<\/p>\n<\/div>\n<div class=\"rz-note rz-series\"><strong>Mais artigos desta s\u00e9rie<\/strong><\/p>\n<ul>\n<li><a href=\"https:\/\/rainz.ai\/pt-pt\/mapa-bots-ia-2026\/\">O mapa dos bots de IA de 2026: quem est\u00e1 mesmo a rastrear o seu site e o que pode bloquear com seguran\u00e7a<\/a><\/li>\n<li><a href=\"https:\/\/rainz.ai\/pt-pt\/camada-de-descoberta-ia\/\">A camada de descoberta: o que um agente de IA l\u00ea de facto no seu site<\/a><\/li>\n<li><a href=\"https:\/\/rainz.ai\/pt-pt\/conteudo-citavel-por-ia\/\">Como escrever uma p\u00e1gina que um agente de IA consiga mesmo citar<\/a><\/li>\n<li><a href=\"https:\/\/rainz.ai\/pt-pt\/acoes-agente-ia\/\">Da leitura \u00e0 a\u00e7\u00e3o: o que \u00e9 preciso para um agente de IA concluir uma tarefa no seu site<\/a><\/li>\n<\/ul>\n<\/div>\n<\/div>\n<p><script type=\"application\/ld+json\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"BlogPosting\",\"@id\":\"https:\/\/rainz.ai\/pt-pt\/agentes-ia-renderizacao-javascript\/#article\",\"headline\":\"O que os agentes de IA recebem mesmo: renderiza\u00e7\u00e3o e JavaScript\",\"name\":\"O que os agentes de IA recebem mesmo: renderiza\u00e7\u00e3o e JavaScript\",\"description\":\"Os crawlers de IA n\u00e3o executam JavaScript. N\u00fameros medidos, a exce\u00e7\u00e3o Google, tr\u00eas padr\u00f5es que esvaziam a p\u00e1gina e um teste curl de dois minutos.\",\"url\":\"https:\/\/rainz.ai\/pt-pt\/agentes-ia-renderizacao-javascript\/\",\"mainEntityOfPage\":{\"@type\":\"WebPage\",\"@id\":\"https:\/\/rainz.ai\/pt-pt\/agentes-ia-renderizacao-javascript\/\"},\"inLanguage\":\"pt-PT\",\"isAccessibleForFree\":true,\"datePublished\":\"2026-08-30T20:04:38+00:00\",\"dateModified\":\"2026-09-07T09:33:16+00:00\",\"author\":{\"@type\":\"Person\",\"name\":\"Adir Nuriel\",\"url\":\"https:\/\/rainz.ai\/\"},\"publisher\":{\"@type\":\"Organization\",\"name\":\"rainz.ai\",\"url\":\"https:\/\/rainz.ai\/\"},\"wordCount\":1891,\"image\":{\"@type\":\"ImageObject\",\"url\":\"https:\/\/rainz.ai\/wp-content\/uploads\/2026\/08\/ai-agents-javascript-rendering-en-cover.jpg\",\"width\":1344,\"height\":768},\"articleSection\":\"IA e tecnologia\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/rainz.ai\/pt-pt\/agentes-ia-renderizacao-javascript\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"In\u00edcio\",\"item\":\"https:\/\/rainz.ai\/pt-pt\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"IA e tecnologia\",\"item\":\"https:\/\/rainz.ai\/pt-pt\/ia-e-tecnologia-pt\/\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"O que os agentes de IA recebem mesmo: renderiza\u00e7\u00e3o e JavaScript\",\"item\":\"https:\/\/rainz.ai\/pt-pt\/agentes-ia-renderizacao-javascript\/\"}]},{\"@type\":\"FAQPage\",\"mainEntity\":[{\"@type\":\"Question\",\"name\":\"Os crawlers de IA executam JavaScript?\",\"acceptedAnswer\":{\"@type\":\"Answer\",\"text\":\"Nenhuma das grandes empresas o documenta oficialmente. A \u00fanica medi\u00e7\u00e3o p\u00fablica existente, da Vercel e da MERJ em dezembro de 2024, concluiu que nenhum dos principais crawlers de IA executa JavaScript \u2014 descarregam os ficheiros mas n\u00e3o os correm. Na aus\u00eancia de um compromisso oficial, o pressuposto seguro \u00e9 que o conte\u00fado tem de estar presente no HTML inicial.\"}},{\"@type\":\"Question\",\"name\":\"O Googlebot renderiza?\",\"acceptedAnswer\":{\"@type\":\"Answer\",\"text\":\"Sim. O Google afirma que a Pesquisa executa JavaScript com uma vers\u00e3o evergreen do Chromium e que todas as p\u00e1ginas que devolvem o c\u00f3digo de estado 200 entram na fila de renderiza\u00e7\u00e3o. H\u00e1 um limite t\u00e9cnico: o Googlebot rastreia os primeiros 2 MB de um tipo de ficheiro suportado e para a\u00ed.\"}},{\"@type\":\"Question\",\"name\":\"Como sei se o meu conte\u00fado est\u00e1 no HTML?\",\"acceptedAnswer\":{\"@type\":\"Answer\",\"text\":\"Obtenha a p\u00e1gina com curl, sem browser, retire as etiquetas e conte as palavras. Se o n\u00famero for pr\u00f3ximo do que v\u00ea na p\u00e1gina, o conte\u00fado \u00e9 renderizado no servidor. Se for significativamente menor, o conte\u00fado \u00e9 constru\u00eddo no browser e nunca chega ao agente.\"}},{\"@type\":\"Question\",\"name\":\"\u00c9 preciso um ficheiro especial para aparecer nas funcionalidades de IA do Google?\",\"acceptedAnswer\":{\"@type\":\"Answer\",\"text\":\"N\u00e3o. O Google afirma que n\u00e3o existem requisitos t\u00e9cnicos adicionais e que a condi\u00e7\u00e3o \u00e9 a p\u00e1gina estar indexada e eleg\u00edvel para aparecer nos resultados com um snippet.\"}},{\"@type\":\"Question\",\"name\":\"Como confirmo que um bot no meu log \u00e9 genu\u00edno?\",\"acceptedAnswer\":{\"@type\":\"Answer\",\"text\":\"A OpenAI, a Anthropic, a Perplexity e o Google publicam todos listas oficiais de IP em ficheiros JSON. O Google publica ainda um m\u00e9todo de verifica\u00e7\u00e3o por DNS inverso contra o dom\u00ednio googlebot.com. Com os restantes fornecedores, o cruzamento com a lista de IP \u00e9 a \u00fanica verifica\u00e7\u00e3o dispon\u00edvel.\"}}],\"@id\":\"https:\/\/rainz.ai\/pt-pt\/agentes-ia-renderizacao-javascript\/#faq\"}]}<\/script><\/p>\n","protected":false},"excerpt":{"rendered":"<p>V\u00ea uma p\u00e1gina completa; o agente recebe um ficheiro HTML em bruto. O que as medi\u00e7\u00f5es p\u00fablicas dizem realmente sobre a execu\u00e7\u00e3o de JavaScript pelos crawlers de IA, e como verificar em dois minutos com curl.<\/p>\n","protected":false},"author":9,"featured_media":9249,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"_seopress_titles_title":"Agentes de IA e JavaScript: o que recebem mesmo | rainz.ai","_seopress_titles_desc":"Os crawlers de IA n\u00e3o executam JavaScript. N\u00fameros medidos, a exce\u00e7\u00e3o Google, tr\u00eas padr\u00f5es que esvaziam a p\u00e1gina e um teste curl de dois minutos.","_seopress_robots_index":"","_seopress_robots_follow":"","_seopress_robots_imageindex":"","_seopress_robots_snippet":"","_seopress_robots_primary_cat":"","_seopress_robots_breadcrumbs":"","_seopress_robots_freeze_modified_date":"","_seopress_robots_custom_modified_date":"","_seopress_robots_canonical":"","_seopress_social_fb_title":"","_seopress_social_fb_desc":"","_seopress_social_fb_img":"","_seopress_social_fb_img_attachment_id":0,"_seopress_social_fb_img_width":0,"_seopress_social_fb_img_height":0,"_seopress_social_twitter_title":"","_seopress_social_twitter_desc":"","_seopress_social_twitter_img":"","_seopress_social_twitter_img_attachment_id":0,"_seopress_social_twitter_img_width":0,"_seopress_social_twitter_img_height":0,"_seopress_redirections_value":"","_seopress_redirections_enabled":"","_seopress_redirections_enabled_regex":"","_seopress_redirections_logged_status":"","_seopress_redirections_param":"","_seopress_redirections_type":0,"_seopress_analysis_target_kw":"","footnotes":""},"categories":[130,134],"tags":[],"class_list":["post-11487","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-ia-e-tecnologia-pt","category-sala-de-imprensa"],"acf":[],"_links":{"self":[{"href":"https:\/\/rainz.ai\/pt-pt\/wp-json\/wp\/v2\/posts\/11487","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/rainz.ai\/pt-pt\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/rainz.ai\/pt-pt\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/rainz.ai\/pt-pt\/wp-json\/wp\/v2\/users\/9"}],"replies":[{"embeddable":true,"href":"https:\/\/rainz.ai\/pt-pt\/wp-json\/wp\/v2\/comments?post=11487"}],"version-history":[{"count":0,"href":"https:\/\/rainz.ai\/pt-pt\/wp-json\/wp\/v2\/posts\/11487\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/rainz.ai\/pt-pt\/wp-json\/wp\/v2\/media\/9249"}],"wp:attachment":[{"href":"https:\/\/rainz.ai\/pt-pt\/wp-json\/wp\/v2\/media?parent=11487"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/rainz.ai\/pt-pt\/wp-json\/wp\/v2\/categories?post=11487"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/rainz.ai\/pt-pt\/wp-json\/wp\/v2\/tags?post=11487"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}